Jenkins 中文社区

  • 博客
  • 教程
  • 活动
  • 合作伙伴
  • 关于我们
  • Jenkins 官网
Star

全局变量中获取用户信息

Jenkins 的流水线可以是自动触发,也可以有某个用户手动触发。如果我们希望能够或者触发某条流水线的用户信息时,可以参考下面给出的例子:

pipeline {
    agent any

    stages {
        stage('clone') {
            steps {
                script {
                    echo currentBuild.getBuildCauses().toString()
                }
            }
        }
    }
}

参考的输出内容如下:

[{"_class":"hudson.model.Cause$UserIdCause","shortDescription":"Started by user escape-hatch-admin","userId":"escape-hatch-admin","userName":"escape-hatch-admin"}]

如果只想通过上面给的例子拿到用户信息的话,读者只需要遍历上面的数组,找到 _class 为 hudson.model.Cause$UserIdCause 的元素,就能拿到用户名和用户ID了。

原理

Jenkins 流水线(包括其他类型的任务)在触发时,会将被触发的原因记录到 Cause 中,而且,这个 Cause 可能会有多个。如果我们想要记录更多个性化的触发原因的话,可以使用 Jenkins 提供的扩展点。

作者:linuxsuren
完善此页
由 Jenkins 社区贡献者 维护
  • File an Issue
  • Twitter
  • YouTube
  • 哔哩哔哩
  • Jenkins CLI
  • 社区论坛
  • Slack
微信公众号
 

晋ICP备15000444号-2

  • 博客
  • 教程
  • 活动
  • 合作伙伴
  • 关于我们
  • Jenkins 官网