Skip to main content

Cette version de GitHub Enterprise Server n'est plus disponible depuis le 2024-03-26. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Gestion d’une règle de protection de branche

Vous pouvez créer une règle de protection de branche pour appliquer certains workflows dans une ou plusieurs branches, par exemple exiger une révision d’approbation ou passer des vérifications d’état pour toutes les demandes de tirage (pull requests) fusionnées dans la branche protégée.

Qui peut utiliser cette fonctionnalité ?

People with admin permissions to a repository can manage branch protection rules.

Les branches protégées sont disponibles dans les référentiels publics avec GitHub Free et GitHub Free pour les organisations, et dans les référentiels publics et privés avec GitHub Pro, GitHub Team, GitHub Enterprise Cloud et GitHub Enterprise Server.

À propos des règles de protection de branche

Vous pouvez créer une règle de protection de branche dans un référentiel pour une branche spécifique, pour toutes les branches ou pour toute branche qui correspond à un modèle de nom que vous spécifiez avec la syntaxe fnmatch. Par exemple, pour protéger toutes les branches contenant le mot release, vous pouvez créer une règle de branche pour *release*.

Vous pouvez créer une règle pour toutes les branches actuelles et futures dans votre dépôt avec la syntaxe générique *. Étant donné que GitHub utilise l’indicateur File::FNM_PATHNAME pour la syntaxe File.fnmatch, le caractère générique * ne correspond pas aux séparateurs de répertoires (/). Par exemple, qa/* correspond à toutes les branches commençant par qa/ et contenant une barre oblique unique, mais ne correspond pas à qa/foo/bar. Vous pouvez inclure n’importe quel nombre de barres obliques après qa avec qa/**/*, qui correspondrait, par exemple, à qa/foo/bar/foobar/hello-world. Vous pouvez également étendre la chaîne qa avec qa**/**/* pour rendre la règle plus inclusive.

Pour plus d’informations sur les options de syntaxe, consultez la documentation fnmatch.

Remarque : toutes les expressions de la syntaxe fnmatch ne sont pas prises en charge dans les règles de protection des branches. Tenez compte des contraintes suivantes :

  • Vous ne pouvez pas utiliser la barre oblique inverse (\) comme caractère de citation, car GitHub ne prend pas en charge l’utilisation de barres obliques inverses dans les règles de protection des branches.
  • Vous pouvez spécifier des jeux de caractères entre crochets ([]), mais actuellement, vous ne pouvez pas compléter un jeu avec l’opérateur ^ (par exemple, [^charset]).
  • Bien que GitHub prend en charge File::FNM_PATHNAME dans la syntaxe fnmatch, File::FNM_EXTGLOB n’est pas pris en charge.

Si un dépôt a plusieurs règles de branches protégées qui affectent les mêmes branches, les règles qui incluent un nom de branche spécifique ont la priorité la plus élevée. Si plusieurs règles de branche protégée référencent le même nom de branche spécifique, la règle de branche créée en premier aura une priorité plus élevée.

Les règles de branches protégées qui mentionnent un caractère spécial, tel que *, ? ou ], sont appliquées dans l’ordre dans lequel elles ont été créées ; les règles les plus anciennes avec ces caractères ont donc une priorité plus élevée.

Pour créer une exception à une règle de branche existante, vous pouvez créer une règle de protection de branche de priorité plus élevée, telle qu’une règle de branche pour un nom de branche spécifique.

Pour plus d’informations sur chacun des paramètres de protection de branche disponibles, consultez « À propos des branches protégées ».

Création d’une règle de protection de branche

Lorsque vous créez une règle de branche, la branche que vous spécifiez n’a pas encore besoin d’exister dans le dépôt.

