Many teams building software for the B.C. government use GitHub to host their code. Using GitHub you can:
- Share and control code versions
- Use tools for team and project management
- Track issues
- Collaborate with the open-source community
- Integrate automation tools
The main organization the B.C. government owns in GitHub is bcgov where we store all open-source code developed by B.C. government teams. The
bcgov organization includes over 1000 repositories maintained by the B.C. government developer community.
The Developer Experience Team manages the B.C. government's GitHub environments.
- Working in the open
- Organizations in GitHub
- Ministry-specific private organizations in GitHub Enterprise
The Digital Principles for the Government of B.C. urge product teams to work in the open as outlined in principle five. GitHub is the leading platform for open-source projects. It allows the Province to collaborate with the open-source community to build software, support innovation and save time and money.
The Province owns several GitHub organizations, which are described below.
bcgov organization contains public repositories that hold open-source code or public documents developed by B.C. government teams. This organization is public.
- Product teams working in the BC Gov Private Cloud PaaS OpenShift platform should use this organization unless they are given permission to work in
- Any member of the
bcgovorganization can create repositories.
- Existing members of the
bcgovorganization can invite new users to join the organization using the Just Ask! tool. (Users cannot request membership to
bcgov-c organization stores temporary (up to 12 months), private repositories with closed-source code and private documents. Closed-source projects must be moved to the
bcgov organization at the end of the 12 months. This repository is private.
- Use this repository if you need a temporary location for code while you collect approvals to make the code public. You must commit to making the code public in the future in order to use this repository.
- Only the Developer Experience team can create repositories in this organization. You can request a repository by submitting a request.
Your product team can only have a permanent, private repository in
bcgov-c if it is a GitOps repository with ArgoCD manifests. We strongly discourage creating permanent, private repositories in this organization.
- Only the Platform Services team can create repositories in this organization.
- GitHub application integration (for example, SonarCloud testing) needs to be individually enabled for each repository. The Platform Services team approves all third-party application integration in all B.C. government organizations.
Ministry-specific private organizations must be linked to the B.C. government's Enterprise account (user licenses are required for the members of these organizations).
These organizations permanently store teams' private repositories with closed-sourced code that can't be transitioned to a public repository within 12 months. For more information on creating a private organization linked to the GitHub enterprise account, see GitHub Enterprise user licences in the B.C. government.
- Product teams that need a permanent location for their closed-source code should use this repository.
- Each ministry team must purchase their own user licenses to use the organization.
- Only ministry GitHub administrators can create repositories in this organization. Consult with your ministry's Information Management Branch (IMB) to get in touch with the GitHub administrators.
The Security Insight feature is available for all organizations linked to the corporate GitHub Enterprise account, as well as branch protection and code owners for private repositories. Branch protection only allows specific people to push to the protected branch. The code owners feature allows automated reviews. For example, if a specific user is a code owner of certain files they are automatically added as PR reviewers and their approval is required before the code can be merged.
- Digital Principles for BC Government
- Just Ask! tool
- GitHub Enterprise user licences in the BC government
- Remove a user's BCGov GitHub access
- Common platform requests in the BC Gov Private Cloud PaaS