Instalación¶
La opción de instalación depende de tu caso de uso y objetivos.
1. CI/CD — Revisión Automatizada¶
El escenario más común: AI Code Reviewer se ejecuta automáticamente cuando se crea o actualiza un PR/MR.
Configura en 5 minutos:
Para ajuste fino, consulta Configuración →
2. Despliegue Autónomo: CLI/Docker¶
CLI y la imagen Docker permiten ejecutar AI Code Reviewer fuera del pipeline CI estándar.
Escenarios de uso¶
| Escenario | Cómo implementar |
|---|---|
| Ejecución manual | Terminal local — debugging, demo, evaluación |
| Scheduled review | GitLab Scheduled Pipeline / GitHub Actions schedule / cron |
| Batch review | Script que itera sobre PR/MR abiertos |
| Servidor propio | Docker en servidor con acceso a Git API |
| On-demand review | Webhook → ejecutar contenedor |
Variables de Entorno Requeridas¶
| Variable | Descripción | Cuándo se necesita | Cómo obtener |
|---|---|---|---|
AI_REVIEWER_GOOGLE_API_KEY |
Clave API de Gemini | Siempre | Google AI Studio |
AI_REVIEWER_GITHUB_TOKEN |
GitHub Personal Access Token | Para GitHub | Instrucciones |
AI_REVIEWER_GITLAB_TOKEN |
GitLab Personal Access Token | Para GitLab | Instrucciones |
Fallback
Los nombres antiguos sin prefijo (p. ej., GOOGLE_API_KEY) siguen funcionando como fallback.
Ejecución Manual¶
Para debugging, demo, evaluación antes del despliegue, análisis retrospectivo de PR/MR.
Docker (recomendado)¶
No requiere instalación de Python — todo está en el contenedor.
Paso 1: Descargar la imagen
Paso 2: Ejecutar la revisión
Imágenes Docker
Disponibles en dos registros:
ghcr.io/konstziv/ai-code-reviewer:1— GitHub Container Registrykoszivdocker/ai-reviewbot:1— DockerHub
pip / uv¶
Instalación como paquete Python.
Paso 1: Instalar
Versión de Python
Requiere Python 3.13+
Paso 2: Configurar variables
export AI_REVIEWER_GOOGLE_API_KEY=your_api_key
export AI_REVIEWER_GITHUB_TOKEN=your_token # o AI_REVIEWER_GITLAB_TOKEN para GitLab
Paso 3: Ejecutar
Variables Opcionales¶
Variables adicionales disponibles para ajuste fino:
| Variable | Por defecto | Efecto |
|---|---|---|
AI_REVIEWER_LANGUAGE |
en |
Idioma de respuesta (ISO 639) |
AI_REVIEWER_LANGUAGE_MODE |
adaptive |
Modo de detección de idioma |
AI_REVIEWER_GEMINI_MODEL |
gemini-2.5-flash |
Modelo Gemini |
AI_REVIEWER_LOG_LEVEL |
INFO |
Nivel de logging |
Scheduled reviews¶
Ejecución de revisiones programadas — para ahorrar recursos o cuando no se necesita feedback inmediato.
# .gitlab-ci.yml
ai-review-scheduled:
image: ghcr.io/konstziv/ai-code-reviewer:1
script:
- |
# Obtener lista de MR abiertos
MR_LIST=$(curl -s --header "PRIVATE-TOKEN: $AI_REVIEWER_GITLAB_TOKEN" \
"$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/merge_requests?state=opened" \
| jq -r '.[].iid')
# Ejecutar revisión para cada MR
for MR_IID in $MR_LIST; do
echo "Reviewing MR !$MR_IID"
ai-review --provider gitlab --repo $CI_PROJECT_PATH --pr $MR_IID || true
done
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
Configuración del horario: Project → Build → Pipeline schedules → New schedule
# .github/workflows/scheduled-review.yml
name: Scheduled AI Review
on:
schedule:
- cron: '0 9 * * *' # Diariamente a las 9:00 UTC
jobs:
review-open-prs:
runs-on: ubuntu-latest
steps:
- name: Get open PRs and review
env:
AI_REVIEWER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AI_REVIEWER_GOOGLE_API_KEY: ${{ secrets.AI_REVIEWER_GOOGLE_API_KEY }}
run: |
# Obtener lista de PR abiertos
PRS=$(gh pr list --repo ${{ github.repository }} --state open --json number -q '.[].number')
for PR in $PRS; do
echo "Reviewing PR #$PR"
docker run --rm \
-e AI_REVIEWER_GOOGLE_API_KEY -e AI_REVIEWER_GITHUB_TOKEN \
ghcr.io/konstziv/ai-code-reviewer:1 \
--repo ${{ github.repository }} --pr $PR || true
done
Servidor propio / entorno privado¶
Para despliegue en infraestructura propia con acceso a Git API.
Opciones:
- Docker en servidor — ejecución mediante cron, systemd timer, o como servicio
- Kubernetes — CronJob para scheduled reviews
- Self-hosted GitLab — añadir variable
GITLAB_URL(ver ejemplo abajo)
Ejemplo de cron job:
# /etc/cron.d/ai-review
# Diariamente a las 10:00 ejecutar revisión para todos los MR abiertos
0 10 * * * reviewer /usr/local/bin/review-all-mrs.sh
#!/bin/bash
# /usr/local/bin/review-all-mrs.sh
export AI_REVIEWER_GOOGLE_API_KEY="your_key"
export AI_REVIEWER_GITLAB_TOKEN="your_token"
MR_LIST=$(curl -s --header "PRIVATE-TOKEN: $AI_REVIEWER_GITLAB_TOKEN" \
"https://gitlab.company.com/api/v4/projects/123/merge_requests?state=opened" \
| jq -r '.[].iid')
for MR_IID in $MR_LIST; do
docker run --rm \
-e AI_REVIEWER_GOOGLE_API_KEY -e AI_REVIEWER_GITLAB_TOKEN \
ghcr.io/konstziv/ai-code-reviewer:1 \
--provider gitlab --repo group/repo --pr $MR_IID
done
Self-hosted GitLab
Para self-hosted GitLab añadir variable AI_REVIEWER_GITLAB_URL:
3. Contribuidores / Desarrollo¶
Si tienes el tiempo e inspiración para ayudar a desarrollar el paquete, o quieres usarlo como base para tu propio desarrollo — ¡sinceramente damos la bienvenida y alentamos tales acciones!
Instalación de Desarrollo¶
# Clonar el repositorio
git clone https://github.com/KonstZiv/ai-code-reviewer.git
cd ai-code-reviewer
# Instalar dependencias (usamos uv)
uv sync
# Verificar
uv run ai-review --help
# Ejecutar tests
uv run pytest
# Ejecutar verificaciones de calidad
uv run ruff check .
uv run mypy .
uv
Usamos uv para gestión de dependencias.
Instalar: curl -LsSf https://astral.sh/uv/install.sh | sh
Estructura del Proyecto¶
ai-code-reviewer/
├── src/ai_reviewer/ # Código fuente
│ ├── core/ # Modelos, config, formateo
│ ├── integrations/ # GitHub, GitLab, Gemini
│ └── utils/ # Utilidades
├── tests/ # Tests
├── docs/ # Documentación
└── examples/ # Ejemplos de configuración CI
Requisitos¶
Requisitos del Sistema¶
| Componente | Requisito |
|---|---|
| Python | 3.13+ (para instalación con pip) |
| Docker | 20.10+ (para Docker) |
| SO | Linux, macOS, Windows |
| RAM | 256MB+ |
| Red | Acceso a generativelanguage.googleapis.com |
Claves API¶
| Clave | Requerida | Cómo obtener |
|---|---|---|
| Google Gemini API | Sí | Google AI Studio |
| GitHub PAT | Para GitHub | Instrucciones |
| GitLab PAT | Para GitLab | Instrucciones |
Límites de API de Gemini¶
Nivel gratuito
Google Gemini tiene un nivel gratuito:
| Límite | Valor |
|---|---|
| Solicitudes por minuto | 15 RPM |
| Tokens por día | 1M |
| Solicitudes por día | 1500 |
Esto es suficiente para la mayoría de los proyectos.