Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
gitolite [Le 23/11/2009, 23:50]
v0n
gitolite [Le 31/08/2022, 23:30] (Version actuelle)
moths-art Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
 +{{tag>​serveur}}
 +----
 +
 ====== Gitolite ====== ====== Gitolite ======
  
Ligne 27: Ligne 30:
 Cette commande a pour effet d'​ajouter votre clé au fichier ''​~/​.ssh/​authorized_keys''​ de **''​git''​**. Cette commande a pour effet d'​ajouter votre clé au fichier ''​~/​.ssh/​authorized_keys''​ de **''​git''​**.
  
-Gitolite ​nécéssite ​évidement Git. Si ce n'est pas fait, [[:​tutoriel:​comment_installer_un_paquet|installez donc le paquet]] [[apt://git-core|git-core]]. +Gitolite ​nécessite ​évidement Git. Si ce n'est pas fait, [[:​tutoriel:​comment_installer_un_paquet|installez donc le paquet]] [[apt>git-core|git-core]].
 ===== Installation ===== ===== Installation =====
  
Ligne 35: Ligne 37:
 Récupérez les sources de Gitolite sur Github, avec : Récupérez les sources de Gitolite sur Github, avec :
  
-  git clone git://​github.com/​sitaramc/​gitolite.git+  git clone https://​github.com/​sitaramc/​gitolite.git
  
 Déplacez-vous dans le dossier des sources : Déplacez-vous dans le dossier des sources :
Ligne 44: Ligne 46:
  
   src/​gl-easy-install git localhost admin   src/​gl-easy-install git localhost admin
 +   
 +<note important>​La commande précédente n'est plus bonne avec la version actuelle du répertoire github. Les changements semble d'​ailleurs assez important il n'est plus sur que cette page ne soit pas obsolète !</​note>​
 Cela signifie que vous lancez l'​installation en utilisant **''​git''​** comme utilisateur contenant les dépôts Git, sur votre serveur (ici la machine sur laquelle vous êtes connectée, donc ''​localhost''​ représente **''​server''​**) et utilisez **''​admin''​** comme administrateur des dépôts. Cela signifie que vous lancez l'​installation en utilisant **''​git''​** comme utilisateur contenant les dépôts Git, sur votre serveur (ici la machine sur laquelle vous êtes connectée, donc ''​localhost''​ représente **''​server''​**) et utilisez **''​admin''​** comme administrateur des dépôts.
  
-Il vous sera demandé plusieurs choses au cours de l'​exécution du script. Si vous n'​êtes pas familié ​avec Git, utilisez les propositions par défaut.+Il vous sera demandé plusieurs choses au cours de l'​exécution du script. Si vous n'​êtes pas familier ​avec Git, utilisez les propositions par défaut.
  
 ===== Configuration ===== ===== Configuration =====
  
-La configuration de Gitolite est simple. ​Elle crée un dépôt de configuration nommé ''​gitolite-admin''​ sur le serveur, ​et son clône dans le répertoire personnel de **''​admin''​**. C'est dans celui-ci que nous configurerons nos dépôts. ​cette configuration comprend un fichier et un dossier :+La configuration de Gitolite est simple. ​Un dépôt de configuration nommé ''​gitolite-admin'' ​est créé ​sur le serveur, ​ainsi que son clône dans le répertoire personnel de **''​admin''​**. C'est dans celui-ci que nous configurerons nos dépôts. ​Cette configuration comprend un fichier et un dossier :
  
   * **''​conf/​gitolite.conf''​** : fichier de configuration de Gitolite, contenant les dépôts, leurs utilisateurs/​groupes et leurs droits associés ;   * **''​conf/​gitolite.conf''​** : fichier de configuration de Gitolite, contenant les dépôts, leurs utilisateurs/​groupes et leurs droits associés ;
Ligne 80: Ligne 83:
 </​code>​ </​code>​
  
-Une fois votre fichier édité, ​sauvegardé ​puis //​commitez//​ les changements :+Une fois votre fichier édité, ​sauvegardez ​puis //​commitez//​ les changements :
  
   git add conf/​gitolite.conf   git add conf/​gitolite.conf
Ligne 92: Ligne 95:
 Pour ajouter un utilisateur,​ il suffit d'​ajouter sa clé publique au dossier ''​keydir/''​ dans un fichier nommé ''​username.pub''​. Pour ajouter un utilisateur,​ il suffit d'​ajouter sa clé publique au dossier ''​keydir/''​ dans un fichier nommé ''​username.pub''​.
  
-Pour ajouter par exemple l'​utilisateur ''​user1'',​ [[:​tutoriel:​comment_editer_un_fichier|crééz ​le fichier]] ''​keydir/​user1.pub''​ contenant sa clé publique.+Pour ajouter par exemple l'​utilisateur ''​user1'',​ [[:​tutoriel:​comment_editer_un_fichier|créez ​le fichier]] ''​keydir/​user1.pub''​ contenant sa clé publique.
  
 <​note>​ <​note>​
