GitHub and source control
Deviating from GitHub
Unless clients have specific requirements to own their source control hosting, we host all repositories in our GitHub organisation.
When clients want continuous access to their source code, they can be added as external collaborators by a GitHub admin, which incurs a per-user monthly expense to our organisation. One-time copies can be done outside of GitHub.
Repository naming
Follow lowercase-kebab-case when creating repositories in GitHub.
Client repositories should start with the client's name, then solution/workload/project name, e.g. northwind-web-backend, northwind-template-generator, northwind-integration-worker and so on.
Cloud Nine-owned repositories are not prefixed, e.g. czas.
Note: Most of our repositories' names vary wildly due to a historical lack of cohesion.
Offboarding
When a client is no longer partnered with Cloud Nine their repositories must be archived to be marked as inactive. The team's developers are responsible for archiving their client's repositories.
Public repositories
As a general rule, all repositories created within Cloud Nine should be private.
Connecting GitHub with other systems
When connecting GitHub to other systems and services we prefer well-established GitHub apps. If not available, we always connect using our service account on GitHub (see 1Password). If the connected system requires elevated access for a project, it is granted by a GitHub admin on a repository basis.