【问题标题】:CCNetModifyingUsers <user> value change after CCNET 1.6 to 1.8 upgradeCCNET 1.6 到 1.8 升级后的 CCNetModifyingUsers <user> 值更改
【发布时间】:2016-12-07 01:15:33
【问题描述】:

将我们的一台构建服务器升级到最新版本的 CCNET 后,它停止向修改器组发送电子邮件。我们使用 Mercurial 进行源代码控制,并且版本 2.3.2 安装在构建服务器上。

buildmasters 组仍会收到电子邮件,但不会收到修饰符:

<email mailport="25" includeDetails="true" useSSL="false">
            <from>buildslave8@company.com</from>
            <mailhost>###.###.##.###</mailhost>
            <users>
                <user name="Name" group="buildmasters" address="name@company.com"/>
            </users>
            <groups>
                <group name="buildmasters">
                    <notifications>
                        <NotificationType>Always</NotificationType>
                    </notifications>
                </group>
            </groups>
            <converters>
                <regexConverter find="$" replace="@company.com" />
            </converters>
            <modifierNotificationTypes>
                <NotificationType>Always</NotificationType>
            </modifierNotificationTypes>
            <subjectSettings>
                <subject buildResult="Success" value="Build Status - SUCCESSFUL - ${CCNetProject} - ${CCNetLabel}" />
                <subject buildResult="Fixed" value="Build Status - HAS BEEN FIXED - ${CCNetProject} - ${CCNetLabel}" />
                <subject buildResult="StillBroken" value="Build Status - FAILED - ${CCNetProject}" />
                <subject buildResult="Broken" value="Build Status - FAILED - ${CCNetProject}" />
                <subject buildResult="Exception" value="Build Status - SERVER EXCEPTION - ${CCNetProject} - a serious error has occurred" />
            </subjectSettings>
            <attachments></attachments>

在挖掘构建日志后,我注意到&lt;CCNetModifyingUsers&gt; 下的&lt;user&gt; 值发生了如下变化:

来自(CCNET 1.6):

<integrationProperties>
    ...
    <CCNetModifyingUsers>
       <user>flast</user>
       <user>flast</user>
    </CCNetModifyingUsers>
    ...
</integrationProperties>

到(CCNET 1.8):

<integrationProperties>
    ...
    <CCNetModifyingUsers>
      <user>First Last</user>
      <user>First Last</user>
    </CCNetModifyingUsers>
    ...
</integrationProperties>

不确定&lt;CCNetModifyingUsers&gt; 下的&lt;user&gt; 值是如何填充的或如何修复它。

更新 #1:我正在尝试将 &lt;converter&gt; 更改为 ldapConverter 是否可以解决我的问题。

更新 #2:仍在尝试弄乱 ldapConverter:

<ldapConverter domainName="Name.corp" ldapLogOnUser="name" ldapLogOnPassword="pswd" />

这个版本抛出异常:

EmailPublisher 异常:System.FormatException:指定的字符串不是电子邮件地址所需的格式。 在 System.Net.Mime.MailBnfHelper.ReadMailAddress(字符串数据,Int32& 偏移量,字符串& displayName) 在 System.Net.Mail.MailAddressCollection.ParseValue(字符串地址) 在 ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher.GetMailMessage(字符串来自,字符串到,字符串回复,字符串主题,字符串 messageText,字符串工作文件夹,字符串 [] 附件) at ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher.SendMessage(String from, String to, String replyto, String subject, String message, String workingFolder)

此时:

<ldapConverter domainName="Name.corp" ldapLogOnUser="name" ldapLogOnPassword="pswd" ldapQueryField="userPrincipalName"/>

成功构建,但不向修改器发送电子邮件。

更新 #3:

我已经进行了以下临时修复:

<converters>
   <regexConverter find="(?!^.?).(?!.{0}$).* " replace="" />
   <regexConverter find="$" replace="@company.com" />
</converters>

但不包括以下情况:

  • 人们的 Mercurial username 与他们的电子邮件地址名称不匹配
  • 拥有双(三?)名或姓的人

更新 #4:

将不得不检查源代码,看看我是否可以准确地追踪导致问题的原因......可能需要维护它的本地构建。

【问题讨论】:

    标签: ldap cruisecontrol.net ccnet-config


    【解决方案1】:

    我在 2013 年 11 月处理了这个问题。我必须安装 CCNET 源代码并修改 EmailLDAPConverter.cs。 Convert 方法使用 SSAMAccountName Active Directory 属性创建搜索过滤器。这将失败。我最终过滤了 Active Directory 的“displayName”属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 2015-07-06
      • 2015-06-15
      • 2015-09-12
      • 2023-04-09
      • 2020-05-02
      相关资源
      最近更新 更多