Jenkins Java: 获取开始构建的用户
Jenkins Java: Get user who started the build
在http://[JENKINS_NAME]/job/[JOB_NAME]/[BUILD_NUMBER]/
之下
我可以看到 由用户 [USER_NAME] 启动。
我想从我的 java 应用程序中获取该用户名。
非常感谢任何帮助。
您可以进行 http 调用以获取所有这些详细信息。 URL 获取这些详细信息是:
http://<Jenkins URL>/job/<job name>/<build number>/api/json
休息电话后,您将得到这个 json。
{
"_class": "hudson.model.FreeStyleBuild",
"actions": [
{
"_class": "hudson.model.CauseAction",
"causes": [
{
"_class": "hudson.model.Cause$UserIdCause",
"shortDescription": "Started by user XXXXXX",
"userId": "xxx@yyy.com",
"userName": "ZZZZZZZZ"
}
]
},
{},
{
"_class": "jenkins.metrics.impl.TimeInQueueAction"
},
{},
{}
],
...
}
所以你所要做的就是解析这个 json 并获取 javavar['actions'][0]['causes'][0]['userName']
下的值。肯定只会那样。我可能不确定索引。你只是试着弄清楚。希望这有帮助。
大多数情况下,对于 jenkins 实例中的每个页面,您将拥有 REST API
link。请单击它以查看其余 api url 及其 url.
的输出
您可以从 Jenkins 环境中获取构建用户(即作为环境变量)。如果您使用 Jenkins 2 管道,例如:
管道 {
//rest of the pipeline
stages {
stage('Build Info') {
steps {
wrap([$class: 'BuildUser']) {
sh 'java -jar <your_java_app>.jar'
}
}
}
}
在您的 java 应用程序中,您应该能够使用 System.getenv("BUILD_USER")
获取环境变量,否则您可以将其作为 JVM arg 传递。例如:sh 'java -jar -DbuildUser=$BUILD_USER <your_java_app>.jar'
并在应用程序中获取 buildUser 系统 属性。
在旧版本的 Jenkins 上,您可以使用 Build User Vars Plugin 或 Env Inject 插件。就像这个问题的答案一样。
在http://[JENKINS_NAME]/job/[JOB_NAME]/[BUILD_NUMBER]/
我可以看到 由用户 [USER_NAME] 启动。
我想从我的 java 应用程序中获取该用户名。
非常感谢任何帮助。
您可以进行 http 调用以获取所有这些详细信息。 URL 获取这些详细信息是:
http://<Jenkins URL>/job/<job name>/<build number>/api/json
休息电话后,您将得到这个 json。
{
"_class": "hudson.model.FreeStyleBuild",
"actions": [
{
"_class": "hudson.model.CauseAction",
"causes": [
{
"_class": "hudson.model.Cause$UserIdCause",
"shortDescription": "Started by user XXXXXX",
"userId": "xxx@yyy.com",
"userName": "ZZZZZZZZ"
}
]
},
{},
{
"_class": "jenkins.metrics.impl.TimeInQueueAction"
},
{},
{}
],
...
}
所以你所要做的就是解析这个 json 并获取 javavar['actions'][0]['causes'][0]['userName']
下的值。肯定只会那样。我可能不确定索引。你只是试着弄清楚。希望这有帮助。
大多数情况下,对于 jenkins 实例中的每个页面,您将拥有 REST API
link。请单击它以查看其余 api url 及其 url.
您可以从 Jenkins 环境中获取构建用户(即作为环境变量)。如果您使用 Jenkins 2 管道,例如: 管道 {
//rest of the pipeline
stages {
stage('Build Info') {
steps {
wrap([$class: 'BuildUser']) {
sh 'java -jar <your_java_app>.jar'
}
}
}
}
在您的 java 应用程序中,您应该能够使用 System.getenv("BUILD_USER")
获取环境变量,否则您可以将其作为 JVM arg 传递。例如:sh 'java -jar -DbuildUser=$BUILD_USER <your_java_app>.jar'
并在应用程序中获取 buildUser 系统 属性。
在旧版本的 Jenkins 上,您可以使用 Build User Vars Plugin 或 Env Inject 插件。就像这个问题的答案一样。