Where can I find a list of people that can commit directly to the github project?
Here is a list of people who have had commit access to Bitcoin Core. This list can also be found on Bitcointalk and on Reddit (it's the same list just in two different places). All lists are kept up to date and in sync.
This list contains the names and usernames of everyone who I can find evidence for ever having commit access to Bitcoin Core, the dates during which they had commit access, sources for all of this information, and reasoning for the access. Those who currently have commit access are in bold.
- Satoshi Nakamoto (satoshi, s_nakamoto): 2009-01-03 - 2011-09-13^ Creator, first Lead Maintainer
- Martii Malmi (Sirius, sirius_m): 2009-08-30 - 2011-09-13^ Creator of first SVN repo
- Laszlo (laszloh) 2010-08-04 - 2011-09-13^ Original OSX Builds and support
- Gavin Andresen (gavinandresen): 2010-10-11 - 2016-05-02^ Frequent contributor; later Lead Maintainer
- Chris Moore (dooglus): 2011-01-21 - 2011-03-31 Frequent contributor for some time; Still contributes occasionally
- Pieter Wuille (sipa): 2011-05-01 - 2022-07-07 Frequent contributor
- Jeff Garzik (jgarzik): 2011-05-06 - July/Aug 2016^ Frequent Contributor
- Wladimir J van der Laan (laanwj, wumpus): 2011-06-05 - present^ Frequent contributor; later Lead Maintainer
- Nils Schneider (tcatm): 2011-09-19 - 2012-05-31 Frequent contributor for some time
- Greg Maxwell (gmaxwell): 2012-02-11 - 2015-12-17 Frequent contributor; Gave up commit access due to toxicity and drama from the community
- Jonas Schnelli (jonasschnelli): 2015-11-13 - 2021-10-21^ Frequent contributor; given access after becoming GUI Maintainer; Stepped down for personal reasons.
- Marco Falke (MarcoFalke): 2016-04-13 - present^ Frequent Contributor; given access after becoming QA/Testing Maintainer
- Samuel Dobson (meshcollider): 2018-12-06 - 2021-12-09^ Frequent Contributor: given access after volunteering to be the Wallet Maintainer; Stepped down to focus on his PhD
- Michael Ford (fanquake): 2019-06-08 - present^ Frequent Contributor; given access after being nominated by several other frequent contributors and maintainers to become a maintainer.
- Hennadii Stepanov (hebasto): 2021-04-19 - present Frequent Contributor; given access after volunteering to help maintain the GUI
- Andrew Chow (achow101): 2021-12-20 - present^ Frequent Contributor; given access after volunteering to be the wallet maintainer.
- Gloria Zhao (glozow): 2022-07-07 - presentt^ Frequent contributor, given access after being nominated by several frequent contributors and maintainers to become a maintainer.
-  The move to Github occurred before the last SourceForge commit, but the last SourceForge commit declares sourceforge as dead. Presumably those who only committed to SourceForge no longer had commit access after the move
-  Sirius was the one who created the original SVN repo on SourceForge.
-  gavinandresen was the Lead Maintainer from 2011-02-23 until 2014-04-07
-  I was informed via IRC PM by some of the Core devs that jgarzik was removed around August 2016 after he had been inactive for several months.
-  laanwj is the current Lead Maintainer. After participating in that role for a long time, he was officially given the position by gavinandresen on 2014-04-07
-  jonasschnelli was the GUI Maintainer. After participating in that role for a long time, he was officially given the position by laanwj on 2015-11-13. He stepped down for personal reasons.
-  MarcoFalke is currently the QA/Testing Maintainer. After participating in that role for a long time, he was officially given the position by laanwj on 2016-04-13
-  meshcollider was the Wallet Maintainer. He had been contributing for a while, particularly to wallet related things. When laanwj asked if anyone would like to be the role of Wallet Maintainer, meshcollider volunteered. He stepped down to focus on his PhD.
-  fanquake is currently the Build System Maintainer as well as a general maintainer. He had been contributing for a while, particularly with updating dependency versions and build system related things. He also had been doing a lot of janitorial things in the repo such as tagging issues, closing old issues and PRs, nominating things to be merged, etc. At the CoreDev event in Amsterdam which several maintainers and contributors attended, he was nominated to be a maintainer by the entire group.
-  achow101 has contributed to the project for many years, especially in wallet and PSBT-related areas. After meshcollider stepped down from the Wallet Maintainer role, achow101 volunteered to take up the role.
-  glozow has contributed to the project for a few years, particularly in the mempool and node policy areas. She was nominated by fanquake to be a maintainer with focus in those areas.
- Dates are Year-Month-Day
- There may be people missing and dates may be slightly incorrect. These are all that I can determine by looking at old emails and the commit history. Please let me know if anything is incorrect
- The start date is determined by the first merge commit made by that person. The end date is determined by the date of the last merge commit made by that person or other announcements of commit access revocation.
After scrolling through nearly the entire git merges history, I have found a couple of interesting things.
Satoshi did not use a Version Control System originally. The releases and source code were originally in a rar file that was uploaded to bitcoin.org. Sirius had to setup the original SVN repository on SourceForge for him. This was then later migrated to GitHub by gavinandresen. Originally patches were authored by developers and then emailed to Satoshi, Sirius, or gavinandresen who then committed the changes to the source tree with the commit message containing the attribution, but not the actual commit itself.
Another interesting fact is that the giving out of commit access has become more strict. It is now a privilege held by those given maintainer positions and those whose privilege was grandfathered in (i.e. they had it previously and kept it, until otherwise revoked). Previously it was simply given out to those who contributed frequently and revoked after they stopped contributing. This appears to be no longer the case, although there are still multiple people who can commit to the repository so that there is not any reliance on one person. The maintainers are still given to frequent contributors as the maintainers are frequent contributors to the set of functionality for which they are maintainers of. They received the positions because of frequent contributions to those functionalities. Of those whose commit access was grandfathered, only Pieter Wuille remains - the rest were revoked eventually primarily for the lack of contributions (see each individual for their specific reason).
Lastly, I could not find any evidence for Satoshi ever publicly announcing that gavinandresen was to be the Lead Maintainer after him. It seems that Gavin was already a frequent contributor and already had commit access for a while before Satoshi disappeared. After Satoshi disappeared and Sirius stopped contributing as much, gavinandresen simply took over the role as lead maintainer as he was the only frequent contributor with commit access.
This chat transcript has the developers listed as
[06:55] <noagendamarket> Satoshi Nakamoto [06:55] <noagendamarket> Gavin Andresen - (PGP) [06:55] <noagendamarket> Amir Taaki - (PGP) [06:55] <noagendamarket> Pieter Wuille [06:55] <noagendamarket> Nils Schneider - [email protected] [06:55] <noagendamarket> Jeff Garzik - [email protected] (PGP)
(13 Dec 2010) Satoshi's Last Bitcoin Mailing List E-Mail (SourceForge)
(13 Dec 2020) Satoshi's Last BitcoinTalk Post (BitcoinTalk)
(15 Dec 2010) Satoshi's Last SourceForge Commit r202 (SourceForge)
(19 Dec 2010) Andresen says 'With Satoshi's blessing, and with great reluctance, I'm going to start doing more active project management for bitcoin' (BitcoinTalk).
You are right, Satoshi did not make any public statements about a successor, but Andresen's announcement probably counts as the 'formalisation' of his new role as Lead Maintainer.