Créer et gérer des ensembles de règles de dépôt
Dans cette unité, vous apprendrez à créer et gérer des ensembles de règles (rulesets) et à comprendre les avantages qu’ils offrent par rapport aux règles de protection traditionnelles.
En tant qu’administrateur GitHub, vous avez besoin d’un contrôle précis sur qui peut pousser, supprimer ou renommer des branches et des tags. Les ensembles de règles vous permettent de regrouper plusieurs règles sous un même nom, de les appliquer à des branches ou tags spécifiques, et de les activer ou désactiver sans les supprimer. Ils complètent les règles de protection existantes, offrant une approche unifiée et structurée de la sécurité des dépôts.
🔐 Qu’est-ce qu’un ensemble de règles ?
Un ensemble de règles est une collection nommée de règles qui s’appliquent à une ou plusieurs branches ou tags dans votre dépôt.
- Ciblage : choisissez des branches spécifiques (ex. :
feature/*
) ou des tags (ex. :v*.*
) - Définition des règles : exiger des vérifications de statut, imposer des commits signés, bloquer les push forcés, etc.
- Permissions de contournement : autoriser les administrateurs, équipes ou applications GitHub à contourner certaines règles
📌 Exemple : un ensemble de règles pour les branches feature/*
peut exiger des commits signés et bloquer les push forcés pour tous sauf les administrateurs.
📊 Comparaison : règles de protection vs ensembles de règles
Fonctionnalité | Règles de protection | Ensembles de règles |
---|---|---|
Une seule règle par branche ou tag | ✅ | ❌ (plusieurs règles) |
Groupes de règles multiples coexistants | ❌ | ✅ |
Activation/désactivation sans suppression | ❌ | ✅ (bouton d’état) |
Visibles par les utilisateurs en lecture | ❌ (admin uniquement) | ✅ |
✅ Avantages clés des ensembles de règles
- Superposition : regrouper des règles de plusieurs sources ; le paramètre le plus strict s’applique
- Statuts : activer, désactiver ou tester les ensembles sans les supprimer
- Transparence : les développeurs et auditeurs peuvent consulter les règles actives sans droits d’administration
🚀 Créer votre premier ensemble de règles
- Sur GitHub.com, allez dans Paramètres > Code et automatisation > Règles > Ensembles de règles
- Cliquez sur Nouvel ensemble de règles, puis sélectionnez Branche ou Tag
- Saisissez un nom et choisissez les branches ou tags ciblés
- Activez les règles souhaitées (ex. : exiger des vérifications de statut, bloquer les push forcés)
- Définissez les permissions de contournement (ex. : administrateurs, application CI)
- Cliquez sur Créer

💡 Astuce
Pour les branches de publication (release/*
), exigez deux vérifications de statut réussies et bloquez les push forcés afin de garantir la stabilité.
🔧 Gérer et modifier les ensembles de règles
- Afficher les ensembles actifs : sur la page des ensembles de règles, voyez quels ensembles ciblent une branche ou un tag donné
- Modifier un ensemble : cliquez sur son nom, ajustez les règles ou les cibles, puis enregistrez les modifications
- Changer le statut : activez ou désactivez un ensemble sans le supprimer
- Supprimer : retirez les ensembles obsolètes lorsqu’ils ne sont plus nécessaires
🛡️ Règles disponibles
Les ensembles de règles de dépôt prennent en charge de nombreuses protections similaires à celles des branches et des tags protégés.

Exemples courants :
- Exiger la réussite des vérifications de statut (ex. : CodeQL, revue des dépendances)
- Exiger des commits signés
- Bloquer les push forcés ou les suppressions
- Restreindre qui peut pousser ou fusionner
💡 Astuce
Appliquez votre pipeline CI/CD en exigeant des workflows clés comme vérifications de statut avant les fusions.
🧩 Superposition des ensembles de règles et des protections
GitHub agrège toutes les règles applicables — protection des branches, protection des tags et ensembles de règles multiples — et applique le paramètre le plus restrictif.
📌 Exemple : la branche my-feature
a :
- Un ensemble de règles exigeant des commits signés et trois revues
- Une règle de protection de branche exigeant un historique linéaire et deux revues
➡️ Résultat : les pull requests nécessitent trois revues, et les commits doivent être signés et linéaires
⚖️ Impacts des politiques et ensembles de règles dans GitHub Enterprise
Vos politiques et ensembles de règles influencent la sécurité, la conformité, l’expérience développeur et l’efficacité opérationnelle. Il est essentiel de trouver le bon équilibre entre contrôle et flexibilité.
🔐 Sécurité et conformité
Avantages | Inconvénients |
---|---|
Le SSO SAML et la 2FA empêchent les accès non autorisés | Bloquer les forks ou exiger trop d’approbations peut frustrer les développeurs |
La protection des branches garantit que chaque modification est revue | Les vérifications manuelles augmentent la charge administrative |
Les ensembles de règles d’audit soutiennent la conformité SOC 2 et ISO 27001 | — |
⚙️ Productivité des développeurs et efficacité des workflows
Avantages | Inconvénients |
---|---|
Les vérifications automatiques (Dependabot, analyse de code) réduisent le travail manuel | Des politiques strictes ralentissent les équipes agiles |
Les règles de sécurité automatisent la conformité | Bloquer les push forcés complique les correctifs d’urgence |
Des protections flexibles (ex. : revues sur branches critiques) maintiennent l’agilité | — |
🛡️ Gouvernance et contrôle d’accès
Avantages | Inconvénients |
---|---|
Les règles de visibilité évitent l’exposition accidentelle du code privé | Trop de restrictions peuvent nuire à la collaboration |
Les permissions fines assurent un accès approprié | Bloquer les forks dans les projets open source limite les contributions |
Les restrictions de fork réduisent les risques liés à la propriété intellectuelle | — |
🔄 CI/CD et automatisation
Avantages | Inconvénients |
---|---|
Les vérifications de statut garantissent la validation du code avant déploiement | Des validations CI trop strictes ralentissent les déploiements |
L’intégration de GitHub Actions avec les ensembles de règles applique automatiquement la conformité | Bloquer les Actions tierces limite l’automatisation |
L’analyse de code et la gestion des dépendances intégrées renforcent la sécurité des pipelines | — |
🔍 API de journal d’audit GitHub pour enquêter sur les actifs manquants
Les journaux d’audit permettent de suivre des événements comme la suppression de dépôts ou le retrait de membres. Utilisez REST ou GraphQL pour interroger et résoudre les problèmes.
🛠️ Étapes pour résoudre les actifs manquants
- Identifier l’actif : ex. :
repository.deleted
- Interroger l’API Audit Log (REST) :
GET /orgs/{org}/audit-log?phrase=repository.deleted
Authorization: Bearer YOUR_TOKEN
Interroger via GraphQL :
query {
auditLogEntries(first: 10, query: "repository.deleted") {
nodes {
action
actor { login }
createdAt
}
}
}
Filtrer et inspecter : Concentrez-vous sur les événements pertinents (repository.deleted, org.member_removed).
Remédier : Restaurez les ressources ou renforcez les paramètres de sécurité.