Utilisation de la forge

Pour créer des projets git sur repo.infohers.org est d'abord de créer une clé ssh dédiée:

ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/YOURNAME -C "YOURNAME@student.hers.be"

Vous obtenez deux clés, dont une publique à transmettre à

$ cat ~/.ssh/YOURNAME.pub 
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFcUP4erZG0FIPNI/h2SuryyEaHHW6TmuA2o2J8GYD58 YOURNAME@student.hers.be

Vous disposez alors d'un accès via l'utilisateur git:

$ ssh git@repo.infohers.org -i /tmp/YOURNAME 
PTY allocation request failed on channel 0
hello YOURNAME, this is git@ov-9885b1 running gitolite3 v3.6.14-3-g4d2611d on git 2.47.3

     C  collab/CREATOR/[a-zA-Z0-9_-]+
     C  user/CREATOR/[a-zA-Z0-9_-]+

Vous pouvez créer des dépôt git dans: repo.infohers.org:user/YOURNAME/REPONAME.git ou repo.infohers.org:collab/YOURNAME/REPONAME.git

Les différences sont les droits attribués aux différents dépôts.

  1. Pour ceux situés dans user/YOURNAME/.

    Vous pouvez définir des WRITERS qui auront tous les droits sur les branches USER/ (dont push --force) et sur les tags nommé USER/ (où USER sera remplacé par le nom d'utilisateur).

  2. Pour ceux situés dans collab/YOURNAME/.

    Vous pouvez définir des WRITERS qui auront les droits push (sans --force) dans toutes les branches sauf la branche main.

Vous pouvez accéder à la documentation des différentes commandes possible via:

ssh git@repo.infohers.org -i /tmp/YOURNAME  help
  1. Création d'un dépôt: il suffit de le cloner.

    Assurez-vous que la branche par défaut des nouveaux dépôts est bien main.

    git config --global init.defaultBranch main
    

    Créez un dépôt

    GIT_SSH_COMMAND="git -i ~/.ssh/YOURNAME" git clone git@repo.infohers.org:user/YOURNAME/myrepo
    

    Pour ne pas devoir spécifier GIT_SSH_COMMAND, vous pouvez modifier votre ~/.ssh/config.

       Host repo.infohers.org
         User git
         Hostname repo.infohers.org
         Port 22
         IdentityFile ~/.ssh/YOURNAME
    

    Vous pouvez faire simplement:

    git clone repo.infohers.org:user/YOURNAME/myrepo
    
  2. Configuration de votre dépôt git.

    Voici quelques commandes recommandées pour configurer votre projet git.

       git config user.name "Prénom Nom"
       git config user.email "USERNAME@student.hers.be"
       git config gpg.format ssh                         # utilise la clé ssh pour signer vos commit
       git config user.signingkey "~/.ssh/VOTRE_CLE.pub" # la clé ssh utilisée pour signer les commits
       git config commit.gpgsign true                    # signe les commits par défaut
       git config tag.gpgsign true                       # signe les tags par défaut
    

    Ces commandes sont à exécutées dans chaque nouveau dépôt git. Vous pouvez utiliser l'option --global, mais sachez que ces valeurs seront les valeurs par défaut. Si vous travailler en stage, notez que votre email est votre clé peuvent être différentes, vous devrez alors saisir les commandes ci-haut adaptées.

  3. Rajouter des utilisateurs.

    Pour rajouter des utilisateurs, de l'aide est disponible via:

    ssh repo.infohers.org perms
    

    Pour rajouter un utilisateur avec les permissions en écriture:

    ssh repo.infohers.org perms user/YOURNAME/myrepo + WRITERS OTHERUSER
    

    Pour rajouter un utilisateur avec les permissions en lecture:

    ssh repo.infohers.org perms user/YOURNAME/myrepo + READERS OTHEROTHERUSER
    

    Pour obtenu une liste des droits déjà présents:

    ssh repo.infohers.org perms user/YOURNAME/myrepo -l