Tech Hub

@ Solution Architecture Works

Principes fondamentaux de GitHub – Notions de base sur l'administration et fonctionnalités du produit (Partie 2 sur 2)

Créer et gérer des ensembles de règles de dépôt

Temps estimé :6 minutes 76 vues

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 protectionEnsembles 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

  1. Sur GitHub.com, allez dans Paramètres > Code et automatisation > Règles > Ensembles de règles
  2. Cliquez sur Nouvel ensemble de règles, puis sélectionnez Branche ou Tag
  3. Saisissez un nom et choisissez les branches ou tags ciblés
  4. Activez les règles souhaitées (ex. : exiger des vérifications de statut, bloquer les push forcés)
  5. Définissez les permissions de contournement (ex. : administrateurs, application CI)
  6. 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é

AvantagesInconvénients
Le SSO SAML et la 2FA empêchent les accès non autorisésBloquer les forks ou exiger trop d’approbations peut frustrer les développeurs
La protection des branches garantit que chaque modification est revueLes 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

AvantagesInconvénients
Les vérifications automatiques (Dependabot, analyse de code) réduisent le travail manuelDes 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

AvantagesInconvé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

AvantagesInconvénients
Les vérifications de statut garantissent la validation du code avant déploiementDes 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

  1. Identifier l’actif : ex. : repository.deleted
  2. Interroger l’API Audit Log (REST) :
HTTP
GET /orgs/{org}/audit-log?phrase=repository.deleted
Authorization: Bearer YOUR_TOKEN

Interroger via GraphQL :

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é.

Share this Doc

Créer et gérer des ensembles de règles de dépôt

Or copy link

CONTENTS