web-dev-qa-db-ja.com

VSTS-マスターへのプッシュを防止しますが、PRマージは許可します

ビルドパスと作業項目がリンクされていない限り、プルリクエストがマスターにマージされないように、VSTSでブランチポリシーを設定しています。ただし、開発者がマスターに直接プッシュするのを防ぐ方法を理解することはできません。 「投稿」権限を拒否に設定すると、プルリクエストをマージできなくなります。

すべての開発者はPRをマスターにマージすることを許可されるべきですが、マスターに直接プッシュすることを許可されるべきではありません。これは可能ですか?

17
David H

ブランチポリシー は、あなたが言っていることをすでに正確に実行しています。ブランチポリシーが実施されている場合は、PRが必要です。

開発者に「ポリシー適用の免除」権限がないことを確認してください。

25
Daniel Mann

私はこの質問が少し古いことを知っていますが、ここにいくつかの追加情報があります...
残念ながら、「ベストアンサー」にコメントを追加することはできませんので、ここでは新しいものとして、コメントとして扱うだけでかまいません。

ブランチポリシーはすでにあなたの言っていることを正確に実行します。ブランチポリシーが実施されている場合は、PRが必要です。

100%同意する

開発者に「ポリシー適用の免除」権限がないことを確認してください。

100%同意する

ポリシーの施行を免除

開発者が「ポリシー適用の免除」権限を持っているかどうかを確認するには、どこを見ればよいですか?

docs.Microsoft.com から:

ユーザーがブランチポリシーをバイパスできるようにするいくつかの権限があります。 TFS 2015からTFS 2018 Update 2までの場合、ポリシー適用の免除権限により、この権限を持つユーザーは次のアクションを実行できます。

  • プルリクエストを完了するときは、ポリシーを上書きし、ブランチポリシーの現在のセットが満たされていない場合でもプルリクエストを完了するようにオプトインします。
  • ブランチにブランチポリシーが設定されている場合でも、ブランチに直接プッシュします。この権限を持つユーザーがブランチポリシーを上書きするプッシュを行うと、プッシュはオプトイン手順や警告なしで自動的にブランチポリシーをバイパスすることに注意してください。

Azure DevOps Servicesでは、ポリシー適用の免除権限が削除され、その機能が次の2つの新しい権限に分割されています。

  • プルリクエストの完了時にポリシーをバイパスする
  • プッシュ時にポリシーをバイパスする

以前にポリシー適用の免除を有効にしていたユーザーは、代わりに2つの新しい権限が有効になります。

これらのオプションは次の場所にあります。
組織/プロジェクト/設定/リポジトリ

ローカルGit

おそらく、ユーザーは自分のローカルバージョンのマスターブランチに対して何でも実行できますが、Azure DevOpsはリモートへのプッシュを拒否しますか?それが発生した場合、開発者はローカルリポジトリで取得した混乱を元に戻すために何をする必要がありますか?

これは、Azure DevOpsのブランチポリシーが「Vanilla-git」と呼ばないためです。これはMicrosoft固有の拡張機能であり、ユーザーのローカルgitブランチとは何の関係もありません。そのため、ユーザーは自分のローカルgitリポジトリに何でもしたいことができます。DevOpsは「サーバー側」のものを防ぐだけです。

開発者が混乱を元に戻す方法に関する質問について: this SO question

5
Jonas