GitHub App serverless que auto-aprueba pull requests después de que CI pasa, con revisión de código opcional vía Amazon Bedrock. Cuatro repositorios: app Node.js/Probot, módulo Terraform AWS (Lambda + API Gateway + Secrets Manager), módulo Terraform GitHub (webhooks) e infra de despliegue.
Una GitHub App serverless que auto-aprueba pull requests cuando todos los checks de CI pasan. Opcionalmente, antes de aprobar, envía el diff a Amazon Bedrock para una revisión de código con IA que detecta bugs, vulnerabilidades de seguridad y problemas de rendimiento.
El proyecto se divide en cuatro repositorios con responsabilidades claras:
| Repositorio | Versión | Rol |
|---|---|---|
| pr-auto-approver | v1.0.0 | App Node.js/Probot — lógica de negocio |
| terraform-aws-pr-auto-approver | v1.2.0 | Módulo Terraform AWS — Lambda, API Gateway, Secrets Manager |
| terraform-github-pr-auto-approver | v1.0.0 | Módulo Terraform GitHub — webhooks por repositorio |
| pr-auto-approver-infra | latest | Despliegue privado — consume los módulos, branch protegido |

El screenshot muestra el flujo completo en el repositorio de prueba: el owner comenta sobre la integración con Secrets Manager, el bot aprueba automáticamente con «All checks passed. Auto-approved by pr-auto-approver bot.», y el PR se mergea — todo en menos de un minuto.
El flujo completo desde que se abre un PR hasta la aprobación:
La gestión de secretos sigue el principio de mínimo privilegio:
secretsmanager:GetSecretValue solo para los ARNs específicosbedrock:InvokeModel) se agregan solo cuando bedrock_enabled = trueEl módulo terraform-aws-pr-auto-approver v1.2.0 crea:
| Recurso | Configuración |
|---|---|
| Lambda | Node.js 20, 128 MB / 30s (sin Bedrock), 256 MB / 120s (con Bedrock) |
| API Gateway v2 | HTTP API con ruta POST |
| Secrets Manager | 2 secretos (private key + webhook secret) |
| IAM Role | Least-privilege, Bedrock condicional |
| CloudWatch Logs | 14 días de retención |
| CloudWatch Dashboard | Métricas Lambda, API GW, Bedrock (opcional) |
| CloudWatch Alarms | Errores, throttles, duración alta, 5xx |
| SNS Topic | Alertas por email (opcional) |
| AWS Budget | Presupuesto mensual Bedrock (opcional) |
El módulo terraform-github-pr-auto-approver v1.0.0 configura webhooks en cada repositorio especificado:
module "approver_github" {
source = "jonmatum/pr-auto-approver/github"
version = "~> 1.0"
webhook_url = module.approver_infra.webhook_url
webhook_secret = var.webhook_secret
github_repositories = ["repo-one", "repo-two"]
}Suscribe cada repositorio a los eventos pull_request y check_suite, apuntando al endpoint de API Gateway.

Cuando bedrock_enabled = true, Lambda envía el diff del PR a Claude 3 Haiku (configurable) antes de aprobar. En el screenshot, el bot detectó 3 problemas en código intencionalmente vulnerable — incluyendo una inyección SQL por concatenación directa de req.query.id — y solicitó cambios en lugar de aprobar. El modelo revisa:
Si Bedrock está deshabilitado o falla, el bot hace fallback a auto-aprobación después de que CI pasa — la revisión de IA nunca bloquea el flujo.
En equipos con agentes de IA que generan PRs automáticamente — como el content agent de esta base de conocimiento — el cuello de botella se mueve de «escribir código» a «revisar y aprobar PRs». Este bot elimina la espera manual para PRs de autores confiables que ya pasaron CI, mientras que la capa opcional de Bedrock agrega una red de seguridad de revisión de código sin intervención humana.
Plataforma de CI/CD nativa de GitHub. Workflows declarativos en YAML que automatizan build, test, deploy y cualquier tarea del ciclo de desarrollo — directamente desde el repositorio.
Herramienta de Infrastructure as Code de HashiCorp que permite definir, provisionar y gestionar infraestructura multi-cloud mediante archivos declarativos en HCL.
Servicio de cómputo serverless de AWS que ejecuta código en respuesta a eventos sin necesidad de aprovisionar ni administrar servidores, escalando automáticamente desde cero hasta miles de ejecuciones concurrentes.
Servicio managed de AWS para crear, publicar y gestionar APIs REST, HTTP y WebSocket que actúan como puerta de entrada a funciones Lambda y otros servicios backend.
Prácticas y herramientas para almacenar, distribuir y rotar credenciales, API keys y otros datos sensibles de forma segura en aplicaciones y pipelines.
Modelo de computación en la nube donde el proveedor gestiona la infraestructura automáticamente, permitiendo ejecutar código sin aprovisionar ni administrar servidores, pagando solo por el uso real.
Práctica de definir y gestionar infraestructura mediante archivos de configuración versionados en lugar de procesos manuales. Fundamento de la automatización moderna de operaciones.
Continuous Integration y Continuous Delivery/Deployment — prácticas que automatizan la integración de código, testing y entrega a producción. Fundamento de la ingeniería de software moderna.