Acerca de ganchos de pre-recepción
Cuando se produce una subida, cada script se ejecuta en un entorno aislado y puede realizar verificaciones en el contenido que se subió. Los scripts provocarán la aceptación de la subida si el estado de salida es 0, o rechazado si el estado de salida no es cero.
Usa los ganchos de pre-recepción para satisfacer las reglas comerciales, implementar el cumplimiento regulatorio y prevenir determinados errores comunes.
Ejemplos de cómo usar los ganchos de pre-recepción:
- Requerir mensajes de confirmación para seguir un patrón o formato específico, como incluir un número de ticket válido o finalizar luego de una determinada duración.
- Buscar una rama o repositorio al rechazar todas las subidas.
- Impedir que los datos sensibles se agreguen al repositorio al bloquear las palabras clave, patrones o tipos de archivo.
- Impedir que un autor PR se fusione con sus propios cambios.
Puede ver ejemplos de enlaces de recepción previa para GitHub Enterprise Server en el repositorio github/platform-samples
.
Impactar en el rendimiento y los flujos de trabajo flujo de trabajo
El impacto que causa en los programadores y sus flujos de trabajo puede ser significativo y debe considerarse cuidadosamente. Los ganchos de pre-recepción que se basan en necesidades comerciales y se implementan cuidadosamente brindarán la mayor cantidad de beneficios a la organización en conjunto.
Los enlaces de recepción previa pueden tener efectos imprevistos en el rendimiento de tu instancia de GitHub Enterprise Server y se deben implementar y revisar con atención.
Debido al riesgo de error e impacto en el rendimiento de todos los usuarios de la instancia, se recomienda lo siguiente.
- Evita las solicitudes de API dentro de un gancho de pre-recepción. En concreto, se desaconseja encarecidamente realizar solicitudes a servicios externos, que pueden tardar más tiempo y pueden afectar al rendimiento.
- Evita las operaciones de Git de larga duración dentro de un gancho de pre-recepción. Si el gancho de pre-recepción realiza operaciones de Git dentro de repositorios grandes o muy activos, el rendimiento general de la instancia puede verse afectado negativamente.
Nota: Para evitar el rechazo de una inserción debido a un tiempo de expiración, todos los ganchos de pre-recepción combinados deben ejecutarse en menos de cinco segundos.