Chcę, aby Jenkins (1.561) budował żądania scalania (ściągania) przesłane do GitLab (6.7.5), wyzwalane przez hak internetowy żądania scalenia. Mam sparametryzowaną wersję, a wtyczki Jenkinsa „GitLab Merge Request Builder” (1.2.0) i „GitLab Hook” (1.0.0). Migracja do Jenkins CI nie jest niestety realną opcją.
Merge Zapytanie plugin Builder jest w stanie budować wnioski łączyć, tak długo, jak zmienne gitlabMergeRequestId
, gitlabTargetBranch
i gitlabSourceBranch
są dostępne. Działa to dobrze, gdy wtyczka odpytuje samo repozytorium lub uruchamiam kompilację ręcznie (np. curl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters
), Ale nie mogę tego zrobić z hakiem.
Za pomocą wtyczki GitLab Hook jestem w stanie uzyskać niezbędne dane w ładunku JSON, ale wartości mają „złe” klucze:
gitlabMergeRequestId
jestid
gitlabTargetBranch
jesttarget_branch
gitlabSourceBranch
jestsource_branch
Próbowałem skonfigurować parametry kompilacji przy użyciu wymagań wtyczki GitLab Merge Request Builder as Name
i zmiennych wartości as Default Value
. Niestety (i prawdopodobnie celowo) zmienne w Default Value
polach nie są zastępowane, więc Jenkins szuka żądania scalenia z identyfikatorem ${id}
i podobnymi wartościami gałęzi.
Nie znalazłem sposobu na skonfigurowanie ładunku wysłanego z GitLab i nie ma opcji konfiguracji ani wtyczki GitLab Hook, ani nazw parametrów używanych przez wtyczkę GitLab Merge Request Builder.
Zastanawiam się nad napisaniem małego skryptu PHP w celu przechwycenia i zmiany ładunku z POST przed przekazaniem go do Jenkins. Chociaż jestem pewien, że to zadziała, zdecydowanie wydaje się niepotrzebnie skomplikowane.
Jedyną inną rzeczywistą opcją, jaką widzę, jest zmiana źródła wtyczek, ale to sprawia, że uaktualnienie ich jest PITA.
Czy przeoczyłem coś oczywistego, czy też nie ma tak naprawdę prostszego sposobu wyzwalania kompilacji żądania scalania z hakiem internetowym od GitLab do Jenkins?
źródło