-
-
Notifications
You must be signed in to change notification settings - Fork 28
Final Proposal for SC Consideration: Enabling GitHub features for triagers without commit rights #144
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
Comments
Thanks! I added this to the agenda. |
Accepted. — Petr, on behalf of the SC @ambv, as a repo owner, could you implement this? |
Now that the release is over with, maybe its time to go ahead with implementation? @ambv , I can be available synchronously to help test and check that its working as intended if that's helpful. The key thing to avoid any permissions leakage is to make sure the steps are implemented in order—the only step that actually grants people more rather than fewer permissions is the last one. |
Closing as this was accepted in 2022. |
Uh oh!
There was an error while loading. Please reload this page.
Motivation
At present, triagers are unable to use a number of GitHub features that would be useful to them in their role in supporting the core devs, including:
Finding a way to allow such without repo access would improve their ability to contribute, reduce load on core devs and help the project operate more efficiently and effectively.
Rationale
As discussed in detail on python/core-workflow#460, customizable granular role permissions would be the ideal solution, but the current limited customization does not provide any of these, and it seems from what we've been told, it is unlikely to be added in the near term. However, using branch protection, we have devised and tested a viable workaround that would grant triagers these GitHub-level permissions, but not actually touch the repository itself or impact the current core dev or RM workflow.
Specification
Restrict who can push to matching branches
andRestrict pushes that create matching branches
branch protection options for all branchesCore Developers
GitHub Team to the list of people/teams allowed to push to >= bugfix branches*
matching all branches with the former two options enabled, and optionally with theCore Developers
team allowed to push (see Recommend a procedure for branch management core-workflow#475 for discussion which concluded it wasn't, and not doing so would follow existing policy and avoid unintentional mistakes).*
) so triagers (or any non-RMs) cannot create or delete release tagsWrite
role on thecpython
repoThe net result is:
Restrict who can push to matching branches
and adding themself, they would instead just add/remove theCore Developers
GitHub team to/from the list.awaiting core review
) are not based on Role, so they should be unaffected as well.At present, this is proposed specifically for the CPython repo, but in the future, this could be applied to additional org repos if its primary maintainers agree it is useful and appropriate. I propose we implement this after the 3.11.0/3.12.0a1/etc. release in two weeks, since we're so close now, to avoid even a remote chance of any disruption.
I will document the one small RM change in PEP-101 as requested by RMs; if we need to write up documentation for this elsewhere, I'm happy to take care of that as well.
Security considerations
After careful consideration, this should have relatively minimal security impact:
Write
role as the last step), this approach is generally "fail-safe"; if RMs inadvertently neglect to re-add the core dev team to the list in branch protect, core devs will not be able to push/merge (just as if they were to currently forget to turn the rule off). rather than triagers being able to do soCore Developers
team; the RMs have been briefed and run through the new workflow, this would be added to PEP 101 and if it were to temporarily happen, it would be limited to the relatively small number of trusted triagers (who would quickly report it).Discussion
This follows detailed discussion on python/core-workflow#460 , where after working through a few final points, there was consensus in favor of the change and no major objections; this was announced on Discourse and the core dev Discord, where it earned a number of 👍 reactions and no concerns, and discussed in person at the Python sprints with all four current RMs (@ned-deily, @ambv , @pablogsal and @Yhg1s ) and the four present SC members, and all were supportive with no major concerns.
References
For a more detailed summary, see the Discourse post, and for the complete discussion, see python/core-workflow#460 .
The text was updated successfully, but these errors were encountered: