gerrit - 如何制作 Gerrit 提醒机器人?

标签 gerrit

由于我在 5-6 个 gerrit 实例中打开了代码审查,因此经常会发生忘记通知人们对其进行审查的情况,众所周知,过时的 CR 也会过时,并且投入的精力是大部分都丢失了。

我计划编写一个 gerrit-reminder-bot ,它会查询所有 gerrit 服务器以查找您打开的评论,检查年龄和状态(没有投票和负面投票)并发送电子邮件致每位审稿人。

现在的问题是我们是否已经有类似的东西可以改进或用作起点。

请注意,在这种情况下使用 gerrit 事件流是没有用的,因为我们确实希望为停滞的评论发送提醒通知,并且显然停滞的评论不会收到任何通知。

最佳答案

我们采用了“内部”解决方案 -
运行 Gerrit 查询并解析 (JSON) 结果的脚本。

基本流程

  1. 定义:“旧”是多久了(以“最后修改”时间表示),
    在你开始唠叨别人之前
  2. 获取所有打开的 Gerrit 更改的列表 - 在我们的例子中 - 作为 JSON:
    ssh -p $gerritPort $gerritHost gerrit query --format=JSON --current-patch-set limit:$queryLimit status:open
    笔记 -
    • 结果的每一行都是一个“迷你 JSON”,应该单独解析
    • 摘要行具有不同的格式 - 可以完全忽略它
  3. 对于每一行
    • 解析 JSON 以获取键/值对
    • 如果“不够老” - 跳过它
    • if (Verify < +1) -->“忘记修复构建”
    • else-if (CodeReview < +2) -->“忘记获得好评”
    • else-if (CodeReview == +2 and Verify == +1) -->“忘记提交”

对于每种情况,我们都会发送一封略有不同的邮件来描述该情况,
带有相关 Gerrit 更改的链接。
邮件同时发送给所有者和审阅者(抄送),
涵盖所有者度假(或离开)的情况。

关于gerrit - 如何制作 Gerrit 提醒机器人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46170965/

相关文章:

git - jenkins 中多个 SCM 上的 Gerrit 触发器无法正常工作

mysql - 尽管存在于数据库中,但未找到 Gerrit 评论

gerrit - 在 Gerrit 中搜索之前被审阅者拒绝的提交

Gerrit - 应用程序错误 - 由于服务器错误,线内差异不可用

git - 使用 gerrit 来托管 git 存储库而不是 gitolite 或 gitosis 是个好主意吗?

python - 有没有办法从 Gerrit REST API 检索所有提交?

gerrit - 如何在 Gerrit 中搜索需要重新调整基础的变更集?

git - 如何区分两个提交(补丁)对 Gerrit 中的相同更改?

jenkins - 在 gerrit 2.7 中找不到 'Label Verified' 权限

git - 为什么 "git clone"不采用 refspec?