知道如何查询 jenkins 来获取运行特定 GIT 存储库的所有作业的列表吗?或者列出所有作业以及他们正在使用的 GIT 源代码?
谢谢,
我的目标是在 Jenkins 运行的脚本中询问 Jenkins 服务器的问题(特别是当它在远程代理上运行时)。我想在 REST API 中使用 Perl 或 Python 脚本。我想问一下Jenkins服务器知道的数据。
在我的特定情况下,我想要一个不同项目的最近成功构建的构建显示名称。我想在没有用户名/密码凭据的情况下执行此操作。JENKINS_SERVER_COOKIE
当我将 Jenkins REST API 用于基于 GET 的请求时,我希望能够将环境变量用作凭据作为 cookie 或标头。
那可能吗?如果不是,环境变量是做什么JENKINS_SERVER_COOKIE
用的?
谢谢!
我正在构建一个python脚本来为Jenkins作业提取构建历史数据.我已成功使用Requests库来检索json输出,输入数据帧并报告.
我注意到它只是拉动了最后的100个版本,看起来像默认版本.我正在测试一个基本的curl调用,它可以很好地检索最后100个,看看我如何检索所有构建.我一直在搜索谷歌并找到一个说要添加fetch_all_builds = True,但仍然只有100.
有谁知道如何通过API调用从作业中请求所有构建?
谢谢
我正在尝试获取管理员用户列表的列表以及 Jenkins 中的用户及其权限级别。
任何人都可以帮我提供任何可用的脚本吗?
我现在的詹金斯有很多工作。不同的文件夹,每个文件夹都有多个作业。我最近看到一个 Jenkins slave(它是自动缩放的)在特定时间向另一台服务器发送了太多请求。但是,如果不手动检查它们,我无法找到在特定时间运行哪些构建。有没有办法使用 API/Groovy 脚本获取这些信息?
我发现启用 CSRF 保护后,我可以发出带有 crumbs 标头的发布请求并用于username:PASSWORD
基本身份验证标头:
String basic = "<username>:<PASSWORD>";
HttpURLConnection c = (HttpURLConnection) new URL("https://host.com/jenkins/quietDown").openConnection();
c.setInstanceFollowRedirects(false);
c.setRequestMethod("POST");
c.addRequestProperty("Jenkins-Crumb", "<CRUMB>");
c.addRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString(basic.getBytes()));
c.getInputStream().close();
Run Code Online (Sandbox Code Playgroud)
或用于username:APITOKEN
基本身份验证标头,在这种情况下,不需要 crumbs 标头:
String basic = "<username>:<APITOKEN>";
HttpURLConnection c = (HttpURLConnection) new URL("https://host.com/jenkins/quietDown").openConnection();
c.setInstanceFollowRedirects(false);
c.setRequestMethod("POST");
c.addRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString(basic.getBytes()));
c.getInputStream().close();
Run Code Online (Sandbox Code Playgroud)
问题:
使用 Jenkins 2.164.3 和 Java 8。
我想创建一个在 jenkins 控制台上运行的 groovy 脚本,以列出作业定义以及使用的存储库和脚本路径(jenkinsfile),输出如下:
作业名称 -> git 仓库 -> 脚本路径
到目前为止,我能够列出作业名称和 git 存储库,但找不到获取脚本路径的方法。它似乎没有包含在 GitSCM 插件中,但我找不到通过 WorkflowJob 获取它的方法。这是我当前的代码:
Jenkins.instance.getAllItems(Job.class).each{
jobName = it.getName()
if(it instanceof FreeStyleProject){
return
}
scm = it.getTypicalSCM();
if (scm instanceof hudson.plugins.git.GitSCM) {
scm.getRepositories().each{
it.getURIs().each{
println(jobName +"-> "+ it.toString());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何检索脚本路径?
最近,我将詹金斯变成了https。这是我使用jenkinsapi的代码:
import jenkinsapi
from jenkinsapi.jenkins import Jenkins
from jenkinsapi.utils.requester import Requester
import requests
url = 'https://jenkinsd:443'
username = 'MyUser'
password = '123'
requests.packages.urllib3.disable_warnings()
jenkins = Jenkins(url, username, password)
jobs = jenkins.get_jobs()
for jobName in jobs:
print(jobName)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)
Run Code Online (Sandbox Code Playgroud)
我试过了:
jenkins = Jenkins(url, requester=Requester(username, password, baseurl=url, ssl_verify=False))
Run Code Online (Sandbox Code Playgroud)
要么:
jenkins = jenkinsapi.jenkins.Jenkins(url, username, password, requester =Requester(username, password, ssl_verify=False))
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
File "D:\Python34\lib\site-packages\requests-2.7.0-py3.4.egg\requests\adapters.py", line 415, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionRefusedError(10061, 'No connection could be …
Run Code Online (Sandbox Code Playgroud) 我正在使用詹金斯作为CI工具。我使用Restful api远程构建作业,但我也不知道如何远程获取测试结果。如果有人知道解决方案,我将不胜感激
我正在尝试使用 api 获取 jenkins 中的所有用户。
例如,我在 postman 中输入以下命令,它向我显示 jenkins 中的所有作业。
网址 =192.168.195.150:8080/api/json?pretty=true
结果:
{
"_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"
},
{ …
Run Code Online (Sandbox Code Playgroud) 我尝试调用Jenkins crumIssuer API,但出现以下错误。使用Jenkins 2.19.1版,而不使用2.73.1版
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /crumbIssuer/api/json. Reason:
<pre> Not Found</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a><hr/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我已经在Jenkins API中看到了这一点,并且我想了解这种模式的目的。我无法掌握的意义JobT
和RunT
。
Class Run<JobT extends Job<JobT,RunT>,RunT extends Run<JobT,RunT>>
有没有人有使用身份验证和 Java Script 参数化开始 jenkins 工作的示例?
它就像一个 curl 帖子,但我不确定如何准确地做到这一点,而且我找不到任何传递用户名和令牌以及参数的示例。
jenkins-api ×13
jenkins ×11
java ×2
python ×2
api ×1
automation ×1
csrf ×1
csrf-token ×1
generics ×1
git ×1
javascript ×1
jenkins-cli ×1
jobs ×1
junit ×1
postman ×1