web-dev-qa-db-fra.com

Comment restreindre l'accès à la branche principale sur git

J'ai un seul repo dans lequel j'ai 2 groupes d'utilisateurs:

  • Les admins
  • Développeurs HTML/UI

Je ne souhaite pas donner un accès en lecture/écriture de ma branche master à mes développeurs HTML, car ils n'ont pas besoin de travailler dessus et ne doivent pas abuser du code principal.

Bien qu'ils aient besoin de travailler sur leur propre branche ui-developers. Comment puis-je faire cela sur git?

P.S .: J'utilise BitBucket

MISE À JOUR:

J'avais posté cette question quand j'étais extrêmement nouveau en codage et git. Après 2 ans d'expérience, je sais maintenant que git ne permet pas de restreindre l'accès en lecture à une branche donnée. Mais des services comme Bitbucket, Gitlab, Github vous permettent d’imposer des restrictions d’écriture et de fusion à des branches.

De plus, je suis passé à Gitlab il y a 6 mois :)

43
Harshit Agrawal

Git lui-même n'a pas cette fonctionnalité, mais de nombreux fournisseurs d'hébergement en ont. Ceci est généralement appelé protection de branche . Autant que je sache, il n'y a aucun moyen d'empêcher l'accès en lecture.

Utiliser BitBucket

BitBucket permet beaucoup de personnalisation pour les actions à éviter par protection de branche. Pour protéger une branche:

  1. Accédez à un référentiel dans un projet.

  2. Choisissez Paramètres> Autorisations de branche.

  3. Cliquez sur Ajouter une autorisation.

  4. Dans le champ Branches, sélectionnez Nom de la branche, Modèle de branche ou Modèle de branche.

    • Nom de la branche - sélectionnez une branche existante par son nom.

    • Modèle de branche - spécifiez une branche en utilisant la syntaxe de modèle de branche pour faire correspondre les noms de branche.

    • Modèle de branchement - sélectionnez le type de branche auquel restreindre l'accès.

  5. Sélectionnez le type d'actions que vous souhaitez empêcher.

    • Suppression de branche - empêche la suppression de branche et de balise.

    • Réécriture de l’historique - empêche les réécritures de l’historique sur la ou les branches spécifiées - par exemple, par une force Push ou une nouvelle base.

    • Modifications sans demande d'extraction - empêche de transmettre les modifications directement aux branches spécifiées; les modifications sont autorisées uniquement avec une demande d'extraction.

    • Toutes les modifications - empêche les envois vers les branches spécifiées et limite la création de nouvelles branches correspondant aux branches ou modèles spécifiés.

  6. Facultatif: Ajoutez des exemptions pour l'une des restrictions sélectionnées. Ajouter un utilisateur ou un groupe en tant qu'exemption signifie que cela ne leur sera pas applicable. Ce n'est pas obligatoire. ne pas ajouter d'exemptions signifie que la restriction s'appliquera à tout le monde.

  7. Cliquez sur Créer pour terminer.

Source

Utiliser GitHub

Branche protégée dans GitHub:

  • Ne peut pas être forcé

  • Ne peut être supprimé

  • Impossible de fusionner les modifications avant que les vérifications de statut requises soient réussies

Pour protéger une branche:

  1. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre référentiel, cliquez sur Paramètres.

  3. Dans le menu de gauche, cliquez sur Branches.

  4. Sous Branches protégées, sélectionnez la branche que vous souhaitez marquer comme protégée à l'aide du menu déroulant.

  5. Sélectionnez Protéger cette branche.

  6. Cliquez sur Enregistrer les modifications.

Source

Utiliser GitLab

Dans GitLab, protéger une branche a les effets suivants:

  • il empêche sa création, si elle n’a pas déjà été créée, de tout le monde sauf les utilisateurs ayant la permission du maître
  • il empêche les envois de tous sauf les utilisateurs ayant l'autorisation du maître
  • il empêche quiconque de forcer la branche
  • il empêche quiconque de supprimer la branche

Pour protéger la branche:

  1. Accédez à la page principale du projet.

  2. Dans le coin supérieur droit, cliquez sur la molette de paramétrage et sélectionnez Branches protégées.

  3. Dans le menu déroulant Branche, sélectionnez la branche que vous souhaitez protéger et cliquez sur Protéger.

  4. Une fois cela fait, la branche protégée apparaîtra dans la liste "Déjà protégé".

Vous pouvez ensuite autoriser certains accès aux utilisateurs dotés de droits de développeur en cochant la case "Les développeurs peuvent fusionner" ou "Les développeurs peuvent envoyer".

Source

73
1615903