gpt4 book ai didi

python - 使用 REST 在 Jenkins 中添加构建信息

转载 作者:太空宇宙 更新时间:2023-11-03 15:15:13 24 4
gpt4 key购买 nike

有谁知道如何将构建信息添加到现有的 Jenkins 构建中?

我想做的是用构建代表的实际完整版本号替换 #1 构建号。我可以通过转到 http://MyJenkinsServer/job/[jobname]/[buildnumber]/configure 手动执行此操作

我试图通过查看它发送到服务器的内容来使用 chrome 对 header 进行逆向工程,我发现了以下内容:

Request URL:http://<server>/job/test_job/1/configSubmit
Request Method:POST
Status Code:200 OK

Request Headers view source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:192
Content-Type:application/x-www-form-urlencoded
Cookie:hudson_auto_refresh=false; JSESSIONID=qbn3q22phkbc12f1ikk0ssijb; screenResolution=1920x1200
Referer:http://<server>/job/test_job/1/configure
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4

Form Data view URL encoded
displayName:#1
description:test4
core:apply:true
json:{"displayName": "#1", "description": "test4", "": "test4", "core:apply": "true"}**

Response Headers view source
Content-Length:155
Content-Type:text/html;charset=UTF-8
Server:Jetty(8.y.z-SNAPSHOT)

这至少为我提供了 POST 所需的表单参数。因此,我想出了以下 python3 代码:

import requests
params={"displayName":"Hello World",
"description":"This is my description",
"":"This is my description",
"core:apply":"true"}

a = requests.post("http://myjenkinsserver/job/test_jira_job_update/1/configSubmit", data=params, auth=( username, pwd), headers={"content-type":"text/html;charset=UTF-8"} )
if a.raw.status != 200:
print("***ERROR***")
print(a.raw.status)
print(a.raw.reason)

但遗憾的是,由于以下错误而失败了:

***ERROR***
400
Nothing is submitted

知道我做错了什么吗?我解决这个问题的方法是完全错误的吗?

最佳答案

对其进行逆向工程有点令人困惑。您只需要在您的 POST 中提交 json 参数:

p = {'json': '{"displayName":"New Name", "description":"New Description"}'}
requests.post('http://jenkins:8080/job/jobname/5/configSubmit', data=p, auth=(user, token))

在我的测试中,以上内容用于使用 Jenkins 1.517 设置构建名称和描述。

(另外,我认为您不应该设置内容类型 header ,因为您应该提交表单编码数据。)

关于python - 使用 REST 在 Jenkins 中添加构建信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21701338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com