Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add documentation for GitHub organization and teams layout #27

Open
haydentherapper opened this issue Dec 12, 2024 · 0 comments
Open

Add documentation for GitHub organization and teams layout #27

haydentherapper opened this issue Dec 12, 2024 · 0 comments

Comments

@haydentherapper
Copy link

During the updates to governance, one area we identified to improve was describing the layout of the GitHub organization and how to implement the various roles in the SLSA community. Below is my proposal, which I'd like to add to a dedicated doc in this repo. We opted to not include this in the governance doc to give us the flexibility to revise

  • GitHub team defined for the Steering Committee, e.g. slsa-sc-members. This team is given "admin" permissions over the organization and all of its repositories
  • Each Workstream defines a team for Maintainers, e.g slsa-build-track-spec-maintainers, slsa-build-tooling-maintainers. Each team is given a "maintain" permission for the repository.
  • For a repository with multiple Workstreams, a CODEOWNERS file should include a line for each folder or file mapped to a Workstream team. The repository settings should require CODEOWNERS approval before merge.
  • A Workstream may define a GitHub team for code reviewers, e.g. slsa-build-tooling-reviewers. This team must contain only Contributors who have demonstrated knowledge of the codebase. This team is given "write" permission for a repository. The motivation with this role is an intermediate step up to eventual maintainership.
  • The Steering Committee will create branch protection rules per repository for the "main" branch to prevent direct pushes. Additionally, the rules must mandate that only teams with "maintain" permissions can merge changes with "push restrictions" and "dismiss restrictions". This means that those with "write" can only review and approve changes, but those with "maintain" can merge as well.
  • For all teams except the Steering Committee team, members added to the team should be a "member", not an "owner". "owners" can change who is in a team. Only the Steering Committee should be able to assign team memberships.
  • Team memberships should be updated as Maintainers and Steering Committee member resign or are added.
  • All team membership updates should be transparently recorded on GitHub issues. Long-term, automation like Pulumi may be used.
  • The organization should only contain memberships for Contributors, Maintainers and Steering Committee members, and only if those members are in GitHub teams.

Ref: slsa-framework/slsa#1102

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant