Gitolite ?
Gitolite permet de gérer plusieurs dépôts avec des fonctionnalités comme la gestion multi-utilisateurs et les droits en lecture ou lecture-écriture.
Nous partirons sur une architecture type client-serveur et du principe que vous avez git d’installer et que vous savez l’utiliser.
Coté Serveur
Creer un utilisateur ‘git’ :
adduser git |
Assurez-vous d’avoir un serveur SSH qui tourne sur la machine qui hébergera les dépôts.
Enfin copiez la clé RSA de la machine cliente (et de votre compte qui servira d’administrateur pour les dépôts) dans le .ssh/authorized_keys de l’utilisateur ‘git’ du serveur.
Coté Client
Télécharger le code de Gitolite via la ligne de commande :
git clone http://github.com/sitaramc/gitolite.git |
Entrez dans le repertoire Gitolite et exécutez le script :
src/gl-easy-install git server monuser |
où git est l’utilisateur de Gitolite sur le serveur, server correspond à l’adresse de votre serveur et monuser est l’utilisateur de la machine locale qui sera administrateur de Gitolite.
Répondez en appuyant sur la touche Entrée aux diverses informations que Gitolite vous donne puis, au moment où il vous affiche le fichier de configuration, tapez ‘: x‘ (sans espace, moi j’ai un smiley qui se tape l’incruste !) puis Entrée. Continuez enfin à maltraiter la touche Entrée.
Une fois terminé, un dossier gitolite-admin sera créé dans votre dossier personnel. C’est la dedans que va se passer le reste de la configuration.
Ajout d’utilisateurs
Dans un premier temps, récuperez les clés publiques RSA de toutes les personnes qui vont avoir besoin d’acceder à vos dépôts puis ajoutez les dans ~/gitolite-admin/keydir. Ces clés peuvent se trouver sous la forme ‘user.pub’ ou bien ‘user@machine.pub’ dans le cas où un même utilisateur voudrait avoir accès aux dépôts depuis plusieurs machines differentes.
Pour finir l’ajout des nouveaux utilisateurs, il faut envoyer la configuration au serveur :
git commit -am "Ajout d'utilisateurs" git push |
Pour tester, vous pouvez cloner le dépôt ‘testing’, qui a été créé par Gitolite, soit par la commande :
git clone gitolite:testing.git |
Cette commande utilise une configuration pour SSH faite par Gitolite. Vous pouvez la voir dans .ssh/config.
Ou bien vous pouvez utiliser cette commande :
git clone git@server:~/repositories/testing.git |
Ajout de dépôts
1 2 3 4 5 | repo gitolite-admin
RW+ = adrien
repo testing
RW+ = @all |
La configuration n’est pas compliqué : une ligne ‘repo nomdurepo’ permet de créer un dépôt tandis que les lignes en dessous permettent de gérer les accès au dépôts.
R correspond à l’accès en lecture, RW à l’accès en lecture et écriture, tandis que RW+ vous permet plus de droits, comme par exemple la suppression d’un commit.
Gitolite peux aussi gérer les groupes d’utilisateurs, on peut le voir avec l’exemple du dépôt ‘testing’ et le groupe @all qui correspond à tout le monde.
On créer un groupe de la manière suivante :
@groupe = user1 user2 user3 |
Voilà pour gitolite. Plus qu’à commiter maintenant !
PS : il se peut que vous rencontriez le problème ‘gitolite-admin does not appear to be a git repository’. J’ai résolu celui-ci en enlevant la clé RSA du fichier .ssh/authorized_keys du serveur que j’avais ajouté au tout début de l’installation.