Go Wiki: GerritBot
GerritBotは、GitHubのプルリクエスト(PR)をコードレビューのためにGerritにインポートするために使用されるツールです。GoチームはすべてのレビューをGerritで行っていますが、GitHub PR経由でコードを貢献するためのより一般的なワークフローを許可したいと考えたため作成されました。
目次
ワークフロー
- ユーザーは、PRを受け入れる他のGitHubプロジェクトと同様に、GitHubリポジトリに対してGitHub PRをアップロードできます。
- PRの変更はGerritBotによってインポートされ、Gerritレビューへのリンクを含むメッセージがGitHub PRに投稿されます。
- すべてのコメントはGerrit内で処理されます。GitHub PRのコメントは無視されます。
- PR作成者は、Gerritからのフィードバックに対処するために、PRで使用されるブランチにコミットをアップロードし続けることができます。
- コミットメッセージへの変更は、Gerritやgitを介してではなく、GitHub PRのタイトルと説明を編集して行う必要があります。(詳細は下記のFAQを参照してください)。
- ドラフトPRはWIPとしてインポートされます。
- コードをマージする準備ができたら、メンテナーはGerritで変更を送信し、GerritBotはissueをクローズします。
- 同様に、Gerritで変更がクローズまたは破棄された場合、対応するPRがクローズされます。
よくある質問
GerritにサインアップするにはGoogleアカウントが必要ですか?GitHubアカウントを使用してサインインできないのはなぜですか?
Gerritに登録するには、Gmailまたはその他のGoogleアカウントが必要です。これは、Gerritインスタンスを実行するインフラストラクチャの制限であり、私たちの制御外です。さらに、貢献を受け入れるための要件であるCLAに署名するためには、すでにGoogleアカウントが必要です。
Gerritでコメントに返信したのですが、自分以外には誰も見えません
Gerritのコードに対するコメントへの返信は、最初にドラフトとして保存され、「返信」ボタンを介して公開する必要があります。これは、レビュー「セッション」ごとに複数のメールが送信されるのを防ぐためであり、GitHubの保留中のレビューワークフローに似ています。ボタンの「返信」テキストの横に数字が表示されている場合は、公開する保留中のドラフトがあることを意味します。
GerritBotはどのようにして最終的なコミットメッセージを決定するのですか?
GitHub PRのタイトルと説明を使用して、Gerritの変更のコミットメッセージを作成します。これは、GitHubのWebインターフェイスを使用して編集できます(Gerritやgitではありません)。PRの説明は、GitHub PRの「会話」タブの最初のテキスト領域にあります。「…」メニューの「編集」オプションを介して編集可能です。
注意: Gerritは、GitHubでメッセージを編集するときに表示されるプレーンテキストをインポートし、編集前にGitHubで表示されるレンダリングテキストはインポートしません。
関連する混乱の1つの一般的な領域は、issue参照に関するものです。たとえば、GerritBotまたは人間のレビュアーは、issue参照にURLを使用しないように依頼する場合があります。Gerritでは、issueの完全なURLが表示される場合がありますが、GitHubのWebインターフェイスでは、#12345
のようなissue参照のみが表示され、URLの出所が不明確になる場合があります。これは、GitHubのレンダリングされたビューと、基礎となるraw/プレーンテキストとの間の混乱が原因である可能性があります。GitHubのWebインターフェイスで、GitHubでテキストを編集しているときにFixes https://github.com/golang/go/issues/12345
のようなものが表示される場合は、Fixes #12345
またはFixes golang/go#12345
のように変更してください。issue参照の詳細については、貢献ガイドを参照してください。
GitHubでPRを編集すると、Gerritの変更が更新されるまでに10分程度かかる場合があります。
CLとは何ですか?Gerritの変更とは何ですか?
CLは「変更リスト」の略で、基本的にリポジトリに導入される予定のパッチです。Goプロジェクトでは、各CLを注意深くレビューするためにGerritを使用します。CLの例はhttps://go.dokyumento.jp/cl/508475です。
Gerritの変更はCLの別の用語です。
他の人のCLのレビューを手伝うことはできますか?
はい、これは強く推奨されており、Gerrit、Goプロジェクトのコードレビュープロセス、およびGo標準ライブラリ、ランタイム、コンパイラーなどの内部に慣れるための優れた方法です。
現在オープンなCLはこちらで閲覧でき、星アイコンをクリックして、興味のあるCLの更新をサブスクライブできます。
初期レビューのトリアージを手伝うために、コードのエキスパートである必要はありません。CLのレビューを支援するセクションについては、ガーデニングWikiページの詳細を参照してください。
Gerritでは1つの変更ごとに1つのコミットが必要だと聞きました。PRに複数のコミットをアップロードできますか?
必要なだけコミットをアップロードできます。GerritBotは、コミットをGerritが処理できる1つの変更にまとめる処理を行います。
GerritBotが私の変更の所有者であるのはなぜですか?
これは、Gerritが別のユーザーとして動作する方法に関するオープンバグが原因です。それが修正されたら、元の作成者も変更の所有者になります。
GerritBotに私のPRにコメントを投稿するのをやめるように依頼できますか?
comments
スラッシュコマンド(例:/comments off
)を使用すると、GerritBotからのコメントを切り替えることができます。
フィードバックとバグレポート
issueを提出し、タイトルにx/build/cmd/gerritbot:
プレフィックスを使用してください。
機能を追加/バグを修正したい
このコンテンツはGo Wikiの一部です。