Wyzwalanie kompilacji Jenkins dla żądania scalenia z haka sieciowego GitLab


10

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, gitlabTargetBranchi gitlabSourceBranchsą 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 jest id
  • gitlabTargetBranch jest target_branch
  • gitlabSourceBranch jest source_branch

Próbowałem skonfigurować parametry kompilacji przy użyciu wymagań wtyczki GitLab Merge Request Builder as Namei zmiennych wartości as Default Value. Niestety (i prawdopodobnie celowo) zmienne w Default Valuepolach 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?

Odpowiedzi:



0

Sprawdź tę nową wtyczkę (gitlab-plugin), może to pomoże. Ta wtyczka emuluje Jenkinsa jako usługę internetową GitlabCI do użytku z GitlabHQ.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.