-Cette clé publique est habituellement créée avec la commande ''​ssh-keygen''​ (executée ​depuis le poste de l'​utilisateur à ajouter) et est contenue dans le fichier ''​~/​.ssh/​id_rsa.pub''​ de l'​utilisateur.+Cette clé publique est habituellement créée avec la commande ''​ssh-keygen''​ (exécutée ​depuis le poste de l'​utilisateur à ajouter) et est contenue dans le fichier ''​~/​.ssh/​id_rsa.pub''​ de l'​utilisateur.
 </​note>​ </​note>​
  
Ligne 119: Ligne 122:
  
 <​note>​ <​note>​
-Le groupe ''​@all''​ est un groupe ​déjà ​définit, représentant ​tout le monde.+Le groupe ''​@all''​ est un groupe ​pré-définit, représentant ​tous les utilisateurs.
 </​note>​ </​note>​
  
Ligne 134: Ligne 137:
   git commit -m "add group group1 and assign it to repo my_repo"​   git commit -m "add group group1 and assign it to repo my_repo"​
   git push   git push
- 
-<note help> 
-Pour une configuration plus poussée, comme les permissions sur les branches, Gitweb, etc, voir l'​exemple de [[http://​github.com/​sitaramc/​gitolite/​blob/​master/​conf/​example.conf|fichier de configuration]] de Gitolite. 
-</​note>​ 
  
 ==== Gestion des droits ==== ==== Gestion des droits ====
Ligne 145: Ligne 144:
   * **R** : droit de lecture uniquement (l'​utilisateur peut effectuer un ''​git clone'',​ etc) ;   * **R** : droit de lecture uniquement (l'​utilisateur peut effectuer un ''​git clone'',​ etc) ;
   * **RW** : droit de lecture et écriture (l'​utilisateur peut effectuer un ''​git clone'',​ ''​git push'',​ etc) ;   * **RW** : droit de lecture et écriture (l'​utilisateur peut effectuer un ''​git clone'',​ ''​git push'',​ etc) ;
-  * **RW+** : droit de lecture et écriture, ainsi que les //rewind permissions//,​ c'​est-à-dire le droit de supprimer des étapes du projet, comme par exemple ​le permet ​la commande ''​git reset --hard HEAD^''​.+  * **RW+** : droit de lecture et écriture, ainsi que les //rewind permissions//,​ c'​est-à-dire le droit de supprimer des étapes du projet, comme par exemple ​permettre ​la commande ''​git reset --hard HEAD^''​. 
 + 
 +<note help> 
 +Pour une configuration plus poussée, comme les permissions sur les branches, Gitweb, etc, voir le [[https://​github.com/​sitaramc/​gitolite/​blob/​master/​README.txt|README]] de Gitolite. 
 +</​note>​ 
 + 
 +==== Rendre un dépôt public ==== 
 + 
 +Pour permettre à n'​importe qui d'​accéder en lecture à votre dépôt, il vous faudra installer le ''​git daemon''​. 
 + 
 +[[:​tutoriel:​comment_installer_un_paquet|Installez donc le paquet]] [[apt://​git-daemon-run|git-daemon-run]]. 
 + 
 +Il faut indiquer au ''​git daemon''​ où sont situés les dépôts. Pour cela, [[:​tutoriel:​comment_editer_un_fichier|éditez votre fichier]] ''/​etc/​sv/​git-daemon/​run''​. 
 + 
 +Changez la ligne : 
 + 
 +  exec chpst -ugitdaemon git daemon --verbose --base-path=/​var/​cache /​var/​cache/​git 
 + 
 +par : 
 + 
 +  exec chpst -u git git daemon --verbose --base-path=/​home/​git/​repositories 
 + 
 +puis redémarrez le ''​git daemon''​ avec : 
 + 
 +  sudo /​etc/​init.d/​git-daemon restart 
 + 
 +Pour donner le droit de lecture au public pour un dépôt, il suffit d'​attribuer le droit de lecture à l'​utilisateur ''​daemon''​ pour ce dépôt. C'​est-à-dire,​ ajouter la ligne : 
 + 
 +  R                   = daemon 
 + 
 +à votre configuration,​ puis appliquer les changements,​ comme décrit dans la section [[#​creer_un_depot|Configuration]]. 
 + 
 +<note important>​ 
 +Notez que ''​git daemon''​ écoute sur le port **9418**. Donc celui-ci devra être accessible depuis l'​extérieur pour permettre au public d'​accéder à vos dépots. 
 +</​note>​ 
 +==== Changer le masque des dépôts ==== 
 + 
 +Il peut être utile de changer le masque des dépôts, c'​est-à-dire attribuer des droits différents aux nouveaux dépôts. Par exemple, //Gitweb// ou [[:​redmine|Redmine]] ont besoin de lire les dépôts pour les parcourir. Souvent, la plus propre méthode consistera à ajouter leur utilisateur au groupe //git// et ajouter le droit de lecture à ce groupe. 
 + 
 +[[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **''/​home/​git/​.gitolite.rc''​** (sur **''​server''​**) pour y changer la valeur de la variable ''​REPO_UMASK''​ comme ceci (commentez la valeur actuelle et décommentez celle voulue) : 
 + 
 +  $REPO_UMASK = 0027;       # gets you '​rwxr-x---'​ 
 + 
 +Ce n'est pas tout. Cette modification affectera les nouveaux dépôts créés, pas ceux déjà existants. Pour attribuer les bonnes permissions sur un dépôt existant, procédez comme ceci (dans le cas ou nous voulons attribuer le droit de lecture au groupe) : 
 + 
 +  sudo chmod -R g+Xr /​home/​git/​repositories/<​mon_depot>​.git/​ 
 + 
 +<note important>​ 
 +Notez le **'​X'​** et non pas **'​x'​**,​ qui aura pour effet d'​attribuer le droit d'​exécution seulement sur un dossier, ou sur un fichier si celui-ci est déjà exécutable (par le propriétaire par exemple). 
 +</​note>​
  
 ===== Utilisation ===== ===== Utilisation =====
Ligne 151: Ligne 199:
 ==== Accès à un dépôt ==== ==== Accès à un dépôt ====
  
-Après avoir ajouter ​un utilisateur,​ celui-ci peut //cloner// un dépôt avec :+=== Par un utilisateur === 
 + 
 +Après avoir ajouté ​un utilisateur,​ celui-ci peut //cloner// un dépôt avec :
  
   git clone git@server:​my_repo   git clone git@server:​my_repo
 +
 +=== Par le public ===
 +
 +Si vous avez [[#​rendre_un_depot_public|rendu un dépôt public]], n'​importe qui pourra //cloner// ce dépôt avec :
 +
 +  git clone git://​server/​my_repo
 +
 +=== Par l'​administrateur ===
 +
 +Dans le cas où l'​utilisateur **''​admin''​** veut développer sur **''​server''​**,​ il doit //cloner// un dépôt avec :
 +
 +  git clone gitolite:​my_repo
  
 <​note>​ <​note>​
-Si votre version de Git de **''​server''​** ​ est ''​1.6.0.*'',​ vous pourrez obtenir des erreurs ​au //clone// d'un dépôt **vide**. Pour contourner ce problème, vous pouvez mettre à jour votre la version de Git de **''​server''​**,​ ou contourner le problème chez le client en //clonant// le dépôt de cette manière :+Si votre version de Git de **''​server''​** ​ est inférieure à ''​1.6.2'',​ vous obtiendrez une erreur ​au //clone// d'un dépôt **vide**. Pour contourner ce problème, vous pouvez mettre à jour votre la version de Git de **''​server''​**,​ ou contourner le problème chez le client en //clonant// le dépôt de cette manière :
  
   mkdir repo1   mkdir repo1
Ligne 167: Ligne 229:
 </​note>​ </​note>​
  
-<​note>​ +===== Désinstallation =====
-Dans le cas où l'​utilisateur **''​admin''​** veut développer sur **''​server''​**,​ il doit //cloner// un dépôt avec :+
  
-  ​git clone gitolite:my_repo +Pour désinstaller Gitolite, il faut supprimer des fichiers de **''​server''​** et **''​admin''​**. 
-</note>+ 
 +Dossier à supprimer du dossier personnel de **''​admin''​** : 
 + 
 +  * ''​~/​gitolite-admin''​ 
 + 
 +Fichiers ou dossiers à supprimer du dossier personnel de **''​git''​** sur **''​server''​** : 
 + 
 +  * ''​~/​.gitolite''​ 
 +  * ''​~/​.gitolite.rc''​ 
 +  * ''​~/​gitolite-install''​ 
 +  * ''​~/​repositories/​gitolite-admin.git''​ 
 + 
 +Il ne reste plus qu'à supprimer les accès SSH des utilisateurs sur **''​server''​** ​
 + 
 +dans le fichiers ''​~/.ssh/​authorized_keys''​ de l'​utilisateur **''​git''​**,​ supprimez les clés des utilisateurs,​ ou supprimez la partie ''"​command=..."''​.
  
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * **(en)** [[http://​github.com/​sitaramc/​gitolite|page de Gitolite]] sur Github ​+  * **(en)** [[https://​github.com/​sitaramc/​gitolite|page de Gitolite]] sur Github ;
-  * **(en)** [[http://​github.com/​sitaramc/​gitolite/​blob/​master/​conf/​example.conf|Un exemple de fichier de configuration complet]] ​;+
   * **(fr)** documentation de [[:​git|Git]] du wiki ;   * **(fr)** documentation de [[:​git|Git]] du wiki ;
  
Ligne 182: Ligne 256:
  
 //​Contributeurs : [[:​utilisateurs/​v0n]].//​ //​Contributeurs : [[:​utilisateurs/​v0n]].//​
- 
  • gitolite.1259016644.txt.gz
  • Dernière modification: Le 18/04/2011, 14:59
  • (modification externe)