2016-08-30 9 views
9

W tej chwili każdy, kto tworzy gałąź w moim projekcie i dodaje do niej plik .gitlab-ci.yml, może wykonywać polecenia na moim serwerze za pomocą programu runner. Jak mogę to zrobić, aby tylko mistrzowie lub właściciele mogli przesyłać pliki konfiguracyjne CI i wprowadzać w nich zmiany?Jak ograniczyć biegaczy do określonej gałęzi i zablokować .gitlab-ci.yml ze zmian?

Używam https://gitlab.com/gitlab-org/gitlab-ci-multi-runner działa na bash.

+0

To wydaje mi się bardzo rozsądną propozycją dotyczącą funkcji. Zwłaszcza, że ​​gitlab-ci obsługuje teraz wdrożenia. Czy zastanawiałeś się nad jego podniesieniem [tutaj] (https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/)? – Matthew

Odpowiedz

2

Runner GitLab nie został zaprojektowany do tego scenariusza i dlatego nie można tego zrobić. Zamiast tego możesz utworzyć nowy projekt z plikiem .gitlab-ci.yml i skonfigurować go tak, aby ciągnął oryginalne repozytorium. Stamtąd możesz zrobić wszystkie inne rzeczy, które chcesz zrobić ze swoim repozytorium.

+0

Niestety nie rozumiem, jak to działa. Czy możesz wyjaśnić (naciśnij, aby projekt A = CI, który robi co) Jak to jest nowy projekt z tylko mój plik ci robi? – CausingUnderflowsEverywhere

+1

@CausingUnderflowsEvewheres Masz 2 repozytorium. Repo A to twoje oryginalne repozytorium bez włączonych biegaczy i bez pliku CI. Repo B to twoje "runner repo", w którym masz tylko plik CI. W tym pliku 'git pull' Repo A i wykonaj wszystkie inne czynności, które chciałeś zrobić. W ten sposób możesz zablokować plik CI i nadal mieć wszystkie prawa. Nie ma innego sposobu, aby naprawdę to zrobić. – Fairy

+0

Hmm, który wymaga ręcznego popychania po mojej stronie za każdym razem, gdy chcę uruchomić CI, to wcale nie jest zautomatyzowane, więc w przeciwnym razie jest bezwartościowy. Dzięki za napiwek. Gdybym pracował sam, byłaby to duża szansa, ale faktem jest, i jak już wspomniałem w tym pytaniu, pracuję z innymi ludźmi. Po prostu nie mogę obejrzeć, czy ktoś pchnął coś, aby ponownie wykonać A, abym wykonał repozytorium B, aby aktywować CI, które nie pojawi się w żądaniach scalenia w repozytorium A. Mógłbym używać webhooków i takich, ale wtedy nie zrobiłbym tego ". Nawet użyję twojej pracy, ustawiłbym CI w jakimś kodzie aktywowanym przez webhook. – CausingUnderflowsEverywhere

Powiązane problemy