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 Webhook 来发现仓库及其更改。要进行最小配置,您需要将以下设置设置为一个秘密字符串。

code review github webhook secret

一旦在您的 GitHub 仓库设置中设置了它,请设置一个 Webhook,其中:

有效负载 URLhttps://YOUR_DISCOURSE/code-review/webhook
内容类型application/json
秘密code review github webhook secret 的值
事件类型

  • 提交评论
  • 问题评论
  • 拉取请求
  • 拉取请求审查
  • 拉取请求审查评论
  • 推送

该插件提供以下附加站点设置:

code review api username : GitHub 对允许的匿名 API 请求数量非常严格,此设置允许您使用 Discourse 用户的账户密钥进行 /comments/commit 请求。这大大降低了遇到速率限制的可能性。

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 对已直接提交到仓库的更改的工作流程很糟糕。

  • 审查填补了今天 GitHub 无法填补的空白,我们希望至少有一名团队成员审查我们各种 Discourse 拥有的 git 仓库中的每项更改。如果我们使用 GitHub 提供的 UI,没有人永远被允许只做拉取请求。这将极大地减缓我们的速度。

  • 我们需要能够在不向全世界透露某些更改的情况下进行私人沟通。例如:我们必须尽快将此出色的修复程序部署到 <insert giant company name>@sam 你能处理吗

  • 我们需要能够批准所做的更改或请求后续跟进,这是 GitHub UI 不提供的内容。

  • 我们需要能够将特定的提交分配给用户。假设 @sam 做了一个提交 包含一些错误 我们可以直接分配给他该特定提交,标记它进行后续跟进,然后跟踪它是否得到后续跟进,这很好。

  • Discourse 在整个对话方面非常出色,这些小功能带来了很大的不同,我可以看到人们正在输入。我从不刷新页面来弹出更改。引用非常好,图像上传也很好,等等。

  • Discourse 在读取状态方面做得非常好,您会获得很强的保证,即您阅读了每一件事一次,而在 GitHub 上,我不知道我阅读了哪些提交,哪些没有。我们有一种极其有效的方法来应对信息洪流。

列表还在继续…

因此,审查充当 GitHub 的补充,我们目前使用 GitHub 来处理尚未合并的更改。我们使用审查来正确处理已经合并的更改。

71 个赞

我试图了解这个插件的用途。我有一种预感,我需要类似的东西,但我很难看出它如何提高效率。当有人批准一个拉取请求并将其合并到一个分支时,你们的流程中有什么使得该批准还需要对关联的提交进行另一次批准?

GitHub 不提供与提交相关的此功能,因为假设这已经在拉取请求中处理过了。我错过了什么?

是因为你们团队中有一些人可以批准拉取请求,但没有资格就实际发布做出最终决定吗?这样做的目的是为了能够快速合并和审查拉取请求,而不必等待最终拍板的人,并确保该人员或团队在创建发布之前会审查提交?

或者主要是为了支持公共仓库上的私人讨论?

我很想更多地了解在此插件在你们工作流程中的好处。谢谢!

这主要是 Discourse 早期工作流程的遗留物。

以前,我们用它来追溯性地批准变更集。

现在,所有内容都通过 PR 渠道进行,所以我们实际上并没有过多使用该插件。

1 个赞