@@ -8,41 +8,93 @@ tasks (for example, a maintainer may be given admin rights to a repo to
8
8
configure CI for the first time or similar). Such permissions must be done
9
9
temporarily unless prescribed otherwise by this document.
10
10
11
- For GitHub, the permissions are enforced by adding individuals to the GitHub team
11
+ For GitHub, the
12
+ [ permissions] ( https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/repository-roles-for-an-organization )
13
+ are enforced by adding individuals to the GitHub team
12
14
matching their role (for example, "Astropy Core Maintainers" or "Astropy
13
15
website maintainers" for a core maintainer or the astropy.org team, respectively),
14
16
a duty primarily performed at the moment by the Coordination Committee.
15
17
Temporary permissions should instead use the "collaborator" feature on Github to
16
18
make it clear that these permissions are temporary in nature.
17
19
20
+ Regardless of access level, even if it is temporary,
21
+ [ GitHub two-factor authentication] ( https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication )
22
+ must be enabled for the affect user accounts.
23
+
18
24
Additionally, the granter of permissions (usually the Coordination Committee)
19
25
should send a message to the new recipient of write permissions listing the
20
26
responsibilities and expectations that go with this - a template for this email
21
- is available [ in this repo] ( ../messages/core_write_access .md ) . That message may
27
+ is available [ in this repo] ( ../messages/maintainer_access .md ) . That message may
22
28
contain a prompt for a response, which should be cc-ed/forwarded to
23
-
29
+
30
+
31
+ ## Access levels
24
32
25
- ## Core package maintainers
33
+ ### Core package maintainers
26
34
27
- All maintainers listed for the core package receive * write access** to the
35
+ All maintainers listed for the core package receive * write access* to the
28
36
repository via the ** Astropy Core Maintainers** GitHub team.
29
37
30
- ## Coordinated package maintainers
38
+ ### Coordinated package maintainers
31
39
32
40
Coordinated package maintainers receive ** admin access** to the coordinated
33
- package repositories via the ** <package name > maintainers** GitHUb team (e.g.,
41
+ package repositories via the ** <package name > maintainers** GitHub team (e.g.,
34
42
'astroquery maintainers').
35
43
36
- ## Core package release coordinators
44
+ ### Core package release coordinators
37
45
38
46
Core package release coordinators receive ** admin access** to the core
39
- repository, as well as the astropy-helpers and extension-helpers repositories
40
- since releases of those packages may be tightly coupled to the core package , as
47
+ repository, as well as the extension-helpers repository
48
+ since releases of those packages may be tightly coupled, as
41
49
well as ** write access** to the website repository. This is done via the ** Core
42
50
release maintainers** GitHub team.
43
51
44
- ## Coordination committee
52
+ ### Coordination committee
45
53
46
- The coordination committee members receive ** owner access** to
47
- the astropy organization. In addition, they have access to the project
54
+ The Coordination Committee members receive ** owner access** to
55
+ the astropy GitHub organization. Members who are not familiar or
56
+ comfortable with GitHub administration may opt out. However,
57
+ a majority of the committee should have access. If necessary,
58
+ members should receive GitHub administration training before given access.
59
+
60
+ In addition, they have access to the project
48
61
credentials (or the shared password manager to access the credentials).
62
+ As with GitHub access above, members may opt out but the majority and training
63
+ rules also apply here.
64
+
65
+ Regardless of access level, the members are always bound by
66
+ [ APE 0] ( https://github.com/astropy/astropy-APEs/blob/main/APE0.rst ) .
67
+ For example, a Coordination Committee member cannot delete or transfer
68
+ a repository without first obtaining concensus from the community.
69
+
70
+ ## Other ways to gain access
71
+
72
+ Besides the process laid out a the beginning of this document,
73
+ which might not cover all cases, other ways include:
74
+
75
+ ### Automated access
76
+
77
+ (TODO: Fill in info from the automated invite bot that Matt Craig deployed.)
78
+
79
+ ### Manual request
80
+
81
+ If for some reason there was an oversight in the process or a special
82
+ situation that is not covered, people could request access
83
+ (for themselves or others) using the
84
+ [ Astropy Github Organisation Administration] ( https://github.com/astropy/astropy-project/issues/new?assignees=&labels=github-admin&projects=&template=github-admin.yaml )
85
+ issue template. Please clearly state the reason for the request.
86
+ Once the issue is opened, one of the Coordination Committee members
87
+ would handle it as appropriate.
88
+
89
+ ## Removing access
90
+
91
+ As people switch roles or leave the project completely, GitHub access
92
+ would be adjusted accordingly. For example, if a maintainer is no
93
+ longer active and is not responsive to developer surveys,
94
+ the Coordination Committee has the right to remove this person
95
+ from a named role and thus the associated GitHub permission(s).
96
+ This also applies to Coordination Commitee members that rotated off.
97
+
98
+ Anyone that abuses their given priviledge will also have it removed.
99
+ Please report any abuse to the Coordination Committee or the Ombudsperson,
100
+ as you see fit.
0 commit comments