| 1 | !! |
| 2 | $DPP "Groupnix Git" "Git on Groupnix Documentation" <template/head.html #> |
| 3 | $DPP <template/bar.html #> |
| 4 | !! |
| 5 | |
| 6 | <p> |
| 7 | Each user on Groupnix has access to their own git user. Git repositories can be |
| 8 | viewed using the web front end at |
| 9 | <a href="https://git.buni.party">git.buni.party</a>. This front end is running |
| 10 | the <a class="out" href="https://git.lewoof.xyz/me/gitbrowse">gitbrowse</a> |
| 11 | software. The web front end can only be used for viewing the repositories. |
| 12 | Additionally, repositories can be cloned over HTTP using the provided clone URL. |
| 13 | For a user <em>user</em> with repository <em>repo</em>, the clone URL will be of |
| 14 | the form |
| 15 | <strong>https://git.buni.party/<em>user</em>/<em>repo</em>.git</strong>. |
| 16 | </p> |
| 17 | |
| 18 | <h3>Creating and Modifying Repositories</h3> |
| 19 | <p> |
| 20 | In order to create or modify a git repository, you must first import an ssh key |
| 21 | into the git server system. To do this, log into your user at |
| 22 | <code>USER@u.buni.party</code>. You will have a file at |
| 23 | <code>~/.ssh/git_keys</code>. This file will hold the SSH public keys that you |
| 24 | want to be able to access your git repos. Note that these keys cannot be shared |
| 25 | between users. Sharing git accounts is frowned upon but if you are sure that you |
| 26 | want to do it, you must generate additional SSH keys to ensure no collisions |
| 27 | between users. The <code>git_keys</code> file will have the same format as the |
| 28 | <code>authorized_keys</code> file you already have. Now, the keys must be |
| 29 | imported into the git server. Keys are automatically imported every 12 hours but |
| 30 | this process can be expedited. To import immediately, run the command <code>sudo |
| 31 | /opt/bin/git-import-now</code>. The sudo part is necessary since the command |
| 32 | will fail without the necessary permissions. |
| 33 | </p> |
| 34 | <p> |
| 35 | Once SSH keys have been imported into the git server, creating new repos is as |
| 36 | simple as <code>git push</code> with the upstream URL set to the URL of the repo |
| 37 | you want to create. Note that the URL for push must be SSH format, not HTTP. |
| 38 | There is no method for pushing or otherwise modifying repos over HTTP for |
| 39 | security reasons. If user <em>USER</em> wants to access repo <em>REPO</em>, the |
| 40 | URL will be of the form <code>git@buni.party:USER/REPO</code>. If the repo does |
| 41 | not exist, then <code>git push</code> will create it. |
| 42 | </p> |
| 43 | <p> |
| 44 | Users cannot delete a repo themselves, even if they own it or it is under their |
| 45 | account. To delete a repo, mail <code>mod</code> with your deletion request. |
| 46 | Include the <code>USER/REPO</code> path that you want deleted in your request. |
| 47 | </p> |
| 48 | |
| 49 | !!$DPP <template/foot.html #> |
| 50 | |