Most repositories have a name pattern like this:
open-telemetry/opentelemetry-foo
. The reason to include opentelemetry
in the
name of the repository is to simplify repositories distinction in forks. So when
one will fork the repository - fork's name will still indicate that this
repository is from OpenTelemetry organization.
Documents Community Membership and CONTRIBUTING define how permissions are typically set up for the repository.
- Every repository has two teams associated with it. Typically for the
repository
opentelemetry-foo
they will be namedfoo-approvers
andfoo-maintainers
.foo-maintainers
is a child offoo-approvers
as it always contains subset of people and defines larger scope of privileges. - Even though the members of
foo-maintainers
are included infoo-approvers
transitively, every member offoo-maintainers
should be included infoo-approvers
explicitly, and with the "Maintainer" GitHub privileges. So repository maintainers can invite new approvers to the team. - The team
foo-approvers
hasWrite
permissions for the repository. - The team
foo-maintainers
hasMaintain (beta)
permissions for the repository. - Root-level
CODEOWNERS
file on the repository should include superset of people from both teams. - Every repository has Admins group defined as Admins for the repository.
- Some repositories may include more individuals outside of approvers and
maintainers teams with the
Write
permissions. Typically for issues tracking and triage purpose. - Some repositories may include more individuals with
Admin
permissions. Typically to help set up repository, CI, web hooks or other administrative work.
Typically master
branch is set as default. And protected with the following
policies:
- Enable
Require pull request reviews before merging
setting. Make sureRequire review from Code Owners
is checked. - The default setting for
Required approving reviews
is1
approval. Individual repositores may opt-in for bigger number of required reviews. - Every repo MUST enforce
cla/linuxfoundation
check forRequire status checks to pass before merging
section. - It is a good practice to check the
Include administrators
setting. - Repository MUST enforce
Restrict who can push to matching branches
setting to only allow the members offoo-maintainers
to push to themaster
branch.
It is recommended to set the following settings:
- Only set "Allow squash merging" for the Merge button. It will ensure clean history for the repository.