首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python和api4jenkins将参数传递给Jenkins的API?

如何使用Python和api4jenkins将参数传递给Jenkins的API?
EN

Stack Overflow用户
提问于 2022-07-27 15:00:14
回答 1查看 257关注 0票数 2

当使用Python3.10.2和Ubuntu 20.4和Jenkins 2.361一起使用api4jenkins 1.11作为API的包装时,我对Jenkins的API有问题。

我的主要问题是将参数传递给一个任务。我能够启动任务,我正在执行示例所指示的传递参数的操作,但是taks的执行不会打印参数。

Jenkins为每个用户配置了一个全局安全配置,这是一个用于启动任务的用户的配置:

我的任务名为Prueba4,任务安全配置如下:

现在,我只有参数客户机

我还启用了脚本执行:

唯一的步骤是这个shell命令:

代码语言:javascript
复制
echo Hello
echo $USER
echo $cliente

使用Python,我要这样做:

代码语言:javascript
复制
from api4jenkins import Jenkins
j = Jenkins('http://localhost:8080/', auth=('my_user', 'mypass'))

j.build_job('Prueba4', client="my cliente", token="my_token", delay='1sec')

因此,我找不到行echo $client没有显示我传递的参数的问题。将print添加到api4jenkins i可以识别它传递这个kwards:

代码语言:javascript
复制
method: POST
url +: http://localhost:8080/job/Prueba4/buildWithParameters
kwards: {'params': {'client': 'my_client'}, 'token': 'my_token', 'delay': '1sec'}, 'headers': {'Jenkins-Crumb': '81bec758701d0783a68f3ad4050e42c647953834f1c552120b194d6e8b989f52'}} 

我不知道我做错了什么。这是一个从python开始的不打印参数的执行:

我尝试使用CURL和Python的请求库,但我还无法使用它们提出请求。

希望有人能帮我。谢谢

编辑: Ok,我犯了一个愚蠢的错误,我真的需要传递一个字典,我正在直接添加变量,我忘了把它作为字符串发送,这是Jenkins不接受请求的真正原因。

EN

回答 1

Stack Overflow用户

发布于 2022-07-27 15:20:47

好的,我忘了在api4jenkins的Github页面中搜索问题页面,在那里我找到了本期。在那里,Sinutok于2021年9月7日评论了解决方案:

对不起,浪费了您的time....got it facepalm,如果有人需要的话,我会把我现在正在运行的代码作为示例

代码语言:javascript
复制
jenkins_server = api4jenkins.Jenkins('https://myjenkins.example.com:8443', auth=('someuser','the_api_token'),verify=False)
user = jenkins_server.me.exists()
version = jenkins_server.version
print(str(user))
print(str(version))
job = jenkins_server.get_job("API-TEST - JOB")
print(job)
lauf = job.build(TEXT1="C",TEXT2="lalala")
print(lauf)

Output:
True
2.277.4
<FreeStyleProject: https://myjenkins.example.com:8443/job/API-TEST%20-%20JOB/>
<QueueItem: https://myjenkins.example.com:8443/queue/item/1149/>

而jenkis作业的参数是:"C“(用于下拉框)和"lalala”(用于文本字段)。

编辑:好的,我犯了一个愚蠢的错误,我真的需要传递一个字典,我直接添加变量,我忘了把它作为字符串发送,Jenkins不接受请求的真正原因。这个问题帮我看清楚了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73140264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档