1

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

在 Git 切换之前,电子邮件发布者使用正则表达式转换器将用户名转换为电子邮件。这很有效,因为我们的 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 电子邮件向提交者发送电子邮件?

4

1 回答 1

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>
于 2013-09-06T00:20:05.150 回答