2016-08-30 6 views
9

今、私のプロジェクトにブランチを作成して.gitlab-ci.ymlファイルを追加した人は、ランナーを使って自分のサーバ上でコマンドを実行できます。マスターやオーナーだけがCI設定ファイルをアップロードして変更できるようにするにはどうすればよいですか?ランナーを特定のブランチに制限し、.gitlab-ci.ymlを変更からロックする方法はありますか?

私はhttps://gitlab.com/gitlab-org/gitlab-ci-multi-runnerをbashで実行しています。

+0

これは非常に合理的な機能要求として私を襲う。特に、gitlab-ciはデプロイメントをサポートしています。それを上げることを考えましたか(https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/)? – Matthew

答えて

2

このシナリオではGitLabランナーは実際には設計されていないため、これを行うことはできません。あなたの代わりに行うことができるのは、あなたの.gitlab-ci.ymlファイルだけで新しいプロジェクトを作成し、元のリポジトリを取得するように設定することです。そこからリポジトリでやりたいことをすべて実行できます。

+0

申し訳ありませんが、私はこの作品の仕組みを理解していません。あなたは説明することができます(プロジェクトにプッシュする=何が何をするCI) ちょうど私のCIファイルの新しいプロジェクトは何ですか? – CausingUnderflowsEverywhere

+1

@原因の流出あなたは2つのリポジトリを持っています。 Repo Aは、ランナーを有効にせずCIファイルを使用しないオリジナルレポです。 Repo BはCIファイルだけを持っている "ランナーレポ"です。そのファイルでは、Repo Aを 'git pull'して、やりたいことをすべて実行します。こうすることで、CIファイルをロックアウトしても、すべての権利を引き継ぐことができます。これを実際に行う方法は他にありません。 – Fairy

+0

私はCIを動かすたびに私の側で手動でプッシュする必要があります。それはまったく自動化されていないので、無駄です。しかし、チップをありがとう。もし私が一人で働いていたら、それはかなり可能性がありますが、事実は私がその質問に述べたように、私は他の人と働いています。誰かがAをレポにするために何かをプッシュしたかどうかを見ることは簡単ではありません。レポAのマージリクエストに表示されないCIをアクティブにするためにBをレポするようにプッシュするために私は私に連絡します。あなたの仕事を使っていても、私はCIをWebhookによって起動されたコードに入れていました。 – CausingUnderflowsEverywhere

関連する問題