LilyPond Contributor's Guide: 3.5 Commit access

## 3.5 Commit access

New contributors are not able to push branches directly to the main repository – only members of the LilyPond development team have commit access. If you are a contributor and are interested in joining the development team, contact the Project Manager through the mailing list (lilypond-devel@gnu.org). Generally, only contributors who have already provided a number of patches which have been merged to the main repository will be considered for membership.

If you have been approved by the Project Manager, use the following procedure to obtain commit access.

- Navigate to https://gitlab.com/lilypond and ‘Request access’ to the group. Make sure that your account can be related to your activity on the mailing list. If in doubt, please post the user name after requesting access.

  Note that you will not have commit access until the Project Manager activates your membership. Once your membership is activated, LilyPond should appear under the heading “Groups” on your profile page.

- Generate and register an SSH key pair. Excellent instructions are provided in GitLab’s documentation.
- Configure Git to use the SSH protocol (instead of the GIT or HTTP protocols). From your local Git repository, enter:

  >     git remote set-url origin git@gitlab.com:lilypond/lilypond.git

- After your membership has been activated and you’ve configured Git to use SSH, test the connection with:

  >     git pull --verbose

  SSH should issue the following warning:

  >     The authenticity of host 'gitlab.com' can't be established.
  >     ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
  >     Are you sure you want to continue connecting (yes/no/[fingerprint])?

  Make sure the key fingerprint displayed matches the one above or one of the others published by GitLab. If it doesn’t, respond “no” and check that you configured Git properly in the previous step. If it does match, respond “yes”. SSH should then issue another warning:

  >     Warning: Permanently added 'gitlab.com' (ECDSA) to the list of known hosts.

  The list of known hosts is stored in the file ‘`~/.ssh/known_hosts`’.

  At this point, you are prompted for your passphrase if you have one, then Git will attempt a pull.

  If `git pull --verbose` fails, you should see error messages like these:

  >     Permission denied (publickey).
  >     fatal: The remote end hung up unexpectedly

  If you get the above error, you may have made a mistake when registering your SSH key. If the key is properly registered and it still doesn’t work after an hour, ask for help on the mailing list.

  If `git pull --verbose` succeeds, the output will include a ‘From’ line that shows ‘ssh’ as the protocol:

  >     From git@gitlab.com:lilypond/lilypond.git

- Test your commit access with a dry run:

  >     git push --dry-run --verbose

- Repeat the steps from generating an SSH key through to testing your commit access, for each machine from which you will be making commits, or you may simply copy the files from your local ‘`~/.ssh`’ folder to the same folder on the other machine.

#### LilyPond — Contributor’s Guide v2.22.2 (stable-branch).