Cargando

GitHub Actions y Code Review

Lección 76 min
Cargando

GitHub Actions y Code Review

El mejor lugar para delegar el trabajo repetitivo es el pull request. Es donde ocurre la revisión, donde aterrizan los cambios y donde vive gran parte de tu trabajo tedioso. Hay dos formas de poner a Claude a trabajar aquí, y resuelven problemas diferentes. Una es un servicio administrado que activas. La otra es una GitHub Action que configuras tú mismo. Repasemos ambas y averigüemos cuándo recurrir a cada una.

La ruta administrada: Code Review

La opción más simple es Code Review. Es un servicio alojado por Anthropic que revisa tus pull requests a través de la app de Claude para GitHub. No hay nada que tengas que construir o alojar. Lo activas, y comienza a publicar hallazgos como comentarios en línea justo en las líneas que importan.

Un Owner de tu organización de Claude lo habilita desde la configuración de administración de Claude Code. Encontrarás una sección Code review con un interruptor Allow code review que inicia la configuración.

A partir de ahí, el Owner instala la app de Claude para GitHub, elige qué repositorios vigila y decide cuándo se ejecuta. Si el Owner no es también propietario de la organización de GitHub, alguien debe instalar y vincular la app primero. Tienes algunas opciones de temporización:

  • Una vez cuando se abre un PR
  • En cada push al PR
  • Solo cuando alguien comenta @claude review

Una vez activado, todo se ejecuta en la infraestructura de Anthropic. Un conjunto de agentes de revisión analiza el diff contra todo tu código base, no solo las líneas modificadas de forma aislada. Luego publica hallazgos como comentarios en línea en las líneas específicas, etiquetados por severidad, con una tabla resumen en el check run.

Así es como se ve uno de esos hallazgos. Llega como un comentario de Claude, justo en la línea, con una explicación clara y una corrección sugerida.

Lo bueno es que deduplica y clasifica los hallazgos. Así que en lugar de un muro de detalles menores, lees un puñado de problemas reales que merecen tu atención.

Lo que Code Review hará y no hará

Un par de cosas a tener en cuenta sobre los límites aquí:

  • Nunca aprueba ni bloquea el PR. La decisión final queda en manos de una persona. Claude señala cosas; tú decides.
  • No hace push de correcciones. El servicio solo publica hallazgos.
  • Está disponible en los planes Team y Enterprise.

Dado que el servicio solo publica hallazgos, actuar sobre uno es tu movimiento: corrige el código y haz push. Para verificar tu corrección antes de hacer push, ejecuta /code-review desde tu propia terminal. Ejecuta su propia revisión de tu diff, y su flag --fix aplica los hallazgos de esa revisión a tu árbol de trabajo.

La ruta de hazlo tú mismo: la GitHub Action

Code Review se encarga de la revisión. Cuando la tarea va más allá de la revisión, recurres a la GitHub Action. Esto es para CI personalizado: implementar cambios a partir de un comentario, ejecutar informes programados, cualquier cosa para la que normalmente escribirías un workflow. Ejecuta el agente en comentarios de PR, trabajos programados y cualquier evento de GitHub.

La configuración comienza dentro de Claude Code. Ejecuta el comando /install-github-app. Necesitarás permisos de administrador del repositorio para hacer esto. El comando de barra te guía a través de la instalación de la app de GitHub y la configuración del secreto de la clave de API de Anthropic en el repositorio.

La acción en sí es anthropics/claude-code-action@v1. Estas son las entradas que realmente usarás:

  • anthropic_api_key — requerido cuando la ejecución llama a la Claude API, a menos que te autentiques con claude_code_oauth_token (de una suscripción de Claude) o con workload identity federation (configurado a través de una cuenta de servicio de Claude Console, por lo que no hay secreto almacenado). No se usa con los proveedores de nube que se mencionan a continuación.
  • github_token — opcional. Omítelo y la acción se autenticará como la app de Claude para GitHub que instalaste durante la configuración. Pasa un token solo para anular eso.
  • trigger_phrase — lo que la acción escucha en los comentarios. Por defecto es @claude.
  • use_bedrock / use_vertex / use_foundry — enruta la ejecución a través de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry en lugar de la Claude API, iniciando sesión con tu cuenta de nube en lugar de una clave de API.
  • prompt — la instrucción para una ejecución automatizada. Configúralo y Claude se ejecutará en el evento sin esperar una mención. Omítelo y la acción esperará la frase de activación.
  • claude_args — una cadena de argumentos de CLI que se pasa directamente a Claude Code.

Un workflow que responde a @claude

Coloca un workflow en .github/workflows/claude.yaml y escuchará @claude en comentarios de PR y comentarios de issues. Bajo los permissions del job, otorga id-token: write para que la acción pueda iniciar sesión como la app de Claude para GitHub. El paso principal se ve así:

yaml
- uses: anthropics/claude-code-action@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    trigger_phrase: "@claude"
    claude_args: "--max-turns 5 --model claude-sonnet-5"

Ahora alguien escribe @claude implement the spec in the linked Linear issue en un pull request, y la acción lo detecta. Claude hace push de commits y publica comentarios describiendo lo que hizo.

Un workflow que se ejecuta según un horario

La misma acción funciona para un resumen diario. Un trigger de cron se dispara, digamos, a las 9:00 UTC, la acción ejecuta tu prompt, y lees el resumen en el log de esa ejecución. Una ejecución programada no publica un comentario por sí sola. También puedes agregar un trigger workflow_dispatch para poder iniciarla manualmente desde la pestaña Actions.

Cuando la acción se ejecuta, puedes verla trabajar a través de los pasos en la pestaña Actions, igual que cualquier otro workflow de GitHub.

Ajustando la ejecución con claude_args

La línea claude_args es donde ocurre el ajuste fino. Algunos controles que vale la pena conocer:

  • --max-turns 5 pone un límite estricto al bucle del agente, para que no pueda ejecutarse indefinidamente.
  • Modo de permisos. Para un trabajo desatendido, querrás que no se detenga a preguntar, ya que no hay nadie ahí para responder.
  • Herramientas permitidas. Dale al trabajo exactamente lo que necesita y nada más. Para un informe, eso significa solo lectura.

¿Cuál deberías usar?

Aquí está la versión corta:

  • Para revisiones de PR, toma la ruta administrada. Habilita Code Review, deja que la app de GitHub publique hallazgos en línea, luego corrige el código y haz push.
  • Recurre a la acción cuando el trabajo es más que una revisión. Usa /install-github-app para la configuración, un workflow para las menciones de @claude, uno para cron, y todo el ajuste fino vive en claude_args.

Comienza con el servicio administrado. Pasa a la acción en el momento en que necesites que Claude realmente haga algo en CI, no solo que comente sobre ello.