Exemplos de implementação da governança de PR com modelos, verificações, CODEOWNERS, regras e portões de ambiente

Concluído

Nesta unidade, você aprenderá:

  • Como as solicitações de pull atuam como pontos de controle de arquitetura para execução do agente

  • Como aplicar a validação do plano com verificações obrigatórias de status

  • Como usar CODEOWNERS e revisões para direcionar e aprovar alterações

Solicitações de pull são pontos de controle de arquitetura

As solicitações de pull são o mecanismo de controle primário para execução do agente em GitHub. Em vez de permitir alterações diretas em branches protegidos, arquiteturas bem projetadas roteiam alterações de agente por meio de pull requests e impõem requisitos de mesclagem por meio de políticas.

Um fluxo de trabalho seguro comum tem esta aparência:

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

Essa estrutura garante que a execução seja controlada tanto pela automação quanto pela revisão humana.

Implementação: modelo de PR que requer um plano estruturado

Um modelo de solicitação de pull garante que cada PR do agente forneça seções de plano e evidência consistentes.

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

Impor a validação do plano com verificações de status necessárias

Além dos modelos, você pode impor o gating do plano como uma verificação de status necessária. Isso transforma uma expectativa de processo ("incluir um plano") em uma garantia do sistema.

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

Observação de implementação:

Um administrador de repositório pode definir o "Plan Gate" como uma verificação de status necessária usando conjuntos de regras ou proteção de branch, garantindo que os PRs não possam ser mesclados, a menos que o plano esteja presente.

GitHub pode exigir aprovação explícita antes que os fluxos de trabalho sejam executados em alterações geradas pelo agente.

Usando CODEOWNERS para garantir a segurança

CODEOWNERS garante que as alterações em áreas sensíveis sejam automaticamente direcionadas aos revisores adequados.

# File: CODEOWNERS

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

Isso garante que um plano e um conjunto de alterações que afetem caminhos de alto risco não possam ser mesclados sem visibilidade dos especialistas certos (quando combinados com as políticas de revisão necessárias).

Tenha cuidado com a execução sem validação

Se um agente puder ignorar as verificações necessárias ou mesclar sem revisões, a arquitetura perderá seus principais mecanismos de segurança. Isso é menos um problema de modelo e mais uma falha de design de fluxo de trabalho.

Principais conclusões: Pull requests não são apenas ferramentas de colaboração - são mecanismos de aplicação.

Em seguida, você definirá quanta autonomia o agente deve ter com base no risco da tarefa.