gpt4 book ai didi

Jenkins 管道 currentBuild.changeSets 和检索每个存储库的电子邮件

转载 作者:行者123 更新时间:2023-12-04 22:28:16 29 4
gpt4 key购买 nike

我有一个 Jenkins 管道工作,它检查三个存储库。
当构建失败时,根据失败的位置,我想向导致最后一次提交/更改的开发人员发送电子邮件。
我可以用这个检索作者的全名:

def changeSet = script.currentBuild.changeSets[0];
Set authors = [];
if (changeSet != null) {
for (change in changeSet.items) {
authors.add(change.author.fullName)
}
}
但我想不通:
  • 我如何获得作者的电子邮件?
  • 如何区分不同存储库的作者?
  • 最佳答案

    在此处查看更多信息:
    How to get e-mail address of current Jenkins user to use in groovy script

    echo 'author email:' + change.author.getProperty(hudson.tasks.Mailer.UserProperty.class).getAddress()

    但它需要禁用 groovy 沙箱 :(

    可能的解决方案已将此添加到 Jenkins 管道共享库 : https://jenkins.io/doc/book/pipeline/shared-libraries/

    像这样:
    $ cat GetUserEmail.groovy 
    #!/usr/bin/groovy

    def call(body) {
    def config = [:]
    body.resolveStrategy = Closure.DELEGATE_FIRST
    body.delegate = config
    body()

    def User = config.get('user')
    return User.getProperty(hudson.tasks.Mailer.UserProperty.class).getAddress()
    }

    并像这样使用:
    def changeSet = script.currentBuild.changeSets[0];
    Set authors = [];
    if (changeSet != null) {
    for (change in changeSet.items) {
    authors.add(GetUserEmail{user=change.author})
    }
    }

    关于Jenkins 管道 currentBuild.changeSets 和检索每个存储库的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46070618/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com