Acionando a compilação Jenkins para solicitação de mesclagem do gancho da web do GitLab

10

Quero que o Jenkins (1.561) construa solicitações de mesclagem (pull) enviadas ao GitLab (6.7.5), acionadas por um gancho da Web de solicitação de mesclagem. Eu tenho uma construção parametrizada e os plugins Jenkins "GitLab Merge Request Builder" (1.2.0) e "GitLab Hook" (1.0.0). Migrar para o Jenkins CI, infelizmente, não é uma opção real.

Mesclar Pedido Builder plug-in é capaz de pedidos de construção de mesclagem, enquanto as variáveis gitlabMergeRequestId, gitlabTargetBranche gitlabSourceBranchestão disponíveis. Isso funciona bem quando o plug-in consulta o próprio repositório, ou eu aciono a compilação com uma carga manual (por exemplo curl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters), mas não posso fazer isso com um gancho.

Usando o plug-in GitLab Hook, sou capaz de obter os dados necessários na carga JSON, mas os valores têm chaves "erradas":

  • gitlabMergeRequestId é id
  • gitlabTargetBranch é target_branch
  • gitlabSourceBranch é source_branch

Tentei configurar os parâmetros de compilação com os requisitos do plug-in GitLab Merge Request Builder Namee os valores variáveis ​​como Default Value. Infelizmente (e provavelmente intencionalmente), as variáveis ​​nos Default Valuecampos não são substituídas; portanto, Jenkins está procurando uma solicitação de mesclagem com o ID ${id}e valores de ramificação semelhantes.

Não encontrei nenhuma maneira de configurar a carga útil enviada pelo GitLab e não há opções de configuração nem para o plug-in GitLab Hook nem para os nomes de parâmetros usados ​​pelo plug-in GitLab Merge Request Builder.

Estou pensando em escrever um pequeno script PHP para interceptar e alterar a carga do POST antes de passá-lo para Jenkins. Embora eu esteja certo de que isso funcionará, definitivamente parece desnecessariamente complicado.

A única outra opção real que posso ver é alterar a fonte dos plugins, mas isso faz da atualização deles uma PITA.

Eu negligenciei algo óbvio ou não existe realmente uma maneira mais simples de acionar compilações de Merge Request com um gancho da Web do GitLab para Jenkins?

Martin Lehmann
fonte

Respostas:

0

Confira este novo plugin (gitlab-plugin), talvez ajude. Este plug-in emula o Jenkins como um serviço da Web GitlabCI para ser usado com o GitlabHQ.

xaniasd
fonte