EN · Read in English Explorar gratis

Receta · Intermedio · 15 min

Revisa cada pull request con Claude Code en GitHub Actions

Configura anthropics/claude-code-action@v1 para que revise tus PR solo, responda a @claude en comentarios y no dispare el gasto. Workflows listos.

Probado con Claude Code 2.1.316 · revisado

El problema

Revisar a mano cada pull request cuesta tiempo, y en equipos pequeños los PR se aprueban sin que nadie los lea a fondo. Quieres que Claude Code deje comentarios en el PR en cuanto se abre y poder preguntarle con @claude sin salir de GitHub. Y no quieres que se coma tus minutos de Actions ni tu saldo de API en cada cambio de un README.

La solución

Dos workflows con la acción oficial anthropics/claude-code-action (etiqueta @v1; la última publicada el 31-oct-2026 es v1.0.266): uno revisa cada PR automáticamente y otro responde cuando alguien escribe @claude. Necesitas ser administrador del repositorio.

Probado: sintaxis YAML y configuración (cada input del paso existe en el action.yml actual de la acción). No probado: la ejecución en GitHub; depende de tu repositorio, tu app instalada y tu secreto.

1. Instala la app y el secreto (vía rápida)

Instala la GitHub CLI e inicia sesión. Luego, dentro de tu repositorio:

gh auth login
claude

En Claude Code escribe /install-github-app y sigue los pasos. Instala la Claude GitHub App, guarda tu credencial como secreto del repositorio (ANTHROPIC_API_KEY si usas clave de API, CLAUDE_CODE_OAUTH_TOKEN si usas tu suscripción) y abre un pull request con los workflows. Solo funciona con repositorios de github.com.

2. O hazlo a mano

  1. Instala la Claude GitHub App en el repositorio.
  2. Crea el secreto en Settings → Secrets and variables → Actions → New repository secret:
    • ANTHROPIC_API_KEY: una clave de la Claude Console.
    • o CLAUDE_CODE_OAUTH_TOKEN: un token de tu suscripción (Pro, Max, Ultra, Team o Enterprise). Genéralo en tu PC:
claude setup-token
  1. Copia los dos workflows de los pasos 3 y 4 en .github/workflows/.

Si usas el token OAuth, en ambos archivos cambia la línea anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} por claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}.

3. Revisión automática de cada PR

Guarda esto como .github/workflows/claude-code-review.yml. Usa el plugin oficial code-review (el mismo que instala la vía rápida) y añade control de coste: ignora cambios solo de documentación, salta los borradores, cancela la revisión anterior si llega un commit nuevo y limita turnos y minutos.

name: Claude Code Review

on:
  pull_request:
    types: [opened, synchronize, ready_for_review, reopened]
    paths-ignore:
      - "**/*.md"
      - "docs/**"

concurrency:
  group: claude-review-${{ github.event.pull_request.number }}
  cancel-in-progress: true

jobs:
  review:
    if: github.event.pull_request.draft == false
    runs-on: ubuntu-latest
    timeout-minutes: 15
    permissions:
      contents: read
      pull-requests: read
      issues: read
      id-token: write
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          plugin_marketplaces: "https://github.com/anthropics/claude-plugins-official.git"
          plugins: "code-review@claude-plugins-official"
          prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
          claude_args: |
            --max-turns 20
            --allowedTools "mcp__github_inline_comment__create_inline_comment"

Qué hace cada pieza:

4. Respuestas a @claude en comentarios

Guarda esto como .github/workflows/claude.yml:

name: Claude Code

on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]

concurrency:
  group: claude-${{ github.event.issue.number || github.event.pull_request.number }}
  cancel-in-progress: false

jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    timeout-minutes: 20
    permissions:
      contents: write
      pull-requests: write
      issues: write
      id-token: write
      actions: read
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          claude_args: "--max-turns 10"

Este workflow sí pide escritura (contents, pull-requests, issues) porque Claude puede hacer commits y abrir PR cuando se lo pides. Si solo quieres la revisión automática, no instales este archivo. actions: read le deja leer los resultados del CI del PR.

5. Sube los archivos

git add .github/workflows/claude-code-review.yml .github/workflows/claude.yml
git commit -m "ci: revisión de PR con Claude Code"
git push

Los workflows de pull_request se ejecutan con el archivo de la rama del PR; los de comentarios, con el de la rama por defecto. Fusiona primero en main para que @claude funcione en todo el repositorio.

Compruébalo

Antes de subir, valida la sintaxis en tu PC (si tienes Python con PyYAML):

python3 -c "import yaml,glob; [yaml.safe_load(open(f)) for f in glob.glob('.github/workflows/claude*.yml')]; print('YAML OK')"

Salida esperada: YAML OK.

En GitHub:

  1. Abre un PR que toque código (no solo .md). En la pestaña Actions aparece la ejecución Claude Code Review.
  2. Al terminar (unos minutos), en el PR verás comentarios en línea sobre cada problema que encontró, o un único comentario de resumen si no encontró ninguno. El autor es la Claude GitHub App.
  3. Escribe en un comentario del PR: @claude ¿qué riesgos tiene este cambio?. Se lanza Claude Code en Actions y aparece una respuesta en el mismo PR que se va actualizando mientras trabaja.
  4. Haz otro push al PR: la revisión anterior en curso se cancela y empieza una nueva.

Por qué funciona

La acción decide su modo según la configuración: sin prompt funciona en modo interactivo (espera la frase @claude y contesta en un comentario); con prompt funciona en modo automatización (se ejecuta con cada evento). Antes de empezar comprueba que quien dispara la ejecución tenga permiso de escritura en el repositorio y que no sea un bot, así nadie ajeno gasta tu saldo y se evitan bucles. Todo lo que pones en claude_args son argumentos normales de la CLI de Claude Code. Fuentes: Claude Code GitHub Actions, README de la acción y la lista completa de inputs.

Errores típicos

Preguntas frecuentes

¿Cuánto cuesta?

Pagas minutos de GitHub Actions y tokens de la API según el tamaño del PR. Si usas CLAUDE_CODE_OAUTH_TOKEN, el consumo va contra tu suscripción de Claude en lugar de la facturación de la API.

¿Clave de API o token OAuth?

Para un repositorio personal, el token de claude setup-token es cómodo. Para una organización con el secreto compartido, la documentación recomienda una clave de API, porque el token va ligado a la suscripción de quien lo generó.

¿Puede Claude fusionar mis PR?

No con estos workflows: la revisión solo tiene permisos de lectura y comenta a través de la app. El de @claude puede hacer commits si se lo pides; revisa siempre sus cambios antes de fusionar.

¿Cómo le digo qué revisar?

Pon tus normas (estilo, criterios de revisión, reglas del proyecto) en un CLAUDE.md en la raíz del repositorio; Claude lo lee en cada ejecución. Mantenlo corto: cuenta como tokens cada vez.

¿Y si no quiero mantener un workflow?

Anthropic ofrece Code Review, que revisa cada PR sin archivo de workflow.

Todas las recetas