设置CCNET电子邮件发布者转换器以使用git电子邮件

时间:2013-08-21 02:03:13

标签: git cruisecontrol.net email-publisher

我们最近从SVN转换为Git。在此过程中,我们正在更新CCNET配置,以支持我们闪亮的新Git存储库。然而,我们遇到的是电子邮件发布者。

在Git切换之前,电子邮件发布者使用regexconvertor将用户名转换为电子邮件。这很有效,因为我们的SVN用户名是我们的AD帐户名,只需附加@ ourdomain.com即可轻松转换为电子邮件地址。

当我们切换到Git时,我们决定我们的Git用户名和电子邮件将与我们在野外常见的内容匹配,即使用您的全名(包括空格)并包含您的电子邮件地址,如下所示:

[user]
    name = James Kirk
    email = jtkirk@starfleet.com

这意味着我们的正则表达式转换器根据提交者名称错误地创建了用户名。对于带空格的名称,它会创建一个名称用双引号括起来的电子邮件,如:

"James Kirk"@starfleet.com

反过来,这意味着提交者永远不会收到提交的构建电子邮件。此外,我们无法使用LDAP转换器,因为我们的全名可能无法完全解析为我们可以从中提取电子邮件地址的唯一AD条目。

但是,我们都将我们的电子邮件添加到我们的Git提交中。我希望配置CCNET只是使用这个电子邮件地址发送给我们的提交者,因为这是正确使用的电子邮件,可以从Git轻松获得。

我们如何配置CCNET电子邮件发布者根据附加到每次提交的Git电子邮件向提交者发送电子邮件?

1 个答案:

答案 0 :(得分:1)

在此回答时,似乎无法挂钩Git作者和电子邮件以使用CCNET解析出电子邮件地址。

解决方法是获取Git存储库的所有提交者的列表,并在元素下输入它们。名称必须完全匹配提交中用户名的名称,包括大小写。如果您希望这些用户仅为其提交提交的构建版本接收电子邮件,请不要为这些用户指定组。

<email includeDetails="TRUE" subjectPrefix="CCNET Project ">
    <from>mybuild@starfleet.com</from>
    <mailhost>email.starfleet.com</mailhost>
    <users>
        <!-- Do NOT specify a group to send an email to these folks
         if and only if they have committed changes that are part 
         of the current build. The 'name' much match the 'name' 
         used in the commit log exactly (case sensitive) -->
        <user name="James Kirk" address="jkirk@starfleet.com" />
        <user name="Bones" address="lmccoy@starfleet.com" />
    </users>