Discourseのコードレビュー

:discourse2: 概要 Discourse Code Review を使用すると、Discourse 上で GitHub のコミットをレビューできます。
:hammer_and_wrench: リポジトリリンク https://github.com/discourse/discourse-code-review
:open_book: インストールガイド Discourse でのプラグインのインストール方法

機能

何ができるのか?

Discourse Code Review プラグインは、GitHub コードリポジトリとの双方向統合を提供します。これにより、チームは「割り当て」「囁き」「通知」「カスタムワークフロー」などの Discourse 機能やプラグインを活用して、リポジトリへのコミットをレビューできます。リポジトリへの各コミットはトピックとして作成され、そのトピックへの返信は GitHub にも反映されます。統合は双方向であるため、Discourse でコメントすると GitHub にも表示され、GitHub でコメントすると Discourse にも表示されます。

このプラグインは、任意の数のリポジトリへのすべてのコミットをレビューする必要があるチームにとって、非常に強力なワークフローを提供します。

リポジトリに適用されたすべての変更について、複数のチームメンバーが把握できるようにできます。コミットをフォローアップ用にマークしたり、レビュー作業を割り当てたりすることも可能です。

注: 承認可能なトピックを表示している場合、キーボードの y ボタンを使用して、コミットをより迅速に承認できます。

実際に動作を確認できますか?

Discourse は https://review.discourse.org/ を運営しており、このサイトは公開されており、GitHub 認証情報を使用して誰でもサインアップできます。ただし、非スタッフメンバーに対しては機能の一部のみが表示されます。より完全な例は以下の通りです:

GitHub 上では、同じトピックは次のように表示されます:

設定

このプラグインは、リポジトリとその変更を検出するために GitHub ウェブフックに依存しています。最小限の設定を行うには、以下の設定を秘密の文字列に設定する必要があります。

code review github webhook secret

GitHub リポジトリでこの設定を適用した後、以下の内容でウェブフックを設定してください:

ペイロード URL: https://YOUR_DISCOURSE/code-review/webhook
コンテンツタイプ: application/json
シークレット: code review github webhook secret の値
イベントタイプ:

  • コミットコメント
  • イシューコメント
  • プルリクエスト
  • プルリクエストレビュー
  • プルリクエストレビューコメント
  • プッシュ

このプラグインは、以下の追加のサイト設定を提供します:

code review api username: GitHub は匿名の API リクエストの数を非常に制限しています。この設定を使用すると、/comments および /commit リクエストに対して Discourse ユーザーのアカウントキーを利用できます。これにより、レート制限に達する可能性が大幅に低下します。

code review catch up commits: 新しいリポジトリに遭遇した際に「キャッチアップ」してトピックを作成するコミット数。

code review default parent category: プラグインによって作成されるカテゴリのデフォルト親カテゴリを選択します。

code review pending tag: すべての未レビューのコミットに適用するタグ(デフォルト: pending

code review approved tag: 承認されたコミットに適用するタグ(デフォルト: approved

code_review_followup_tag: フォローアップが必要なコミットに適用するタグ(デフォルト: follow-up

code review allow self approval: スタッフは自身のコミットを承認できますか?

code review default mute new categories: コードレビューによって作成された新しいカテゴリは、デフォルトでユーザーによってミュートされます。

code review skip duration minutes: コミットの「スキップ」ボタンをクリックすると、この設定で指定された分間、そのコミットが再度表示されなくなります。

変更履歴

今後の予定

補足

Discourse がこのプラグインをどのように使用しているか

TL;DR - このプラグインは、Discourse チームがコードレビューのために GitHub を使用するのを補完するために設計されました。

詳細情報

@sam より:

  • 私たちは依然として GitHub UI を使用した PR を活用しており、多くの変更に対して PR を行うことを好んでいます。ここには何も変更されていません。GitHub は素晴らしいです。私たちは GitHub を愛しています。彼らはまだマージされていない変更に対して優れたワークフローを持っています。しかし…

  • GitHub のリポジトリに直接コミットされた変更に対するワークフローは最悪です。

  • Review は、現在の GitHub では埋めることのできないギャップを埋めます。私たちは、私たちのさまざまな Discourse 所有の git リポジトリに対して行われるすべての変更を、少なくとも 1 人のチームメンバーにレビューしてもらいたいと考えています。GitHub が提供する UI を使用するならば、誰もプルリクエスト以外のことは決して許可されなくなります。これでは私たちの作業が大幅に遅れてしまいます。

  • 世界全体に知られることなく、特定の変更について非公開でコミュニケーションを取る必要があります。例えば: この素晴らしい修正を <巨大な会社名> に ASAP でデプロイしないといけないな、@sam 任せるよ

  • 行われた変更を承認したり、フォローアップを要求したりする機能が必要です。これは GitHub UI が提供していないものです。

  • 特定のコミットをユーザーに割り当てる機能が必要です。例えば、@samいくつかのミスを含むコミット を行ったとします。その特定のコミットを直接彼に割り当て、フォローアップ用にマークし、そのフォローアップ状況を追跡できるのは便利です。

  • Discourse は会話全般において非常に優れており、小さな機能が大きな違いを生みます。誰かが入力しているのがわかります。変更を反映させるためにページをリフレッシュする必要もありません。引用機能も素晴らしく、画像のアップロードも便利です。

  • Discourse は「既読状態」の管理が非常に優れており、すべての情報を一度だけ読んだという強力な保証があります。一方、GitHub ではどのコミットを読んだか読んでいないか分かりません。私たちは情報洪水に対処するための非常に効率的な方法を持っています。

このリストは続きます…

つまり、Review は GitHub を補完する役割を果たします。私たちは現在、まだマージされていない変更に対処するために GitHub を使用し、すでにマージされた変更を適切に処理するために Review を使用しています。

「いいね!」 71

このプラグインの目的を理解しようとしています。このようなものが必要なのではないかと感じていますが、効率の点でどのように役立つのかがよくわかりません。誰かがプルリクエストを承認してブランチにマージした場合、承認に関連付けられたコミットに対して、なぜさらに別の承認が必要になるのでしょうか?

[引用=“Discourse, post:1, topic:103142”]
変更を承認するか、フォローアップをリクエストする機能が必要です。これはGitHub UIにはないものです。
[/引用]

GitHubは、プルリクエストですでに処理されていることを前提としているため、コミットに関してそれを提供していません。何を見落としているのでしょうか?

チームにはプルリクエストを承認できるものの、実際のリリースの関連でそのコミットに関する最終的な決定を下す資格がない人がいるからですか?プルリクエストを、最終決定権を持つ人がレビューするのを待たずに迅速にマージおよびレビューできるようにすることが目的ですか?その人またはチームがリリースを作成する前にコミットをレビューすることを保証して。

または、主に公開リポジトリでのプライベートな議論をサポートするためですか?

このプラグインをワークフローで使用することのメリットについて、より詳しく知りたいです。ありがとうございます!

これは主にDiscourseの以前のワークフローの遺物でした。

昔は、変更セットの遡及的な承認に使用していました。

最近では、PRチャネルを経由するため、プラグインはあまり使用していません。

「いいね!」 1