Nous envisageons également d'utiliser git-http-backend, et d'utiliser Apache pour l'authentification, mais perdons-nous alors le contrôle d'accès ?
Non, vous pouvez configurer l'authentification avec ldap presque exactement comme vous l'avez fait pour SVN. Gitweb et git-http-backend utilisent mod_ldap comme SVN pour l'authentification.
Le site en ligne peut-il être mis à jour automatiquement à partir d'un hook si Apache requiert une authentification ?
Git est livré par défaut avec gitweb. C'est principalement ce qui est utilisé pour un navigateur en ligne pour votre base de code source. Vous pouvez le configurer derrière Apache avec mod_ldap pour l'authentification, tout comme git-http-backend. Aucun hook n'est nécessaire pour mettre à jour le navigateur en ligne et les dépôts qui y sont listés. Tout cela est maintenu par le cgi, git-http-backend.
Peut-on combiner git-http-backend et gitosis/gitolite d'une manière ou d'une autre ?
La gitolite est ce qu'il vous faut :
https://github.com/sitaramc/gitolite/wiki/
La Gitose est essentiellement dépréciée :
Ubuntu-server : convention de nommage des utilisateurs de gitosis
Personnellement, nous utilisons uniquement LDAP pour l'autorisation et l'authentification des utilisateurs. Vous n'avez pas vraiment besoin de gitolite pour la gestion des utilisateurs si vous utilisez LDAP. Vous pouvez utiliser n'importe quel outil général de gestion des utilisateurs LDAP pour cela. La plupart des distributions Linux sont livrées avec une variété d'outils d'interface utilisateur pour gérer openLDAP. Si vous utilisez Windows, utilisez simplement active directory.
L'approche par défaut (git, gitweb, git-http-backend, LDAP) et gitolite prennent en charge les éléments suivants :
- il ne s'agit pas de "vrais" utilisateurs, c'est-à-dire de connexions sur le boîtier physique qui les héberge (selon la manière dont vous utilisez LDAP)
- ils n'ont pas accès à Shell (selon la façon dont vous utilisez LDAP)
- contrôler l'accès à plusieurs dépôts git
- accès en lecture contrôlé au niveau du repo
- peut être installé sans accès root, en supposant que git et perl soient déjà installés l'authentification se fait le plus souvent à l'aide de sshd, mais vous pouvez également utiliser httpd si vous préférez (cela peut nécessiter un accès root).
Cependant, si vous souhaitez une gestion fine des utilisateurs sans LDAP et que vous répondez aux critères suivants, gitolite peut être une meilleure solution :
- utiliser un seul utilisateur Unix (utilisateur "réel") sur le serveur
- fournir un accès à de nombreux utilisateurs de gitolite
- accès en écriture contrôlé au niveau des branches/étiquettes/fichiers/répertoires, y compris les personnes autorisées à rembobiner, créer et supprimer des branches/étiquettes
De http://sitaramc.github.com/gitolite/index.html#gl_what
Peut-on stocker les identifiants http avec git ?
Oui, vous pouvez stocker/assigner des utilisateurs en utilisant git config :
git config --global user.name "Foo Bar"
git config --global user.email "your@mail.address.com"
git config --global user.password "yourpassword"
git config --global github.user "yourusername"
git config --global github.password "yourpassword"
Cependant, si vous l'utilisez avec SSH, assurez-vous d'utiliser des certificats CA et non des certificats auto-signés. Git a ce hack bizarre, sslVerify=false, pour le faire fonctionner avec des certificats auto-signés, ce qui semble aller à l'encontre de l'objectif d'utiliser des certificats.
Lorsque vous allez migrer du code de svn vers git, vous aurez besoin d'un bon outil d'importation. Je n'en ai pas trouvé qui fonctionne bien pour les gros dépôts, alors j'ai écrit le mien. N'hésitez pas à expérimenter si vous rencontrez des problèmes avec git-svn :
https://github.com/onepremise/SGMS