Remarque : les acteurs peuvent être ajoutés uniquement pour contourner les listes quand le référentiel appartient à une organisation.

  1. Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.

  2. Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la section « Code et automatisation » de la barre latérale, cliquez sur Branches.

  4. À côté de « Règles de protection de branche », cliquez sur Ajouter une règle.

  5. Sous « Modèle de nom de branche », tapez le nom ou le modèle de branche à protéger.

  6. Si vous le souhaitez, activez les demandes de tirage (pull requests) requises.

    • Sous « Protéger les branches correspondantes », sélectionnez Exiger une demande de tirage avant de fusionner.

    • Pour demander des approbations avant la fusion d’une demande de tirage, sélectionnez Demander des approbations.

      Sélectionnez le menu déroulant Nombre d’approbations nécessaires avant la fusion, puis sélectionnez le nombre de révisions d’approbation que vous souhaitez demander sur la branche.

    • Si vous le souhaitez, pour ignorer une révision d’approbation de demande de tirage lorsqu’un commit de modification de code est poussé vers la branche, sélectionnez Ignorer les approbations de demandes de tirage obsolètes lorsque de nouveaux commits sont poussés.

    • Si vous le souhaitez, pour exiger une révision de la part d’un propriétaire de code lorsque la demande de tirage affecte du code qui a un propriétaire désigné, sélectionnez Exiger une révision de la part des propriétaires de code. Notez que si le code a plusieurs propriétaires, l’approbation de n’importe lequel d’entre eux sera suffisante pour satisfaire à cette exigence. Pour plus d’informations, consultez « À propos des propriétaires de code ».

    • Si vous le souhaitez, pour autoriser des acteurs spécifiques à pousser du code vers la branche sans créer de demandes de tirage lorsqu’elles sont exigées, sélectionnez Autoriser les acteurs spécifiés à contourner les demandes de tirage requises. Ensuite, recherchez et sélectionnez les acteurs qui doivent être autorisés à ignorer la création d’une demande de tirage.

    • Si vous le souhaitez, si le dépôt fait partie d’une organisation, sélectionnez Restreindre qui peut ignorer les révisions de demandes de tirage. Ensuite, dans le champ de recherche, recherchez et sélectionnez les acteurs autorisés à ignorer les révisions de demandes de tirage. Pour plus d’informations, consultez « Ignorer la révision d’une demande de tirage ».

  7. Si vous le souhaitez, activez les vérifications d’état requises. Pour plus d’informations, consultez « À propos des vérifications d’état ».

    • Sélectionnez Exiger la réussite des vérifications d’état avant de fusionner.
    • Si vous le souhaitez, pour être sûr que les demandes de tirage sont testées avec le code le plus récent de la branche protégée, sélectionnez Exiger que les branches soient à jour avant la fusion.
    • Dans le champ de recherche, recherchez les vérifications d’état, en sélectionnant celles que vous souhaitez exiger.
  8. Si vous le souhaitez, sélectionnez Exiger une résolution de conversation avant de fusionner.

  9. Si vous le souhaitez, sélectionnez Exiger des commits signés.

  10. Si vous le souhaitez, sélectionnez Exiger un historique linéaire.

  11. Si vous le souhaitez, pour choisir les environnements sur lesquels les modifications doivent être correctement déployées avant la fusion, sélectionnez Exiger la réussite des déploiements avant de fusionner, puis sélectionnez les environnements.

  12. Vous pouvez aussi définir la branche en lecture seule.

    • Sélectionnez Verrouiller la branche.
    • Si vous le souhaitez, pour autoriser la synchronisation de la duplication, sélectionnez Autoriser la synchronisation de la duplication.
  13. Vous pouvez aussi sélectionner Ne pas autoriser le contournement des paramètres ci-dessus.

  14. Si vous le souhaitez, activez les restrictions de branche.

    • Sélectionnez Restreindre qui peut effectuer un push vers les branches correspondantes.
    • Si vous le souhaitez, pour restreindre également la création de branches correspondantes, sélectionnez Restreindre les poussées qui créent des branches correspondantes.
    • Dans le champ de recherche, recherchez et sélectionnez les personnes, équipes ou applications qui auront l’autorisation de pousser vers la branche protégée ou de créer une branche correspondante.
  15. Si vous le souhaitez, sous « Règles appliquées à tous, y compris les administrateurs », sélectionnez Autoriser les poussées de force.

    Ensuite, choisissez ensuite qui peut forcer la poussée vers la branche.

    • Sélectionnez Tout le monde pour autoriser toute personne ayant au moins des autorisations d’écriture dans le dépôt à forcer la poussée vers la branche, y compris celles disposant d’autorisations d’administrateur.
    • Sélectionnez Spécifier qui peut forcer la poussée pour autoriser uniquement des acteurs spécifiques à forcer la poussée vers la branche. Ensuite, recherchez et sélectionnez ces acteurs.

    Pour plus d’informations sur les poussées de force, consultez « À propos des branches protégées ».

  16. Si vous le souhaitez, sélectionnez Autoriser les suppressions.

  17. Cliquez sur Créer.

Modification d’une règle de protection de branche

  1. Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.

  2. Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la section « Code et automatisation » de la barre latérale, cliquez sur Branches.

  4. À droite de la règle de protection de branche que vous souhaitez modifier, cliquez sur Modifier.

  5. Apportez vos modifications souhaitées à la règle de protection de branche.

  6. Cliquez sur Save changes.

Suppression d’une règle de protection de branche

  1. Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.

  2. Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la section « Code et automatisation » de la barre latérale, cliquez sur Branches.

  4. À droite de la règle de protection de branche que vous souhaitez supprimer, cliquez sur Supprimer.