如何通过api获取所有jenkins用户 [英] how to get all the jenkins users through api
问题描述
我正在尝试使用 api 获取 jenkins 中的所有用户.
例如,我在 postman 中点击了以下命令,它显示了 jenkins 中的所有工作.
网址 = 192.168.195.150:8080/api/json?pretty=true
结果:
<代码>{"_class": "hudson.model.Hudson",分配的标签":[{姓名":主人"}],模式":正常","nodeDescription": "Jenkins 主节点",节点名称":","numExecutors": 2,描述":空,工作": [{"_class": "hudson.model.FreeStyleProject","name": "Apache_kafka_Consumer_Info","url": "http://192.168.192.198:8080/job/Apache_kafka_Consumer_Info/",颜色":蓝色"},{"_class": "hudson.model.FreeStyleProject","name": "Apache_Kafka_Zookeeper_Start","url": "http://192.168.192.198:8080/job/Apache_Kafka_Zookeeper_Start/",红色"},{"_class": "hudson.model.FreeStyleProject","name": "Apache_Kafka_Zookeeper_Status","url": "http://192.168.192.198:8080/job/Apache_Kafka_Zookeeper_Status/",颜色":蓝色"},{"_class": "hudson.model.FreeStyleProject","name": "AWS_Lambda","url": "http://192.168.192.198:8080/job/AWS_Lambda/",颜色":蓝色"},{"_class": "hudson.model.FreeStyleProject","name": "Input_Validation","url": "http://192.168.192.198:8080/job/Input_Validation/",颜色":蓝色"},{"_class": "hudson.model.FreeStyleProject","name": "登录服务器-CI","url": "http://192.168.192.198:8080/job/loginserver-CI/",颜色":蓝色"},{"_class": "hudson.maven.MavenModuleSet","name": "登录服务器-CI-1","url": "http://192.168.192.198:8080/job/loginserver-CI-1/",颜色":蓝色"},{"_class": "hudson.maven.MavenModuleSet","name": "登录服务器-CI-2","url": "http://192.168.192.198:8080/job/loginserver-CI-2/",颜色":蓝色"},{"_class": "hudson.maven.MavenModuleSet","name": "登录服务器-CI-3","url": "http://192.168.192.198:8080/job/loginserver-CI-3/",颜色":蓝色"},{"_class": "hudson.model.FreeStyleProject","name": "M_test","url": "http://192.168.192.198:8080/job/M_test/",颜色":蓝色"},{"_class": "hudson.model.FreeStyleProject","name": "参数","url": "http://192.168.192.198:8080/job/parameter/",颜色":蓝色"},{"_class": "hudson.model.FreeStyleProject","name": "Remote_Deploy","url": "http://192.168.192.198:8080/job/Remote_Deploy/",颜色":蓝色"},{"_class": "hudson.model.FreeStyleProject","name": "Remote_Deploy_1","url": "http://192.168.192.198:8080/job/Remote_Deploy_1/",颜色":蓝色"},{"_class": "hudson.model.FreeStyleProject","name": "Tomcat_Status","url": "http://192.168.192.198:8080/job/Tomcat_Status/",颜色":黄色"},{"_class": "hudson.model.FreeStyleProject","name": "Version_Check","url": "http://192.168.192.198:8080/job/Version_Check/",颜色":蓝色"}],整体负载":{},主视图":{"_class": "hudson.model.AllView","name": "全部","url": "http://192.168.192.198:8080/"},quietingDown":假,"slaveAgentPort": -1,未标记的负载":{"_class": "jenkins.model.UnlabeledLoadStatistics"},useCrumbs":真的,useSecurity":真,意见":[{"_class": "hudson.model.AllView","name": "全部","url": "http://192.168.192.198:8080/"}]}
如何修改该 Url 以便我可以列出 Jenkins 中的所有用户?
如果列出用户权限以及分配给每个用户的作业会更好.
您可以使用以下方法获取用户列表:-
https:///asynchPeople/api/xml?depth=1
使用 jenkinsfile 中的以下代码获取所有 Jenkins 用户:-
import hudson.model.UserUser.getAll().each { 用户 ->打印用户}
有关详细信息,请参阅链接:>
I'm trying to get all the user in jenkins by using api .
For example I hit the following command in postman and it is showing me all the jobs in jenkins .
Url = 192.168.195.150:8080/api/json?pretty=true
Result:
{
"_class": "hudson.model.Hudson",
"assignedLabels": [
{
"name": "master"
}
],
"mode": "NORMAL",
"nodeDescription": "the master Jenkins node",
"nodeName": "",
"numExecutors": 2,
"description": null,
"jobs": [
{
"_class": "hudson.model.FreeStyleProject",
"name": "Apache_kafka_Consumer_Info",
"url": "http://192.168.192.198:8080/job/Apache_kafka_Consumer_Info/",
"color": "blue"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "Apache_Kafka_Zookeeper_Start",
"url": "http://192.168.192.198:8080/job/Apache_Kafka_Zookeeper_Start/",
"color": "red"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "Apache_Kafka_Zookeeper_Status",
"url": "http://192.168.192.198:8080/job/Apache_Kafka_Zookeeper_Status/",
"color": "blue"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "AWS_Lambda",
"url": "http://192.168.192.198:8080/job/AWS_Lambda/",
"color": "blue"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "Input_Validation",
"url": "http://192.168.192.198:8080/job/Input_Validation/",
"color": "blue"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "loginserver-CI",
"url": "http://192.168.192.198:8080/job/loginserver-CI/",
"color": "blue"
},
{
"_class": "hudson.maven.MavenModuleSet",
"name": "loginserver-CI-1",
"url": "http://192.168.192.198:8080/job/loginserver-CI-1/",
"color": "blue"
},
{
"_class": "hudson.maven.MavenModuleSet",
"name": "loginserver-CI-2",
"url": "http://192.168.192.198:8080/job/loginserver-CI-2/",
"color": "blue"
},
{
"_class": "hudson.maven.MavenModuleSet",
"name": "loginserver-CI-3",
"url": "http://192.168.192.198:8080/job/loginserver-CI-3/",
"color": "blue"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "M_test",
"url": "http://192.168.192.198:8080/job/M_test/",
"color": "blue"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "parameter",
"url": "http://192.168.192.198:8080/job/parameter/",
"color": "blue"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "Remote_Deploy",
"url": "http://192.168.192.198:8080/job/Remote_Deploy/",
"color": "blue"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "Remote_Deploy_1",
"url": "http://192.168.192.198:8080/job/Remote_Deploy_1/",
"color": "blue"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "Tomcat_Status",
"url": "http://192.168.192.198:8080/job/Tomcat_Status/",
"color": "yellow"
},
{
"_class": "hudson.model.FreeStyleProject",
"name": "Version_Check",
"url": "http://192.168.192.198:8080/job/Version_Check/",
"color": "blue"
}
],
"overallLoad": {},
"primaryView": {
"_class": "hudson.model.AllView",
"name": "all",
"url": "http://192.168.192.198:8080/"
},
"quietingDown": false,
"slaveAgentPort": -1,
"unlabeledLoad": {
"_class": "jenkins.model.UnlabeledLoadStatistics"
},
"useCrumbs": true,
"useSecurity": true,
"views": [
{
"_class": "hudson.model.AllView",
"name": "all",
"url": "http://192.168.192.198:8080/"
}
]
}
How can I modify that Url so that I can list out all the users in Jenkins ?
It would be more better if it list out user permissions along with the jobs allocated to each user.
You can get the list of Users using below:-
https://<yourjenkins>/asynchPeople/api/xml?depth=1
Get all the Jenkins user using the below code in jenkinsfile:-
import hudson.model.User
User.getAll().each { user ->
println user
}
Please refer the link for more information:
这篇关于如何通过api获取所有jenkins用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!