How GOV.UK uses GitHub
GOV.UK uses GitHub for version control, code deployments, authentication, CI, Dependabot and GitHub Pages. Read the “GOV.UK reliance on GitHub features doc” Google doc for more information.
You must follow these instructions when creating and configuring a new GOV.UK repository.
Our GitHub organisation
Our GitHub organisation is called alphagov. GOV.UK shares it with other teams in the Government Digital Service (GDS).
The organisation is on the Enterprise Cloud plan, which grants us access to GitHub’s enterprise support. Only people with enterprise permissions can access enterprise support (limited to enterprise owners and up to 20 additional members).
GDS GitHub Owners have superadmin access to alphagov. You need to contact them to request changes to organisation settings, or to request access to an inaccessible repository (e.g. one that was created by an ex-employee).
GOV.UK teams in Github
There are several GOV.UK GitHub teams within alphagov, including:
GOV.UK. Grants write access to GOV.UK repos, as well as integration admin access to the CI environment.
GOV.UK Production Deploy. Grants the ability to merge PRs against continuously deployed apps, and the ability to deploy apps to staging and production
GOV.UK Production Admin. Grants admin access to GOV.UK repos, and admin access to a number of other tools.
GOV.UK Content Designers. This team allows the user to create a branch in a GOV.UK repository and open a pull request, but only a developer can merge the request. Only content designers should be added to this team.
Getting access to GitHub
If your role requires access to Github, you’ll need to be added to the organisation and the relevant team(s) through Terraform, in govuk-user-reviewer - not manually added through the GitHub UI itself, as this breaks the Terraform setup. Note that you will have to accept the invite sent via email before you’re added to the organisation.
- If you’re an engineer or contractor, ask your tech lead to add you by following the instructions in govuk-user-reviewer.
- If you don’t have a tech lead, ask someone in Senior Tech to add you.
- If you’re a content designer, ask for GitHub access via Zendesk (see example ticket). Make sure you include the
govuk_platform_support
tag.
In these last two cases, you must state:
- your role
- which team you’re in
- why you need access
- your GitHub username
- which GitHub team(s) you should join (see list)
Removing access to GitHub
Users are removed from the GitHub organisation when their entry in govuk-user-reviewer is deleted.