git - 如何解析 GIT 提交中的注释?

标签 git

我正在遵循 GIT 提交的简化代码审查流程,其中开发人员在 GITHUB 网络用户界面中添加消息说 @user_a、@user_b 待审(user_a 和 user_b 是有效的 GIT 用户) 直接GIT 提交。

后来审稿人在 GITHUB web UI 中添加了另一条消息说 @reviewed by @reviewer_a

想法是检测在没有任何评论的情况下检查了多少 COMMIT。 GIT PULL 请求是对话的好地方,但我正在寻找的是让每个 COMMIT 都有像 @reviewed by... 这样的消息,因为它是最后一条消息。

我可以使用 git log --oneline --graph --after="1 week ago" 列出过去一周添加到存储库的所有提交。但这不显示请求者和审阅者从 GITHUB web UI 添加的评论/消息。

有没有一种方法可以在单个 COMMIT 中列出对话/解析这些对话/在 GITHUB 网络用户界面中添加的消息?

最佳答案

Git 不支持自动提交注释;那是 GitHub 的功能,而不是 Git 的功能。如果你找到内置的 git 功能来查看这些评论,你就不太幸运了。

就 Git 而言,基于提交消息、属性(例如作者和时间戳)和树,提交是不可变的。在 git 中修改提交必然会更改哈希,这可能会干扰任何基于现有提交及其哈希进行工作的人。 (Git 确实通过 git notes 命令支持大致等效的功能,但 GitHub no longer supports showing notes 和提交评论不是其中的一部分。)

  • 如果您想将 git 分支上的提交与 GitHub 上的评论相匹配,您需要使用 GitHub's comment API . 它的文档令人印象深刻,应该会为您提供列出、添加、编辑或删除任何给定提交的评论或列出整个存储库中的所有评论所需的所有调用。

    我会提供一些示例代码,但您的脚本将取决于您的确切审查过程,平衡您需要的调用次数(相对于您的 GitHub API 速率限制)与您想要的更新速率。

  • 如果这是持续运行的服务器或审查过程的一部分,您可能还需要调查 webhook-based commit comment event ,当有人发表评论时,它将通知您的可公开访问的端点。借助一些永久存储和网络 Hook ,您可以轻松查看提交何时从“已提交”跳转到“已正确审核”。

  • 您还可以使用第三方 CLI 工具,例如 this GitHub CLI project ,尽管我还没有使用过它,因此既不能保证它的安全性,也不能保证它在这里的实用性。

  • 最后,如果您确实要编写自己的脚本,请记住使用 git plumbing commands ,例如 git rev-list 而不是 git log。 “陶瓷”命令(如 logstatus)的输出可以改变和演变,而“管道”命令(如 cat-filerev-list) 保证了可预测的输出,非常适合长期存在的脚本。

关于git - 如何解析 GIT 提交中的注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32487244/

相关文章:

git - 从不同的目录执行 git pull

git - 如何强制用户在 GIT 中使用小写的电子邮件地址

git - 无法将文件添加到 Git 存储库

git - 无法使用 GIT 扩展推送到存储库

node.js - 在 VSTS 构建期间,使用 npm 脚本,如何确定触发构建的分支?

Git 分支和环境部署跟踪

gitk 替换允许查看文件中的更改

Git rebase 显示非快进

python - 如何使用 python 中的 Github api 从字符串计算 SHA?

linux - 如何在 git 中变得更有效率