Git on Groupnix Documentation

Home Users Services Docs

Each user on Groupnix has access to their own git user. Git repositories can be viewed using the web front end at git.buni.party. This front end is running the gitbrowse software. The web front end can only be used for viewing the repositories. Additionally, repositories can be cloned over HTTP using the provided clone URL. For a user user with repository repo, the clone URL will be of the form https://git.buni.party/user/repo.git.

Creating and Modifying Repositories

In order to create or modify a git repository, you must first import an ssh key into the git server system. To do this, log into your user at USER@u.buni.party. You will have a file at ~/.ssh/git_keys. This file will hold the SSH public keys that you want to be able to access your git repos. Note that these keys cannot be shared between users. Sharing git accounts is frowned upon but if you are sure that you want to do it, you must generate additional SSH keys to ensure no collisions between users. The git_keys file will have the same format as the authorized_keys file you already have. Now, the keys must be imported into the git server. Keys are automatically imported every 12 hours but this process can be expedited. To import immediately, run the command sudo /opt/bin/git-import-now. The sudo part is necessary since the command will fail without the necessary permissions.

Once SSH keys have been imported into the git server, creating new repos is as simple as git push with the upstream URL set to the URL of the repo you want to create. Note that the URL for push must be SSH format, not HTTP. There is no method for pushing or otherwise modifying repos over HTTP for security reasons. If user USER wants to access repo REPO, the URL will be of the form git@buni.party:USER/REPO. If the repo does not exist, then git push will create it.

Users cannot delete a repo themselves, even if they own it or it is under their account. To delete a repo, mail mod with your deletion request. Include the USER/REPO path that you want deleted in your request.