Skip to content

Commit b52e0fd

Browse files
nellshamrellehuss
authored andcommitted
adds rfc for rust-lang org github access policy
Signed-off-by: Nell Shamrell <nellshamrell@gmail.com>
1 parent 31c5614 commit b52e0fd

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

text/0000-github-access-policy.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
- Feature Name: rust-lang_github_org_access_policy
2+
- Start Date: 2020-03-02
3+
4+
# Summary
5+
[summary]: #summary
6+
7+
This RFC proposes a policy for managing permissions to the [Rust-Lang GitHub Organization](https://www.github.com/rust-lang) and repositories within this organization.
8+
9+
This RFC was written in consultation with the Governance Working Group and the Infrastructure team. Most discussion took place on [this issue](https://github.com/rust-lang/wg-governance) and [this pull request](https://github.com/rust-lang/wg-governance/pull/42).
10+
11+
# Motivation
12+
[motivation]: #motivation
13+
14+
Access control for the [Rust-Lang GitHub Organization](https://www.github.com/rust-lang) and repositories within that organization is currently managed ad-hoc. We need a policy that defines how these accesses are granted and managed. This will allow us to have greater security in permissions to our GitHub org and also allow the infra team to build appropriate tooling to automate access control when possible.
15+
16+
# Guide-level explanation
17+
[guide-level-explanation]: #guide-level-explanation
18+
19+
## Rust-Lang GitHub Permissions Policy
20+
This policy applies to both the [Rust-Lang GitHub Organization](https://github.com/rust-lang/) and all repositories within that organization.
21+
22+
### Rust-Lang Organization
23+
Membership in the Rust-Lang GitHub organization is managed by the organization owners.
24+
25+
All members of the [Core Team](https://github.com/rust-lang/team/blob/master/teams/core.toml) have the right to be organization owners.
26+
27+
Selected members of the [Infrastructure Team](https://github.com/rust-lang/team/blob/master/teams/infra.toml) can also be organization owners if their work requires it.
28+
29+
Owners should use a separate account from their main GitHub account dedicated to managing the organization. This account may not be used to commit code and must have 2FA enabled.
30+
31+
### Rust-Lang Repositories
32+
33+
Access to and permissions for repositories within the Rust-Lang organization should be administered through GitHub teams. Rust-Lang GitHub teams are administered through the [Team repository](https://github.com/rust-lang/team).
34+
35+
GitHub provides several permission levels for access to a repository. Please refer to [GitHub's documentation](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization) for details on permission levels and what each level can do.
36+
37+
Repositories in the Rust-Lang organization should follow these permission guidelines:
38+
39+
Permissions should **only** be given to teams within the Rust-Lang organization, not to individuals.
40+
41+
* **Admin** - only Rust team or working group leads should have this permission level
42+
* **Write** - contributors within GitHub teams may have this permission level at the discretion of the team leads
43+
* **Triage** - contributors within GitHub teams involved in issue and pull request management (i.e. closing, re-opening, and assigning issues and pull requests) should be granted this access
44+
* **Read** - by default, everyone should have access to read repositories
45+
46+
By default, repositories should be public and allow read access to all. When needed, some repositories can have limited read access (i.e. repositories related to security).
47+
48+
Bot accounts controlled by the Infrastructure Team (such as the [Rust High Five Bot](https://github.com/rust-highfive)) can be granted any level of access required for them to work at the discretion of the Infrastructure Team.
49+
50+
# Drawbacks
51+
[drawbacks]: #drawbacks
52+
53+
This policy would add more structure to managing GitHub permissions for both the [Rust-Lang GitHub Organization](https://github.com/rust-lang) and all repositories within it. Some might find this structure slows them down and alters their current workflow.
54+
55+
# Unresolved questions
56+
[unresolved-questions]: #unresolved-questions
57+
58+
- Should these rules applied to Rust-Lang affiliated repositories and organizations that are outside of the [Rust-Lang GitHub Org](https://www.github.com/rustlang)?
59+
- Should we automate this process?
60+
- How do we ensure that changes to the [Teams Repository](https://github.com/rust-lang/team) are reviewed and merged promptly?

0 commit comments

Comments
 (0)