PR Insights Action
“Una GitHub Action Que Lee Tus Pull Requests”
Revisar un pull request grande a menudo significa desplazarse por el diff para entender su alcance. Cuantos archivos cambiaron? Que archivos se anadieron frente a los modificados? Cuantos commits hay en esta rama? Esta action responde a esas preguntas automaticamente y las publica como comentario en el PR.
Que hace
Cuando se abre o actualiza un pull request, la action obtiene datos del PR desde la API de GitHub y genera:
- Estadisticas del PR: adiciones, eliminaciones, total de archivos modificados, numero de commits
- Desglose de archivos: cada archivo modificado con un indicador de estado (anadido, modificado, eliminado, renombrado), tamano del archivo y recuento de cambios
- Resumen de commits: lista de commits con autores, mensajes y marcas de tiempo
- Un comentario en el PR: el informe completo publicado como comentario Markdown visible para todo el equipo
Decisiones de diseno
JavaScript vanilla, sin TypeScript. La action es un unico archivo compilado con ncc en un paquete distribuible. Anadir TypeScript para un proyecto tan pequeno anadiria complejidad de compilacion sin beneficio proporcional.
Sin dependencias de API externas. La action utiliza solo el GITHUB_TOKEN integrado y la API REST de GitHub. Sin servicios de terceros, sin claves API que gestionar, sin limites de velocidad mas alla de los propios de GitHub.
Comentarios en lugar de solo salida JSON. La action produce tanto JSON estructurado (para consumo programatico) como un comentario Markdown publicado directamente en el PR (para revisores humanos). El comentario es el artefacto mas visible. Aparece en la linea de tiempo del PR donde todos ya miran.
Nivel de detalle configurable. Los inputs show-files y show-commits permiten a los equipos decidir cuan detallado debe ser el informe. Un equipo pequeno de revision de PRs podria querer desgloses completos de archivos. Un equipo grande con muchos PRs pequenos podria querer solo las estadisticas resumidas.
Uso
name: PR Insights
on:
pull_request:
types: [opened, synchronize]
permissions:
pull-requests: write
jobs:
insights:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: adurrr/pr-insights-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
Publicado en el GitHub Marketplace en v1.0.0. Dos estrellas y sumando.