Introduction
I would like to restart the discussion from my previous RFC on this topic and propose some new requirements for obtaining commit access.
For those that are not aware, about a month ago, we changed our commit access request process from an email based process to one that goes through GitHub Issues. This has allowed us to better track who is requesting commit access and gather stats about how many commits people generally have before they request access. Here are some of the numbers:
Of the 42 requests for commit access:
- 28.6 % of requesters had 0 or less commits.
- 40.5 % of requesters had 1 or less commits.
- 47.6 % of requesters had 2 or less commits.
- 66.7 % of requesters had 3 or less commits.
- 71.4 % of requesters had 4 or less commits.
- 73.8 % of requesters had 5 or less commits.
21.4 % requested commit access before even submitting a PR.
As one of the people responsible for granting commit access, I’ve become more and more uncomfortable with granting commit access to users that have little to no interaction with the project, and I think we need to make a change.
For further background, please see my talk or slides from the 2024 US Developer’s Conference on the benefits of having more stringent requirements for commit access.
Proposal
I would like to propose that we require contributors have at least 3 commits and acks from 2 current committers in order to be granted commit access for the project.
Based on the stats above more than half of the users in the past month would meet the commit requirements and all of them had PRs committed by at least 2 unique users who would be able to provide the necessary Acks. I think these requirements strike a good balance between being friendly to new contributors and also ensuring that we do not just hand out commit access to anyone.
It’s important also to remember that you don’t need commit access to contribute to the project. Submitting a PR does not require write access to the repo, and it’s trivial for one of the 1623 contributors who already have access to merge it for you.
I understand that no policy we have can ever keep us 100% safe, and whether the commit limit is 3, 10, or 100, a motivated attacker could find away to get access anyway. However, what this policy will do is reduce our risk of compromise and that is still important even if we aren’t ever going to be 100% safe. So, please consider this proposal and let me know what you think.