Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gitolite - Héberger ses dépôts GIT simplement

crohr
March 13, 2013

Gitolite - Héberger ses dépôts GIT simplement

Aperçu de gitolite, installation, et utilisation de ses fonctionnalités principales.

crohr

March 13, 2013
Tweet

More Decks by crohr

Other Decks in Programming

Transcript

  1. GITOLITE ? “Git by itself does not do any access

    control” http://gitolite.com/gitolite/why.html
  2. FONCTIONNALITÉS 1 utilisateur système sur le serveur (“git”), shell restreint.

    0..n utilisateurs réels, 1 clé SSH par utilisateur. Gestion fine des permissions (R/W, par référence). GPLv2. Pas très utile si seulement un utilisateur réel.
  3. INSTALLATION 1/3 Créer un utilisateur “git” : sudo apt-get install

    git-core sudo useradd git --system -m --shell /bin/bash
  4. INSTALLATION 2/3 Ajouter la clé publique du futur admin gitolite

    : sudo su - git curl -s http://crohr.me/id_dsa.pub > crohr.pub
  5. INSTALLATION 3/3 Installer gitolite (pas besoin d’être root) : sudo

    su - git git clone git://github.com/sitaramc/gitolite mkdir -p $HOME/bin gitolite/install -to $HOME/bin gitolite setup -pk crohr.pub Initialized empty Git repository in /home/git/repositories/gitolite- admin.git/ Initialized empty Git repository in /home/git/repositories/testing.git/ WARNING: /home/git/.ssh missing; creating a new one WARNING: /home/git/.ssh/authorized_keys missing; creating a new one
  6. GITOLITE-ADMIN Dépôt git ! git clone [email protected]:gitolite-admin Permet de gérer

    les utilisateurs et les dépôts Les clés publiques des utilisateurs vont dans `keydir/` La définition des dépôts et des permissions se fait dans `conf/gitolite.conf`
  7. AJOUTER UN DÉPÔT ET UN UTILISATEUR cd gitolite-admin/ Ajout du

    dépôt `hello-world`, avec accès en lecture/ écriture pour un nouvel utilisateur `alice` :
  8. AJOUTER UN DÉPÔT ET UN UTILISATEUR Commiter et pousser :

    git commit -am "Add hello-world repo." git push ... remote: Initialized empty Git repository in /home/git/repositories/hello- world.git/ ... Le dépôt est automatiquement créé par un post-receive hook !
  9. AJOUTER UN DÉPÔT ET UN UTILISATEUR Test : git clone

    [email protected]:hello-world.git Cloning into 'hello-world'... FATAL: R any hello-world crohr DENIED by fallthru (or you mis-spelled the reponame) Seule alice peut accéder à ce dépôt. Il est temps d’ajouter sa clé publique.
  10. AJOUTER UN DÉPÔT ET UN UTILISATEUR Copier la clé publique

    de l'utilisateur alice dans `keydir` : cp alice.pub keydir/ git add keydir/ git commit -m "Add alice’s key" git push
  11. AJOUTER UN DÉPÔT ET UN UTILISATEUR Test : git clone

    [email protected]:hello-world.git Cloning into 'hello-world'... warning: You appear to have cloned an empty repository. :0)
  12. PERMISSIONS R read only, for read only RW read/write, pousser

    sur une référence existante ou pour créer une nouvelle référence RW+ pareil que R/W, mais avec la possibilité de forcer les push (push -f) ou supprimer des références. - Interdire l’accès
  13. POUR EN SAVOIR PLUS Code https://github.com/sitaramc/gitolite Doc (permissions, gestion des

    hooks, smart HTTP, etc.) http://gitolite.com/gitolite/master-toc.html