我正在遵循GIT提交的简化代码审查流程,其中开发人员在GITHUB Web UI中添加消息说@review pending by @user_a, @user_b ( user_a and user_b are valid GIT users )直接GIT COMMIT.
后来的审阅者在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 Web UI中添加的这些对话/消息?
Git不支持自动提交注释;这是 GitHub 功能,而不是 Git 功能。您不会很幸运地找到内置git功能来查看这些评论。
就 Git 而言,提交基于其提交消息、属性(例如作者和时间戳)和树是不可变的。修改提交git必然会更改哈希值,这可能会干扰任何基于现有提交及其哈希值进行工作的人。(Git 确实通过命令支持大致等效的功能git notes,但 GitHub不再支持显示注释,并且提交注释不属于其中。)
如果您想将 git 分支上的提交与 GitHub 上的评论进行匹配,则需要使用GitHub 的评论 API。它的记录令人印象深刻,并且应该为您提供列出、添加、编辑或删除任何给定提交的注释或列出整个存储库中的所有注释所需的所有调用。
我会提供一些示例代码,但您的脚本将取决于您的确切审核流程,平衡您需要的调用数量(针对您的 GitHub API 速率限制)和您想要的更新速率。
如果这是持续运行的服务器或审核流程的一部分,您可能还需要调查基于 Webhook 的提交评论事件,当有人发表评论时,该事件将通知您的可公开访问的端点。通过一些永久存储和网络钩子,您可以轻松查看提交何时从“已提交”跳转到“正确审核”。
您还可以使用第三方 CLI 工具,例如这个 GitHub CLI 项目,尽管我还没有使用过它,并且无法保证其安全性或实用性。
最后,如果您确实编写自己的脚本,请记住使用git 管道命令,例如而git rev-list不是git log. log“porcelain”命令(如和)的输出status可以更改和发展,而“plumbing”命令(如cat-file和rev-list)可以保证可预测的输出,非常适合长寿命脚本。