Repositories
Naming conventions
Like
project-name-webmonorepoproject-name-apiproject-name-serviceproject-name-flutterproject-name-iosproject-name-android
Dislike
project-nameproject-name-frontendproject-name-backendproject-name-jsproject-name-mobileproject-name-cross-platform
Prefers to store Infrastructure as Code (IaC), such as Terraform code, in a separate repository named project-name-infrastructure.
Branches
- The main and dev branches must always exist.
- Default branch must be dev. So, every pull request may default to dev.
- Establish a pull request procedure to merge code to dev and main by implementing branch protection rules for both branches.
- Prevent developers committing straight to dev and main.
- Prevent accidentally deleting dev and main.
Access Management
- Check that the visibility of the code repository is set to private for projects.
- User groups/teams must be used to control access. Never provide access to a single person. In other words, a person must be a member of a group and the group must be granted access. At least two user groups/teams are required:
- Project Name - General: these users have only write access Typically, this group consists of the developers.
- Project Name - Admin: these users have only admin access. Typically, this group consists of the Tech Lead or Senior.