Estoy usando Gitlab en un servidor y me gustaría enviar mi repositorio git al confirmar la rama maestra a otro servidor web. Entonces, cuando lanzo una nueva versión del sitio web, el servidor de producción se actualiza. Sé que esto debería ser posible con ganchos dentro de gitlab, pero no puedo encontrar exactamente cómo. Intenté la siguiente guía http://danielmiessler.com/study/git/#website pero no está escrita para usarse con gitlab, así que me faltan partes.
¿Qué debo hacer en el servidor web de producción y en qué debo configurar la URL de enlace?
Respuestas:
gitlab ya usa el gancho posterior a la recepción internamente. podría jugar con ese script y llamar a su gancho también, pero desde los documentos parece que la forma "oficial" sería usar "web-hooks", es decir, deje que gitlab llame a su servidor web en la recepción posterior y luego a su servidor web tira del repositorio. No lo he intentado yo mismo, pero como nadie respondió hasta ahora, pensé en señalarle en esa dirección:
para habilitar los enlaces web, vaya a la página principal de su proyecto y seleccione enlaces desde la parte superior derecha, debajo del menú principal. ( http://yourgitlab.example.net/yourproject/hooks ). hay un ejemplo y documentos vinculados desde esa página ( http://yourgitlab.example.net/help/web_hooks ).
editar://
Lo intenté esta mañana. Aquí hay un ejemplo de script php. Se supone que ya ha clonado el repositorio y el servidor web tiene todos los permisos necesarios / claves ssh configuradas.
fuente
Recientemente se agregaron ganchos personalizados (ya que, como Gryphius dijo que los ganchos regulares se usan internamente): https://github.com/gitlabhq/gitlabhq/blob/667c0a909bde1cf71f21d8ec9768e98b1c489030/doc/hooks/custom_hooks.md
Simplemente crea un
custom_hooks
directorio en tu repositorio Git desnudo, y coloca los ganchos en él, y luego GitLab se asegura de que se ejecuten.fuente
Gitlab no tiene un gancho posterior a la recepción ya que los desarrolladores reemplazaron gitolite con gitlab-shell .
Por lo tanto puedes:
Asegúrese de que el usuario git tenga todos los permisos necesarios para ejecutar los comandos en este archivo
fuente
hook
carpeta ya existe:hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks/