Exempel på implementering av PR-styrning med mallar, kontroller, CODEOWNERS, regler och miljögrindar

Slutförd

I den här lektionen får du lära dig:

  • Så här fungerar pull-begäranden som arkitekturkontrollpunkter för agentkörning

  • Så här framtvingar du planverifiering med nödvändiga kontrollstatuskontroller

  • Så här använder du CODEOWNERS och granskningar för att dirigera och godkänna ändringar

Pull-begäranden är arkitekturkontrollpunkter

Pull-begäranden är den primära kontrollmekanismen för agentkörning i GitHub. I stället för att tillåta direkta ändringar i skyddade grenar dirigerar väldesignade arkitekturer agentändringar via pull-begäranden och framtvingar sammanslagningskrav via principen.

Ett vanligt säkert arbetsflöde ser ut så här:

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

Den här strukturen säkerställer att körningen är styrd av både automatisering och mänsklig granskning.

Implementering: PR-mall som kräver en strukturerad plan

En pull-begärandemall säkerställer att varje agent-PR tillhandahåller konsekventa avsnitt för plan och bevis.

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

Upprätthålla planverifiering med nödvändiga kontrollstatuskontroller

Förutom mallar kan du tillämpa plangranskning som ett krav för statuskontroll. Detta omvandlar en processförväntning ("inkludera en plan") till en systemgaranti.

# 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."

Implementeringsanteckning:

En lagringsplatsadministratör kan markera Plan Gate som en nödvändig statuskontroll med hjälp av regeluppsättningar/grenskydd, vilket säkerställer att PR:er inte kan slås samman om inte planen finns.

GitHub kan kräva uttryckligt godkännande innan arbetsflöden körs på agentgenererade ändringar.

Använda CODEOWNERS för att säkerställa säkerheten

CODEOWNERS ser till att ändringar i känsliga områden går till rätt granskare automatiskt.

# File: CODEOWNERS

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

Detta säkerställer att en plan och ändringsuppsättning som påverkar högriskområden inte kan sammanfogas utan att de rätta experterna har insyn (i kombination med nödvändiga granskningspolicys).

Se upp för exekvering utan validering

Om en agent kan kringgå nödvändiga kontroller eller slå samman utan granskningar förlorar arkitekturen sina primära säkerhetsmekanismer. Detta är mindre ett modellproblem och mer ett arbetsflödesdesignfel.

Viktig takeaway: Pull-begäranden är inte bara samarbetsverktyg – de är tvingande mekanismer.

Därefter definierar du hur mycket autonomi agenten ska ha baserat på risken för uppgiften.