プルリクエストと組み合わせたレビューを git で確実かつ安全にするツールはありますか?
関連する質問がいくつかあり、それらは github で既に尋ねられています (参照: Using git for Code Reviews、Online Code Review Tool with Git Integration )。
前の質問で提示された解決策は優れたインターフェイスを備えていますが、アクセス制御に関してはひどく失敗しています。私たちの会社は小さすぎて、コードのレビューを 1 人に強制したり、専任のメンテナーを置いたりすることはできません。したがって、コードが中央レポジトリにプッシュされる前にコードがレビューされるようにする (または少なくとも推奨する) ツールを探しています。
注: 私たちは一般的に従業員を信頼しているため、絶対的なユーザー アクセス制御は必要ありません。ただし、プッシュ権限を 1 人に制限することなく、中央リポジトリへの直接プッシュを禁止したいと考えています。
したがって、ツール (またはツールとスクリプトの組み合わせ) は、少なくとも次のタスクを実行する必要があります。
- プル リクエストを Web インターフェイスで表示できるようにします。(ゲリットはそれを達成します)
- 中央リポジトリはそのツールにリンクされているため、読み取り専用アクセスが可能ですが、プッシュを行うには少なくとも別の人が変更セットを確認して承認する必要があります。
- レビューと承認の責任者は、開発チームの任意の人物にすることができます。
- ツールは、マージの競合につながるプル リクエストを自律的に検出 (および拒否) する必要があります。
- コミットの SHA1 ハッシュを変更することが知られている git 関数を使用しないでください。
このソリューションに対する私の提案:
- プルリクエストとレビューの処理には gerrit を使用します。
- gerrit には常にマスターのクローンが必要です。
- プルリクエストごとに、gerrit は、パッチがコンフリクトなしで master に適用可能かどうかをチェックします (これはスクリプト フックであり、gerrit がそれらを備えているかどうかはわかりません)。
- 中央リポジトリは、シェル アクセス権を持つ特権ユーザー (ここでは という名前
gerrit
) によって所有され、http(s) 経由で公開されます。 - 別の人がコードをレビューするたびに、Web インターフェイスに適用ボタンがあり、変更が中央リポジトリに自動的にプッシュされます。
残念ながら、私は gerrit を知りませんし、ドキュメントも不足しています。このワークフローを gerrit で実装することは可能ですか? これらの要件を満たす別のツールはありますか?