Jenkins (1.561)가 병합 요청 웹 후크에 의해 트리거 된 GitLab (6.7.5)에 제출 된 병합 (풀) 요청을 작성하기를 원합니다. 매개 변수가있는 빌드와 Jenkins 플러그인 “GitLab Merge Request Builder”(1.2.0) 및 “GitLab Hook”(1.0.0)이 있습니다. 불행히도 Jenkins CI로 마이그레이션하는 것은 실제 옵션이 아닙니다.
병합 요청 빌더 플러그인 입니다 변수만큼, 빌드 병합 요청 수 gitlabMergeRequestId
, gitlabTargetBranch
및 gitlabSourceBranch
사용할 수 있습니다. 플러그인이 리포지토리 자체를 폴링하거나 수동 페이로드 (예 :)로 빌드를 트리거 할 때 잘 작동 curl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters
하지만 후크로는이를 수행 할 수 없습니다.
GitLab Hook 플러그인을 사용하면 JSON 페이로드에서 필요한 데이터를 얻을 수 있지만 값에 “잘못된”키가 있습니다.
gitlabMergeRequestId
이다id
gitlabTargetBranch
이다target_branch
gitlabSourceBranch
이다source_branch
GitLab Merge Request Builder 플러그인의 요구 사항 및 변수 값을 사용하여 빌드 매개 변수 를 구성 하려고 Name
했습니다 Default Value
. 불행히도 (의도적으로) Default Value
필드 의 변수는 대체 되지 않으므로 Jenkins는 id ${id}
및 유사한 분기 값을 가진 병합 요청을 찾고 있습니다.
GitLab에서 보낸 페이로드를 구성하는 방법을 찾지 못했으며 GitLab Hook 플러그인이나 GitLab Merge Request Builder 플러그인에서 사용하는 매개 변수 이름에 대한 구성 옵션이 없습니다.
Jenkins에 전달하기 전에 POST에서 페이로드를 가로 채고 변경하기 위해 작은 PHP 스크립트를 작성하려고합니다. 이것이 효과가 있다고 확신하지만 불필요하게 복잡해 보입니다.
내가 볼 수있는 다른 실제 옵션은 플러그인 소스를 변경하는 것입니다. 그러나 PITA를 업그레이드합니다.
내가 명백한 것을 간과 했습니까, 아니면 GitLab에서 Jenkins까지 웹 후크로 병합 요청 빌드를 트리거하는 더 간단한 방법이 있습니까?
답변
플러그인 Gitlab Merge Request Builder 플러그인을 살펴보십시오. Jenkins 관리에서 Jenkins 구성 및 병합 요청 빌더에서 gitlab url 설정 https://github.com/timols/jenkins-gitlab-merge-request-builder 의 지침을 따르십시오. 플러그인 1
답변
이 새로운 플러그인 (gitlab-plugin)을 확인하십시오 . 아마 도움이 될 것입니다. 이 플러그인은 Jenkins를 GitlabHQ와 함께 사용할 GitlabCI 웹 서비스로 에뮬레이션합니다.
답변
Jenkins에 일반 웹 후크 트리거를 사용할 수 있습니다. webhook JSON 구조에서 빌드까지 모든 가치를 제공 할 수 있습니다.
https://wiki.jenkins.io/display/JENKINS/Generic+Webhook+Trigger+Plugin