0
ソース/ターゲットブランチに関係なく、マージ要求によってすべてのマージが行われるようにgitlab-ceを設定するにはどうすればよいですか?例えば、git自体がリモートリポジトリとやりとりするために使用されていても、マージ要求を介して行われない限り、マージを禁止したいと思います。すべてのマージがマージ要求によって行われることを要求します
ソース/ターゲットブランチに関係なく、マージ要求によってすべてのマージが行われるようにgitlab-ceを設定するにはどうすればよいですか?例えば、git自体がリモートリポジトリとやりとりするために使用されていても、マージ要求を介して行われない限り、マージを禁止したいと思います。すべてのマージがマージ要求によって行われることを要求します
Gitlab 8.10以降、ブランチ保護機能がWildcard Branch Protectionで改善され、リポジトリが名前に基づいてブランチを保護できるようになりました。たとえば、はrelease-
で始まるブランチを保護します。
*
ルールを設定すると、マスターのみがマージを行うことができます。これにより、リポジトリの変更を取得するために、リポジトリのマスター以外のすべてのユーザーが強制的にマージ要求を開くようになります。
誰がマスターであるかを制限する必要があることに注意してください。
おそらく「十分に良い」と思われます。これが許されないユースケースは次のようなものです:開発者が "issue"ブランチから分岐して、他の開発者に仕事のいくつかの論理的な断片を分けたいとします。これらの2つは、この作業を問題分岐にマージするために機能します。マスターの介入なしにそのような状況を可能にしたいが、コードがマージ要求とともに問題ブランチに戻ってくる必要があるので、ドキュメント、トレーサビリティ、ディスカッションなどがある。また、この解決策には、ルールは常に起こるとは限りません:-) –
2人の開発者は、Mergeリクエストを通じて、すべてのディスカッション、コードレビュー、変更提案などを行うことができました。それはあなたが提案したものではありませんが、私はMergeリクエストにはそれを動作させるためのすべてのツールがあると信じています。 マスターズは「ルールに従う」とは正しかったですが、いくつかの伝道と文化が頭の中に入り、透明性は繁栄します。 – alejdg