2016-08-30 2 views
9

Im Moment kann jeder, der in meinem Projekt eine Verzweigung erstellt und eine .gitlab-ci.yml-Datei hinzufügt, Befehle auf meinem Server mit dem Runner ausführen. Wie kann ich es so einrichten, dass nur Master oder Besitzer CI-Konfigurationsdateien hochladen und Änderungen daran vornehmen können?Wie schränkt man Läufer auf einen bestimmten Zweig ein und sperrt das .gitlab-ci.yml vor Änderungen?

Ich verwende https://gitlab.com/gitlab-org/gitlab-ci-multi-runner läuft auf bash.

+0

Das scheint mir eine sehr sinnvolle Feature-Anfrage. Zumal gitlab-ci jetzt Bereitstellungen unterstützt. Haben Sie darüber nachgedacht, [hier] (https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/) zu erhöhen? – Matthew

Antwort

2

Der GitLab-Runner wurde nicht wirklich für dieses Szenario entwickelt und Sie können dies daher nicht tun. Stattdessen können Sie ein neues Projekt mit Ihrer .gitlab-ci.yml Datei erstellen und es so konfigurieren, dass es das ursprüngliche Repository abruft. Von dort aus können Sie alle anderen Dinge tun, die Sie mit Ihrem Repository tun möchten.

+0

Sorry, ich verstehe nicht, wie das funktioniert. Kannst du das erklären? (Push an Projekt A = CI das macht was) Wie ist das neue Projekt mit nur meiner ci Datei? – CausingUnderflowsEverywhere

+1

@CausingUnderflowsEverywhere Sie haben 2 Repos. Repo A ist Ihr ursprüngliches Repo ohne aktivierte Läufer und keine CI-Datei. Repo B ist Ihr "Runner Repo", wo Sie nur die CI-Datei haben. In dieser Datei ziehst du Repo A und machst alle anderen Dinge, die du machen wolltest. Auf diese Weise können Sie die CI-Datei sperren und haben trotzdem alle Rechte. Es gibt keinen anderen Weg, dies wirklich zu tun. – Fairy

+0

Hmm, das erfordert jedes Mal einen manuellen Druck auf meiner Seite, wenn ich ein CI ausführen möchte, es ist überhaupt nicht automatisiert, also ist es sonst wertlos. Danke für den Tipp. Wenn ich alleine arbeiten würde, wäre das eine ziemliche Möglichkeit, aber Tatsache ist, und wie ich in der Frage gesagt habe, arbeite ich mit anderen Leuten zusammen. Es ist einfach nicht machbar für mich, zuzusehen, ob jemand etwas zu Repo A gedrängt hat, um Repo B zu aktivieren, um das CI zu aktivieren, das bei Mergeanfragen in Repo A nicht angezeigt wird. Ich könnte Webhooks und dergleichen verwenden, aber dann würde ich nicht Selbst wenn Sie Ihre Arbeit nutzen, würde ich das CI in einen Code setzen, der von einem Webhook aktiviert wird. – CausingUnderflowsEverywhere

Verwandte Themen