====== Git server administration ====== We use [[https://github.com/sitaramc/gitolite|Gitolite]] to manage access to the Evergreen Git repositories. Gitolite using a Git repository to store its configuration; changes are made by pushing commits to it. ===== Common tasks ===== ==== Check out the configuration repository ==== git clone git@git.evergreen-ils.org:gitolite-admin Note that this works only if you have an SSH key registered and you are a member of the ''gitadmin'' group. ==== Add a key ==== In order to get access to push to the working repositories, a contributor should provide one or more SSH public keys, either DSA or RSA in OpenSSH format. A unique username should be chosen; if not specified by the contributor, their IRC nick is a good choice. If one key is provided, name the file //nick//.pub. If multiple keys are provided, name them like this: - //nick@foo//.pub - //nick@bar//.pub - //nick@baz//.pub - etc. Both //nick//.pub and //nick@quux//.pub can be used simultaneously. In your checkout of ''gitolite-admin'', put the key files in the ''keydir/'' subdirectory. Use normal Git commands to create a commit containing the new files, then push it: git push origin master A hook will complain if something is wrong with the new keys. ==== Respond to the requester ==== Once you have added the key or keys, let the user know by sending them an email and CCing gitadmin@evergreen-ils.org: ''I've added your key. Your username for the purpose of naming branches in the working repos is 'foobar', and I've given you access to push to the Evergreen and OpenSRF working repo. ''