我正在尝试使用jenkins api为Jenkins版本设置自定义原因。
jenkins api有一个invoke()
方法,用于调用接收cause
参数的新构建。
# this is a jenkinsapi.Job method
invoke(self, securitytoken=None, block=False,
build_params=None, cause=None, files=None, delay=5):
cause
param的处理如下:
if cause:
build_params['cause'] = cause
我试图找出定义自定义原因时使用的格式。为了做到这一点,我首先使用jenkinsapi.Build
方法get_causes()
提取构建原因以查看其外观。
这会产生一个预期的字典列表(只有1个原因),例如:
[{'shortDescription': 'description of cause',
'userId': 'userid',
'userName': 'username'}]
有了这些知识,我尝试调用构建,同时将cause
指定为相同格式的字典列表,但是在收集这个新构建的原因后,这没有用,只有正常的默认值原因在那里。
所以,我的问题是如何创建自定义原因?
答案 0 :(得分:1)
我发现了两种添加自定义原因的方法,但只有一种方法适用于Jenkin的API。我仍然希望有另一种解决方案。
要使自定义cause
设置生效,我必须在每个Jenkin的工作中启用此设置:
启用该设置后,我能够使用将在控制台中显示的自定义原因触发作业。
job.invoke(securitytoken="asecuretoken", cause="A custom cause.")
我对这条路线的主要问题是它没有填写我从自定义插件中看到的信息量。这是我发现以这种方式使用原因的替代方案,但它需要更多的工作来实现。
我找到了一个很好的例子,可以根据REST请求自定义构建消息GitLab Jenkin's Plugin。