Teams
Codebase governor lets you manage your teams in a config file.
This page explains the format of the Codebase Governor teams configuration file. This functionality replaces the need to manage teams in the GitHub UI.
All necessary configuration files can be found within the teams/
directory of the org-config repository.
The file uses YAML syntax, and must have a .yml
file extension. If you’re new to YAML and want to learn more, see “Learn YAML in Y minutes”.
Fixed Teams
A fixed team is composed of explicitly specified members. The corresponding filename should adhere to the convention of the team slug, followed by a .yml
extension. For instance, teams/bf-gaming-native.yml
. Please note that currently, there is no support for human-readable team names. Consequently, the team name will mirror the filename.
owners
The owners
key specifies the owners of a team. The owners are responsible for approving any changes to the team’s configuration file through a PR in org-config.
owners.users
lists the GitHub usernames that are considered owners of the team.owners.teams
lists the team slugs that are considered owners of the team.
owners:
users:
- example-user-1
- example-user-2
teams:
- another-team
members
The members
key specifies the members of a team. All members of a team will be added with the member
GitHub role, i.e. no member of the team will have permissions to change the team through the GitHub UI.
members.users
lists the GitHub usernames that are considered members of the team.members.teams
lists the team slugs that are considered members of the team.
When another team is specified as a member, all changes to the child team will propagate to the parent team. Cyclic dependencies are not allowed.
members:
users:
- example-user-1
- example-user-2
teams:
- another-team
exclude
The exclude
key specifies what needs to be excluded from the members.
exclude.users
lists the GitHub usernames that will be excluded from the team.exclude.teams
lists the team slugs that will be excluded from the team.
When a another team is specified as an exclude, all changes to the child team will propagate to the parent team. Cyclic dependencies are not allowed.
exclude:
users:
- example-user-1
- example-user-2
teams:
- another-team