GitHub: Ejemplo Avanzado¶
Configuración lista para producción con todas las mejores prácticas.
Paso 1: Añadir un Secreto¶
Settings → Secrets and variables → Actions → New repository secret
| Nombre | Valor |
|---|---|
AI_REVIEWER_GOOGLE_API_KEY |
Tu clave API de Gemini |
Paso 2: Crear el Archivo¶
.github/workflows/ai-review.yml:
name: AI Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
# Opcional: filtro de archivos
# paths:
# - '**.py'
# - '**.js'
# - '**.ts'
# Cancelar ejecución anterior con nuevo commit
concurrency:
group: ai-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
review:
name: AI Review
runs-on: ubuntu-latest
# No ejecutar para PRs de forks (secretos no disponibles)
if: github.event.pull_request.head.repo.full_name == github.repository
# No bloquear PR si la revisión falla
continue-on-error: true
# Protección de timeout
timeout-minutes: 10
permissions:
contents: read
pull-requests: write
steps:
- name: Run AI Code Review
uses: KonstZiv/ai-code-reviewer@v1
with:
google_api_key: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
language: uk
language_mode: adaptive
log_level: INFO
Qué Incluye¶
| Funcionalidad | Estado | Descripción |
|---|---|---|
| Comentarios en línea | Con Apply Suggestion | |
| Concurrencia | Cancela ejecuciones anteriores | |
| Filtro de forks | Omite PRs de forks | |
| Timeout | Máximo 10 minutos | |
| No bloqueante | PR no bloqueado | |
| Idioma personalizado | language: uk |
Variaciones¶
Con Filtro de Archivos¶
Con Filtro de Ramas¶
Con Modelo Personalizado¶
- uses: KonstZiv/ai-code-reviewer@v1
with:
google_api_key: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
gemini_model: gemini-1.5-pro # Modelo más potente
Con Logs DEBUG¶
- uses: KonstZiv/ai-code-reviewer@v1
with:
google_api_key: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
log_level: DEBUG
Opciones de Action¶
| Input | Descripción | Por defecto |
|---|---|---|
google_api_key |
Clave API de Gemini | requerido |
github_token |
Token de GitHub | ${{ github.token }} |
language |
Idioma de respuesta | en |
language_mode |
adaptive / fixed |
adaptive |
gemini_model |
Modelo Gemini | gemini-2.5-flash |
log_level |
Nivel de log | INFO |
Solución de Problemas¶
La Revisión No Aparece¶
- Revisa los logs del workflow
- Verifica que no sea un PR de fork
- Verifica
permissions: pull-requests: write
Rate Limit¶
La concurrencia cancela automáticamente ejecuciones anteriores, reduciendo la carga.