9
votes

Refuser la lecture de branches de référentiel spécifiques avec gitolite

Ce que j'essaie d'atteindre est ce qui suit: Les collègues sont dans le groupe @Coworkers, Les clients sont dans le groupe @Clients.

Le repo git doit être disponible pour lire et écrire pour tout le monde, mais il y aura des succursales spéciales. c'est-à-dire que je crée une nouvelle branche "stagiaire" et @Coworkers aura RW + Accès, mais les clients ne doivent pas être capables de r ou w. p>

Je pensais pouvoir atteindre cela par P>

repo myrepo
    -    intern    = @clients
    RW+            = @clients @coworkers


0 commentaires

3 Réponses :


0
votes

Je ne suis pas un expert gitolite, mais je pense les règles sont traitées dans l'ordre. Avez-vous essayé simplement de renverser les deux dernières lignes? C'est-à-dire une autorisation de subvention à @Clients et à @Coworkers d'abord, puis refusez d'autres informations à l'accès au stagiaire par @Clients.


0 commentaires

10
votes

Selon un Discussion avec l'auteur de Gitolite, la restriction d'accès en lecture n'est pas possible pour les branches:

Les trucs par branche de gitolite ne fonctionnent que pour l'accès à l'écriture. Ce ne fonctionne pas pour l'accès en lecture car git elle-même ne Soutien en faisant cette distinction.


2 commentaires

Limiter l'accès à la lecture n'est pas possible dans Git par design - Lorsque vous clonant, vous devez toujours récupérer le référentiel complet, il n'y a aucun moyen de le contourner (sans changer fondamentalement comment git fonctionne).


Il est maintenant possible avec la fonction de copie partielle de la dernière version de Gitolite. Vérifiez ma réponse ci-dessous.



4
votes

Il est maintenant possible de limiter l'accès en lecture aux succursales de gitolite avec la dernière version de gitolite v3.x à l'aide du fonction partielle-copie de gitolite

  1. Assurez-vous d'utiliser la dernière version de gitolite
  2. Définissez la ligne partielle-copie dans la section Activer du fichier ~ / .gitolite.rc
  3. SET $ git_config_keys = '. *' dans le fichier ~ / .gitolite.rc
  4. Utilisez l'option de copie partielle pour avoir un autre référentiel qui est une copie de votre référentiel d'origine, mais sans certaines branches.

    Exemple: Si vous souhaitez que le client ait accès uniquement au Déployer branche xxx

    si git se plaint que cela ne peut pas Supprimer la succursale principale Vous pouvez utiliser cette commande sur le serveur: xxx

    Les clients peuvent désormais cloner la branche de déploiement du référentiel My-Repo-Déployer avec une commande comme celle-ci: xxx


0 commentaires