Exemples d’implémentation de la gouvernance des pull requests avec des modèles, des vérifications, CODEOWNERS, des règles et des portes d’environnement

Effectué

Dans cette unité, vous allez apprendre :

  • Comment les pull requests agissent comme des points de contrôle architecturaux pour l’exécution de l'agent

  • Comment appliquer la validation de plan avec les vérifications d’état requises

  • Comment utiliser CODEOWNERS et les évaluations pour acheminer et approuver les modifications

Les pull requests sont des points de contrôle architecturaux

Les pull requests sont le mécanisme de contrôle principal pour l’exécution des agents sur GitHub. Au lieu d’autoriser les modifications directes apportées aux branches protégées, les architectures bien conçues routent les modifications de l’agent par le biais de demandes de tirage (pull request) et appliquent les exigences de fusion par le biais de la stratégie.

Un flux de travail sécurisé courant ressemble à ceci :

Agent creates branch

    ↓

Agent opens pull request (includes plan)

    ↓

Required reviews validate approach

    ↓

GitHub Actions run required checks

    ↓

All checks pass + approvals complete

    ↓

Pull request can be merged

Cette structure garantit que l’exécution est contrôlée par l’automatisation et la révision humaine.

Implémentation : modèle de pull request nécessitant un plan structuré

Un modèle de requête de tirage (pull request) garantit que chaque requête de tirage d'agent fournit des sections cohérentes de planification et de preuves.

<!-- File: .github/pull_request_template.md -->

## Plan (required)
- **Goal:**
- **Scope (paths/files):**
- **Steps:**
  1.
  2.
  3.
- **Success criteria (verifiable):**
  - [ ] Required checks pass
  - [ ] Security signals reviewed (as applicable)
- **Risks + mitigations:**
- **Rollback / escalation plan:**

## Evidence
- Workflow run(s):
- Scan results (if applicable):

## Review checklist
- [ ] Plan reviewed and approved
- [ ] Required reviews satisfied
- [ ] Required checks satisfied

Application de la validation du plan avec les vérifications d’état requises

Outre les modèles, vous pouvez appliquer la planification en tant que vérification d’état requise. Cela transforme une attente de processus (« inclure un plan ») en garantie système.

# File: .github/workflows/plan-gate.yml
name: Plan Gate

on:
  pull_request:
    branches: [ main ]

jobs:
  require-plan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Require plan artifact
        run: |
          if [ ! -f "Github/pull_request_template.md" ]; then
            echo "Github/pull_request_template.md is required for this pull request."
            exit 1
          fi
          echo "Github/pull_request_template.md found."

Note d’implémentation :

Un administrateur de référentiel peut marquer Plan Gate comme un contrôle d’état requis à l’aide des ensembles de règles ou de la protection de branche, pour garantir que les pull requests ne peuvent pas fusionner, sauf si le plan existe.

GitHub pouvez exiger une approbation explicite avant que les flux de travail ne s’exécutent sur les modifications générées par l’agent.

Utilisation de CODEOWNERS pour garantir la sécurité

CODEOWNERS garantit que les modifications apportées aux zones sensibles sont automatiquement apportées aux réviseurs appropriés.

# File: CODEOWNERS

/security/ @security-team
/.github/workflows/ @platform-team
/infra/ @platform-team
* @core-team

Cela garantit qu’un plan et un ensemble de modifications affectant les chemins à haut risque ne peuvent pas être fusionnés sans visibilité des experts appropriés (lorsqu’ils sont combinés avec les stratégies de révision requises).

Soyez méfiant de l’exécution sans validation

Si un agent peut contourner les vérifications requises ou fusionner sans révision, l’architecture perd ses mécanismes de sécurité principaux. Il s’agit moins d’un problème de modèle et plus d’un échec de conception de flux de travail.

Point clé : Les pull requests ne sont pas seulement des outils de collaboration, mais aussi des mécanismes d'application.

Ensuite, vous allez définir la quantité d’autonomie que l’agent doit avoir en fonction du risque de la tâche.