Quiero que Jenkins (1.561) cree solicitudes de fusión (extracción) enviadas a GitLab (6.7.5), desencadenadas por un enlace web de solicitud de fusión. Tengo una compilación parametrizada, y los complementos de Jenkins "GitLab Merge Request Builder" (1.2.0) y "GitLab Hook" (1.0.0). Lamentablemente, migrar a Jenkins CI no es una opción real.
La Solicitud de combinación constructor de complementos es capaz de solicitudes de construcción de combinación, siempre y cuando las variables gitlabMergeRequestId
, gitlabTargetBranch
y gitlabSourceBranch
están disponibles. Esto funciona bien cuando el plugin sondea el repositorio en sí, o desencado la compilación con una carga útil manual (por ejemplo curl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters
), pero no puedo hacer esto con un gancho.
Usando el complemento GitLab Hook, puedo obtener los datos necesarios en la carga útil JSON, pero los valores tienen claves "incorrectas":
gitlabMergeRequestId
esid
gitlabTargetBranch
estarget_branch
gitlabSourceBranch
essource_branch
He intentado configurar los parámetros de compilación con los requisitos del complemento GitLab Merge Request Builder as Name
y los valores variables como Default Value
. Desafortunadamente (y probablemente intencionalmente), las variables en los Default Value
campos no se reemplazan, por lo que Jenkins está buscando una solicitud de fusión con la identificación ${id}
y valores de ramificación similares.
No he encontrado ninguna forma de configurar la carga útil enviada desde GitLab, y no hay opciones de configuración ni para el complemento GitLab Hook ni para los nombres de parámetros utilizados por el complemento GitLab Merge Request Builder.
Estoy considerando escribir un pequeño script PHP para interceptar y alterar la carga de la POST antes de pasarlo a Jenkins. Si bien estoy seguro de que esto funcionará, definitivamente parece innecesariamente complicado.
La única otra opción real que puedo ver es alterar la fuente de los complementos, pero esto hace que actualizarlos sea una PITA.
¿He pasado por alto algo obvio, o realmente no hay una forma más simple de activar las compilaciones de solicitud de fusión con un enlace web de GitLab a Jenkins?
fuente