When it comes to client data, the COE’s first priority is security. All data is stored securely on the COE shared drive and working copies may be placed temporarily on either COE computers or approved encrypted drives. However, in recent years, remotely hosted version control has become more common and is now a powerful tool for managing code and collaborating with other students, advisors and clients. As such, the COE has approved the use of the version control service GitHub in specific circumstances.
- Request Permission If you feel that version control will be beneficial to you or your client, bring your request to your project advisor. They will discuss it with Stuart and he will reach out to the client for permission. Many clients have blanket data policies that do not allow remote hosting of any company information regardless of the content so unfortunately not all requests can or will be approved.
- Use a COE account You will need to use or create a GitHub account with 2-factor authentication and associate it to your COE email address. Your username will be attached to all your activity and may be viewable by clients so make sure yours is professional and easily identifiable as you. Your project advisor will add you to the COE-UBC organization on GitHub and create repositories for you as needed. They can also invite the client to view or contributed to the repository as well.
- Keep data out of version control No data, figures, presentations or other sensitive material should ever be stored on the remote repository. Your code can reference a database, CSV or other datasource on your local machine or COE server but the data itself should never be added to version control. This can be managed with a bit of planning, the use of
.gitignore
, and some care when adding new files. If you accidentally add a file and are unsure how to remove it from your commit history, search for how to fix the problem on Google or talk to your project advisor. - Follow the project structure guidelines in the COE Toolbox Adhering to a common structure for your repository helps others interpret your work and keeps you organized. It also helps ensure that no data, figures, presentations, or other sensitive material are ever stored on the remote repository. Please see the full guide on the COE Toolbox before you get started.