Fortaleciendo la seguridad en Breniapp: Adiós al despliegue automático
En el proyecto Breniapp, hemos tomado una decisión estratégica para elevar la calidad y la seguridad de nuestras entregas a producción. Recientemente, procedimos a eliminar el flujo de trabajo de automatización que permitía la aprobación y fusión automática de las solicitudes de extracción (PRs) de usuarios específicos.
El desafío: Automatización sin supervisión
Anteriormente, contábamos con un flujo en GitHub Actions diseñado para agilizar el ciclo de vida de los cambios. Sin embargo, esta automatización permitía que ciertas contribuciones omitieran por completo la revisión humana. Esto significaba que cualquier código nuevo se fusionaba e integraba directamente en la rama principal, disparando despliegues automáticos a producción sin pasar por un proceso de revisión de código (code review) estándar.
El cambio: Implementación de revisiones obligatorias
Para garantizar la estabilidad, hemos realizado dos ajustes críticos:
- Eliminación del workflow de auto-merge: Hemos retirado el archivo
.github/workflows/auto-approve-merge.ymlpara detener la aprobación automática mediante tokens de acceso personal. - Protección de ramas: Ahora, la rama
mainrequiere obligatoriamente al menos una revisión humana aprobatoria y la validación exitosa de los análisis estáticos (PHPStan).
Este cambio asegura que cada línea de código sea examinada por un miembro del equipo antes de llegar a los entornos de producción, manteniendo la integridad del proyecto y reduciendo significativamente el riesgo de despliegues inesperados.
# Ejemplo de configuración de protección de rama (lógica)
branch_protection:
require_pull_request_reviews:
required_approving_review_count: 1
require_status_checks:
checks:
- "Static analysis (PHPStan)"
Al priorizar la revisión humana, fortalecemos nuestra cultura de calidad y aseguramos que el equipo mantenga visibilidad sobre todos los cambios entrantes.