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 では単純に埋めることのできないギャップを埋めます。私たちは、少なくとも 1 人のチームメンバーが、私たちのさまざまな Discourse 所有の git リポジトリに行われたすべての変更をレビューすることを望んでいます。GitHub 提供の UI を使用する場合、誰も プルリクエスト以外のことは 決して 許可されません。これは私たちの作業を著しく遅くします。

  • 特定の変更について、世界全体に知られることなくプライベートに通信する能力が必要です。例えば:この素晴らしい修正を <巨大な会社名> に ASAP でデプロイする必要があります。@sam 対応できますか?

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

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

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

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

他にも挙げればきりがありません…

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

「いいね!」 70

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

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

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

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

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

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

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

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

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

「いいね!」 1