如何制作Gerrit提醒机器人?

时间:2017-09-12 07:57:29

标签: gerrit

由于我在5-6个gerrit实例中打开了代码评论,因此忘记通知人们对它们进行评论可能会经常发生,而且任何人都知道,旧的CR也会过时并且投入的努力是大部分都输了。

我打算写一个gerrit-reminder-bot查询所有gerrit服务器,查看您开的评论,检查年龄和状态(没有投票,没有反对票),并向每位评论员发送电子邮件。

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

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

1 个答案:

答案 0 :(得分:2)

我们选择了#34;内部"解决方案 -
一个运行Gerrit查询并解析(JSON)结果的脚本。

基本流程

  1. 定义:多久了"旧" (就"最后修改时间"时间而言),
    在你开始唠叨人之前
  2. 获取所有开放的Gerrit更改列表 - 在我们的例子中 - 作为JSON:
    ssh -p $gerritPort $gerritHost gerrit query --format=JSON --current-patch-set limit:$queryLimit status:open
    注意 -
    • 结果的每一行都是" mini-JSON"应该自行解析
    • 摘要行具有不同的格式 - 可以完全忽略它
  3. 每行
    • 解析JSON以获取键/值对
    • 如果不是"足够老" - 跳过它
    • if (Verify < +1) - &gt; &#34;忘记修复构建&#34;
    • else-if (CodeReview < +2) - &gt; &#34;忘了好好回顾&#34;
    • else-if (CodeReview == +2 and Verify == +1) - &gt; &#34;忘记提交&#34;
  4. 对于每个场景,我们发送一个略有不同的邮件来描述案例,
    与相关的Gerrit-change相关联 邮件将发送给所有者和审阅者(在CC中),
    涵盖业主休假(或离开)的情况。