Las GitHub Actions de Claude Code pueden responder a @claude en un problema o Pull Request, o ejecutar automáticamente /review cuando se abre o actualiza un PR. Es adecuado para complementar la revisión humana, pero los ejemplos predeterminados no son directamente equivalentes a las configuraciones de seguridad de producción.
Lo que realmente hay que diseñar son las condiciones de activación, los permisos de GitHub Token, las credenciales del modelo, las herramientas permitidas, las fuentes de palabras, las PR de Fork y los límites de tarifas. Cuando la configuración es demasiado amplia, un comentario común puede desencadenar tareas costosas; cuando se utilizan eventos de error, el código que no es de confianza puede incluso contactar con el secreto del repositorio.
Este artículo utiliza la interfaz oficial anthropics/claude-code-action@v1 de Anthropic para crear primero activadores bajo demanda y luego agregar una revisión automática. Los ID de modelo en los ejemplos no están codificados para evitar que queden obsoletos rápidamente después del lanzamiento; están determinados por los modelos disponibles en la cuenta y la documentación oficial vigente.
No confunda los dos flujos de trabajo
El modo interactivo se activa con @claude en la revisión, adecuado para:
- Explicación de un determinado cambio;
- Corregir el código según los comentarios de la revisión;
- De Issue Crear implementación;
- Consumir créditos de modelo solo cuando sea necesario manualmente.
El modo automático se activa con el evento pull_request y es adecuado para:
- Comprobación básica de cada nuevo PR;
- Revisión después de un nuevo envío;
- Aplicar reglas unificadas para directorios clave;
- En la revisión manual se descubrieron problemas obvios anteriormente. Los equipos pequeños recomiendan habilitar primero el modo interactivo y recopilar datos de uso antes de decidir si ejecutarlo automáticamente para cada PR.
Prepare los permisos de GitHub y Anthropic
Necesitará:
- Un administrador del repositorio con permiso para instalar la aplicación GitHub;
- Clave API de Anthropic o una configuración Bedrock/Vertex compatible;
- Permiso para crear archivos de flujo de trabajo y secreto de acciones;
- Un repositorio de prueba o una rama de prueba para verificación. No experimentes con las primeras PR reales en producción. El repositorio de pruebas debe contener varias categorías de defectos conocidos y varios fragmentos de código seguro para observar tanto falsos negativos como falsos positivos.
Se recomienda oficialmente ejecutar el proceso de instalación de la aplicación GitHub en Claude Code; Si la instalación automática falla, también puede instalar manualmente la aplicación Claude GitHub, crear un secreto y luego agregar un flujo de trabajo.
Crear secreto ANTHROPIC_API_KEY
Ingresar en el repositorio de GitHub:
|
|
Uso del nombre secreto:
|
|
Pegue el valor solo una vez, no lo guarde en el flujo de trabajo, CLAUDE.md, Issue o archivos de muestra locales.
Los almacenes organizativos pueden utilizar el secreto de organización, pero los almacenes accesibles deben estar restringidos en lugar de estar abiertos a todos los almacenes de forma predeterminada.
Gire las teclas con regularidad y observe un uso anormal en la consola Anthropic. Eliminar el flujo de trabajo no revocará automáticamente la clave comprometida.
Implemente primero el modo @claude bajo demanda
Crear .github/workflows/claude.yml:
|
|
Este ejemplo utiliza intencionalmente contents: read. Si desea que Claude envíe código directamente o cree una rama, debe aumentar los permisos de escritura, pero debe hacerlo después de confirmar que el proceso de solo lectura es seguro.
Después de enviar el flujo de trabajo, ingrese el problema de prueba:
|
|
Verifique el registro de acciones, la cuenta de respuesta, la duración y el costo del modelo.
Flujo de trabajo de revisión automática de PR
Crear otro .github/workflows/claude-review.yml:
|
|
synchronize se activará cuando las PR impulsen una nueva confirmación. cancel-in-progress: true Puede cancelar revisiones antiguas del mismo PR para evitar cargos repetidos y revisiones obsoletas debido al envío continuo.
timeout-minutes es el límite superior del trabajo de GitHub y --max-turns es el límite de ronda de ejecución de Claude. Ambos deben estar configurados.
Por qué no se debe conceder contents: write de forma predeterminada
La revisión del código solo necesita leer el contenido y escribir el comentario de PR. Abrir contents: write le dará a Action la capacidad de modificar el contenido del repositorio, más allá de las necesidades de una simple revisión.
Los permisos deben dividirse por tarea:
| Tarea | Permisos recomendados |
|---|---|
| Leer código | contents: read |
| Comentar PR | pull-requests: write |
| Responder problema | issues: write |
| Crear Enviar | |
| acceder a otros almacenes | no está otorgado por defecto |
| El permiso de token predeterminado del repositorio también debe establecerse en solo lectura y los flujos de trabajo individuales deben actualizarse explícitamente. |
Si usa una aplicación GitHub personalizada, verifique los permisos de Contenido, Problemas y Solicitudes de extracción de la aplicación, y no verifique los permisos de Administración, Secretos o Gestión de la organización.
Fork PR es el pozo de seguridad más fácil de pisar
El flujo de trabajo pull_request de una bifurcación externa generalmente no puede obtener el secreto del repositorio. Esta es una limitación utilizada por GitHub para proteger las credenciales.
No lo cambie simplemente a:
|
|
pull_request_target se ejecuta en el contexto del repositorio de destino y tiene acceso al secreto para que los RP externos se revisen automáticamente. Si posteriormente se verifica la confirmación de Fork y se ejecuta el código que contiene, el atacante podría robar el token y la clave API.
Las opciones de seguridad incluyen:
- La bifurcación externa solo realiza comprobaciones estáticas que no requieren secreto;
- Se activa mediante comandos controlados después de la confirmación del mantenedor;
- No ejecuta scripts, crea pasos ni acciones personalizadas en PR;
- Convierta la revisión de IA en un entorno de aprobación humana aislado y con pocos privilegios;
- Utilice diferentes flujos de trabajo para miembros internos y contribuyentes externos. Cualquier RP que modifique el flujo de trabajo en sí debe realizarse con especial precaución.
Utilice CLAUDE.md para definir reglas de repositorio
Cree CLAUDE.md en el directorio raíz del repositorio y escriba requisitos breves y verificables:
|
|
Las reglas deben basarse en el modo de falla real del repositorio. No copie cientos de líneas de una guía de estilo común; de lo contrario, la atención del modelo se diluirá y los tokens aumentarán. A los problemas de estilo del código se les da prioridad a ESLint, Ruff, golangci-lint, Checkstyle o herramientas de formato, y Claude se enfoca en manejar problemas relacionados con el contexto.
Mensajes de revisión personalizados
Si /review es demasiado ancho, puede usar prompt:
|
|
No le pida que “debe encontrar cinco problemas”. Esta métrica puede inducir al modelo a producir revisiones de baja calidad. No combine directamente títulos o comentarios de PR en comandos del sistema. El texto enviado por el usuario no es una entrada de confianza.
Restringir herramientas y rondas
Acción oficial claude_args puede pasar parámetros CLI como --max-turns, --model, --mcp-config y permitir herramientas.
Las tareas de revisión normalmente no requieren escribir archivos, realizar implementaciones ni acceder a sistemas externos. Sólo están abiertas las capacidades necesarias para la lectura y la búsqueda. Escritura esquemática:
|
|
Permitir que los nombres de las herramientas y la sintaxis puedan cambiar con la versión de Claude Code. Consulte el documento oficial actual antes de enviarlo. MCP Server ampliará el alcance de los datos accesibles. No conecte la base de datos de producción, el sistema de órdenes de trabajo o el MCP de gestión en la nube a la revisión de PR ordinaria.
El filtrado de rutas reduce las ejecuciones no válidas
Es posible que no valga la pena realizar una revisión costosa mediante cambios puros en documentos o archivos de bloqueo de dependencia. Las rutas se pueden limitar a nivel de evento:
|
|
Pero la exclusión de rutas no puede ser excesiva. La configuración de la certificación, el código de infraestructura y los propios flujos de trabajo de CI también pueden ser críticos. Monorepo grande puede utilizar diferentes flujos de trabajo y reglas para el front-end, el back-end y la infraestructura para evitar comprimir todo el contexto del repositorio en una sola revisión.
Evitar la duplicación y la caducidad de comentarios
Cuando el mismo PR se envía continuamente, es posible que la revisión anterior no se complete. Usar un grupo simultáneo para cancelar trabajos antiguos es solo el primer paso. También solicite en el mensaje comentar solo sobre el Head SHA actual y verifique su confirmación correspondiente antes de procesar manualmente el comentario. Si la Acción admite la actualización de resúmenes existentes en lugar de agregar comentarios continuamente, utilice primero el método de recomendación oficial. De lo contrario, puedes poner los resultados detallados en una sola Revisión para evitar generar ruido independiente para cada pregunta. No marque automáticamente los comentarios caducados como resueltos a menos que se confirme que el código relevante realmente ha cambiado.
Cómo evaluar la calidad de la revisión
Prepare al menos 10 RP pequeños, que abarquen:
- Cambios funcionales normales;
- Valores nulos o errores de límites;
- Verificaciones de permisos faltantes;
- Inyecciones SQL o XSS;
- Fugas de recursos;
- Carreras de simultaneidad;
- Pruebas faltantes;
- Solo cambios de formato;
- Cambios de código de generación;
- Código seguro pero de aspecto sospechoso. Cada comentario está marcado como: Problema confirmado, Posible problema, Falso positivo, No verificable. Calcula los dos indicadores más prácticos:
|
|
Registra también los falsos negativos. Pocas reseñas no equivalen a alta calidad, puede que simplemente se trate de un retiro bajo.
El control de costos debe registrarse a nivel de PR
Estadísticas semanales:
- Número de activadores automáticos;
- Tareas recurrentes canceladas;
- Tiempo promedio de ejecución;
- Token o costo promedio;
- Costo por emisión válida;
- Número de ejecuciones sin valor de código. El orden de reducción de costos suele ser:
- Reducir los desencadenantes irrelevantes;
- Reducir el alcance del archivo;
- Cancelar tareas obsoletas;
- Limitar rondas;
- Ajustar el modelo;
- Optimizar la longitud de la regla.
Solo cambiando a un modelo más económico pero continuando revisando toda la base de datos para cada documento Push, los ahorros son limitados.
Antes de convertir Claude Review en un requisito de fusión
Los revisores humanos pueden consultar todas las revisiones de IA, pero no están obligados a resolverlas. El control de puerta solo se considerará si se cumplen las siguientes condiciones:
- Los resultados son estables en múltiples ejecuciones;
- La tasa de falsos positivos es aceptable;
- Los comentarios pueden corresponder al envío actual;
- Existe un método de degradación claro para el flujo de trabajo falla;
- Las fallas de API no bloquean permanentemente las correcciones de emergencia;
- Los equipos saben cómo apelar revisiones de errores;
- Las tarifas y retrasos están presupuestados. Incluso si están cerradas, las pruebas deterministas, el análisis estático y las aprobaciones humanas deben permanecer separadas.
Error común
La acción no responde @claude
Compruebe si el evento del flujo de trabajo contiene el tipo de comentario actual, si la aplicación GitHub está instalada en este repositorio, si la condición if del trabajo coincide y si las acciones están deshabilitadas por la política organizacional.
ANTHROPIC_API_KEY está vacío
Confirma que el nombre del secreto es exactamente el mismo. Fork PR no puede obtener el secreto. Este suele ser el comportamiento esperado. No imprima la confirmación de la variable en el registro.
Devuelve 403 o no puede comentar en PR
Compruebe si permissions contiene pull-requests: write, si la organización restringe la aplicación GitHub y si el flujo de trabajo se activa mediante un contexto de solo lectura.
Cada vez que presionas aparecen varios conjuntos de comentarios duplicados
Agregue el grupo simultáneo del número PR y cancel-in-progress: true para confirmar que no se estén ejecutando dos flujos de trabajo similares al mismo tiempo.
La revisión solo habla sobre problemas de formato
En CLAUDE.md y el mensaje, está claro que el formato lo maneja Linter y que se requieren un comportamiento reproducible y rutas de riesgo.
Tiempo de ejecución alcanzado el límite
Verifique el tamaño del PR, las herramientas permitidas, el número de rondas y las llamadas de MCP. Los RP muy grandes deben dividirse; no cambie simplemente el tiempo de espera a una hora.
Una secuencia de activación segura
Solo los miembros internos pueden usar @claude en la primera semana, con permisos de solo lectura y registros de gastos y falsos positivos.
En la segunda semana, se habilita el /review automático para los directorios de código fuente clave y las tareas antiguas se cancelan automáticamente mediante Push continuo.
La tercera semana se basa en la optimización de datos CLAUDE.md, distinguiendo reglas de seguridad, back-end y front-end.
Decida más tarde si permitirá que Claude cree confirmaciones de corrección y si convertirá algunos de los resultados en solicitudes de fusión.
El valor de Claude Code Review no radica en la cantidad de comentarios, sino en complementar cuestiones contextuales que los humanos fácilmente pasan por alto a un costo controlable. Los privilegios mínimos, las reglas reproducibles y las estadísticas reales de falsos positivos son más importantes que un flujo de trabajo aparentemente complejo.