GitLabJ’utilise Git au quotidien depuis une bonne dizaine d’années, principalement pour gérer mes scripts et mes fichiers de configuration. Jusqu’ici je me suis servi de la plateforme GitHub pour stocker mes projets. Mais vu que GitHub a été racheté par Microsoft il y a un petit moment déjà et que c’est un projet propriétaire, c’est bien de s’émanciper petit à petit, à plus forte raison lorsque vous pouvez faire la même chose – et bien plus encore – avec un équivalent libre. J’ai donc décidé de passer à GitLab pour mes projets.

Note pour les chipoteurs : Oui, je suis parfois un peu long à la détente, par simple flemme de changer mes habitudes pour les choses que j’utilise au quotidien.

Créer un projet

Une fois que l’on dispose d’un compte sur le portail GitLab, on peut créer un projet.

Voici par exemple un projet que j’ai transféré de GitHub vers GitLab.

  1. Créer un projet : New project > Project Name
  2. Project Name : OpenSUSE Leap KDE Setup
  3. Project URL : https://gitlab.com/kikinovak/
  4. Project slug : opensuse
  5. Project description : Post-installation setup script for OpenSUSE Leap KDE
  6. Visibility level : Public
  7. Cocher Initialize repository with a README

Supprimer un projet

Avant de faire quoi que ce soit avec un projet, c’est bien de savoir faire le ménage. La suppression d’un projet sur GitLab n’est pas très intuitive, et j’ai dû chercher un peu.

  • Revenir à la page d’accueil
  • Cliquer sur le projet que l’on souhaite supprimer
  • Tout en bas dans le panneau à gauche, cliquer sur Settings
  • Tout en bas dans la fenêtre principale, repérer la rubrique Advanced et cliquer sur Expand
  • Là encore, descendre tout en bas de la page et cliquer sur Remove project
  • Confirmer en saisissant le nom du projet

Sur la machine locale

Cloner un dépôt distant.

$ git clone https://gitlab.com/kikinovak/opensuse-setup
Clonage dans 'opensuse'...
warning: redirection vers https://gitlab.com/kikinovak/opensuse.git/
remote: Enumerating objects: 97, done.
remote: Counting objects: 100% (97/97), done.
remote: Compressing objects: 100% (89/89), done.
remote: Total 97 (delta 1), reused 0 (delta 0), pack-reused 0
Dépaquetage des objets: 100% (97/97), fait.

Savoir d’où vient ce code.

$ cd opensuse/
$ git remote -v
origin https://gitlab.com/kikinovak/opensuse (fetch)
origin https://gitlab.com/kikinovak/opensuse (push)

Définir l’identité au niveau global.

$ git config --global user.name "Nicolas Kovacs"
$ git config --global user.email "info@microlinux.fr"

Git crée un fichier ~/.gitconfig contenant les informations fournies.

$ cat ~/.gitconfig
[user]
        name = Nicolas Kovacs
        email = info@microlinux.fr

CentOS 7 et GitLab

Sur un serveur sous CentOS 7, on peut se retrouver confronté au problème suivant.

$ git clone https://gitlab.com/kikinovak/centos
Cloning into 'centos'...
error: RPC failed; result=22, HTTP code = 404
fatal: The remote end hung up unexpectedly

Ce bug prohibitif n’est toujours pas résolu. Il exaspère pas mal de monde pour la simple raison qu’il est mal documenté. Pour le résoudre, il suffit d’ajouter le suffixe « .git » à l’URL du dépôt.

$ git clone https://gitlab.com/kikinovak/centos.git
Cloning into 'centos'...
remote: Enumerating objects: 208, done.
remote: Counting objects: 100% (208/208), done.
remote: Compressing objects: 100% (123/123), done.
remote: Total 208 (delta 88), reused 190 (delta 78), pack-reused 0
Receiving objects: 100% (208/208), 33.40 KiB | 0 bytes/s, done.
Resolving deltas: 100% (88/88), done.

Authentification par clé SSH

Pour éviter d’avoir à taper son nom d’utilisateur et son mot de passe, on peut très bien s’authentifier avec sa clé SSH. La génération d’une paire de clés SSH est décrite en détail dans cet article.

Copier la clé publique vers le presse-papier.

$ xclip -sel clip < ~/.ssh/id_rsa.pub

Une fois qu’on s’est connecté au site de Gitlab, cliquer sur l’avatar du compte en haut à droite de la page et ouvrir la rubrique Settings > SSH Keys. Copier la clé publique dans le champ prévu à cet effet, renseigner le nom de la machine et la date d’expiration de la clé et cliquer sur Add Key.

Gitlab clé SSH

Tester la connexion à Gitlab.

$ ssh -T git@gitlab.com
Welcome to GitLab, @kikinovak!

Pour le clonage des dépôts, il faudra s’y prendre un peu différemment.

$ git clone git@gitlab.com/kikinovak/opensuse

La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


1 commentaire

Buzut · 28 mars 2020 à 7 h 45 min

J’allais poser la question afin de savoir si c’était la version SaaS ou community mais je crois comprendre qu’il s’agit de la SaaS, ce qui en effet correspond plus à un remplaçant de Github.
Mon seul problème avec Gitlab est que pour les projets Open Source, y’a quand même moins de visibilité.

Les commentaires sont fermés.