2017-09-12 37 views
1

正如我有代码审查中5-6格里特情况下,它可以发生常常忘记通知的人对他们进行审查开放,任何人都知道,变老也是CR变得过时,投资于它的努力主要是丢失。如何制作Gerrit提醒机器人?

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

现在的问题是,如果我们已经有类似的东西,可以改善或作为一个起点。

请注意,使用格里特事件流是在这种情况下,无用的,因为我们确实想发送提醒通知停滞的评论,显然是一个停滞的评论没有得到任何通知。

回答

1

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

基本流程

  1. 定义:几岁是“老”(在“最后修改”时间上),
    ,然后再开始唠叨的人
  2. 获取所有的列表打开格里特 - 变化 - 在我们的例子 - 作为一个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变化。
邮件发送给两者的所有者和审阅(在CC),
覆盖情况下,车主是在休假(或左)。

+0

有什么要分享?时间创建格里特调解人-BOT :) – sorin

+0

(已添加的蓝图) – Gonen