GitLab CE & Git LFS – 401 Unauthorized

J’ai récemment voulu exploiter les capacités de Git LFS avec un serveur GitLab Community Edition pour soulager le dépôt de Qu’est-ce que Tu GEEKes ? des fichiers binaires. Mais ça ne s’est pas passé aussi facilement que je l’espérais.

En suivant la doc, on apprend que la prise en charge de LFS est activée par défaut dans les versions récentes de GitLab : nickel !

J’exécute donc les manip’ suivantes :

git lfs install
git lfs track "*.blend"
git add .gitattributes mon_fichier.blend
git commit -am "First Blender project"
git push

A ce moment, Git LFS me demande mes identifiants GitLab. En me renseignant un peu, je comprend que Git LFS ne supporte pas l’authentification via SSH mais uniquement l’authentification par HTTP donc tout va bien.

Tout va bien, tout va bien… Sauf que maintenant il me les redemande… Encore et encore… 🤯


Aller, on passe en mode verbeux pour en savoir plus :

GIT_TRACE=true git push

En plissant un peu les yeux, on peut lire les deux lignes suivantes :

trace git-lfs: HTTP: 401
git.c:418               trace: built-in: git credential reject

Pour info, le code de retour HTTP 401 signifie « Non autorisé » (Unauthorized en anglais).
Mais… J’ai beau revérifié mon mot de passe rien n’y fait. 😥

En fait, l’astuce, c’est qu’il ne faut pas utilisé son mot de passe mais un jeton d’accès !
Vous pouvez en créer un en vous rendant dans votre profil GitLab dans le menu « Jeton d’accès ».
Un jeton avec au moins le scope write_repository est nécessaire.
Pensez à le stocker dans votre gestionnaire de mots de passe car il ne s’affichera plus dans GitLab une fois la page quitté.

Et voilà, cette fois ça passe ! \o/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.