我怎样才能批量更新Sonarqube帐户通知?

时间:2016-06-21 07:33:23

标签: notifications sonarqube

我安装了一个Sonarqube webapp来控制我公司的代码质量。 我使用LDAP插件对用户进行身份验证,一切正常。

此外,我们使用另一个插件(问题分配插件),它将问题分配给他们的SCM作者并向他们发送电子邮件,以便他们可以更正代码。

但是,当新用户登录时,通知会关闭。 我们想创建一个可以为所有用户启用通知的批处理(使用批量更新)但我们无法找到用户帐户的通知存储位置... 我没有在数据库中找到它。

您知道此设置的存储位置吗? (我们使用Sonarqube 4.5.6进行兼容性问题)。

2 个答案:

答案 0 :(得分:3)

您无法向其他人订阅SonarQube 垃圾邮件通知。

(这应该是你看到巴特辛普森在黑板上写的东西之一。)

你必须说服他们自己订阅。

SonarQube首先是开发人员的工具。把某些东西放在开发人员的喉咙/收件箱中,你很快就会把它过滤到垃圾桶里。

这是您培训新开发人员的机会,了解SonarQube 如何帮助他们更好地完成工作并向他们展示为什么他们应该有足够的兴趣自己订阅。

答案 1 :(得分:0)

我们使用Oracle数据库支持我们的实例,并发现以下sql完全按照您的要求执行:

注意:您可能希望将created_at值更新为其他内容,但我认为它不会产生功能差异。

INSERT INTO properties (id, user_id, prop_key, text_value, is_empty, created_at)
    SELECT
        PROPERTIES_SEQ.nextval,
        users.id,
        'notification.SQ-MyNewIssues.EmailNotificationChannel',
        'true',
        0,
        1505275000000
    FROM
        users
    WHERE
        users.id NOT IN (
            SELECT user_id
            FROM properties
            WHERE prop_key = 'notification.SQ-MyNewIssues.EmailNotificationChannel');

INSERT INTO properties (id, user_id, prop_key, text_value, is_empty, created_at)
    SELECT
        PROPERTIES_SEQ.nextval,
        users.id,
        'notification.ChangesOnMyIssue.EmailNotificationChannel',
        'true',
        0,
        1505275000000
    FROM
        users
    WHERE
        users.id NOT IN (
            SELECT user_id
            FROM properties
            WHERE prop_key = 'notification.ChangesOnMyIssue.EmailNotificationChannel');

我试图在某些时候将两者结合起来,但是sql太复杂了。很容易复制粘贴。

G. Ann是正确的,因为用户 会创建电子邮件过滤器,因为通知量非常大,特别是如果你打开所有。然而,有时管理者想要单方面的解决方案,如果产品没有直接支持它,那么你最终还是必须在一起解决问题。

I reckon如果将信息合并到速率限制摘要中,过滤电子邮件的动机将会少得多。我在这里发布了有关该特定方案的另一个stackoverflow帖子:Can SonarQube notification email quantity be reduced via batching?