extend choice parameter使用_Jenkins REST API 使用指南

1、Rest API的位置

参考文档:https://wiki.jenkins.io/display/JENKINS/Remote+access+API

请求的跟地址

http://hostname:port/jenkins

2、配置步骤

(1)新建一个用户,专门用来做rest api请求,只给必要的权限。

在这个指南中,新建了一个rest的用户。仅仅给指定job的build权限和overall的read权限。

用新建的用户登陆jenkins,在用户配置页获取API Token。见下图

706491bca84987036d94e82bbba52811.png

API Token

(2)修改全局安全设置(Configure Global Security)

取消掉“防止跨站点请求伪造”选项。否则使用API跨站点请求的时候,会返回403。

537bf47456f9f14db0970379a5936f84.png

取消防止跨站点请求伪造

(2)client认证方式

client是Basic Auth认证方式。认证信息是第一步中获取到的userId和API Token。有两种形式。

  • 直接将认证信息放到请求URL中
curl -x GET http://rest:00118045a097b9d50ffe1617d9c690c8@192.168.32.180:8080/jenkins/job/rest-test
  • 放到header中
curl -x GET http://192.168.32.180:8080/jenkins/job/rest-test -H Authorization: Basic encode_base64(userId:API_Token)

(3)启动带参数job的build

启动build是一个POST请求(即创建一个新的build资源)的形式触发的。参数的传递,是以表单的形式。需要特别指出:

  • 表单的key是json
  • 表单的value是一个json串。在这个json中,参数是都放到一个以parameter为key的ArrayObject中的。

比如启动rest-test job。这个job有两个参数,一个是选择参数(name="choice_param",value in ["a","b"]),另一个是字符串参数(name="string_param")。如下图

8c20f1158fcf19dc24e5a7d1cda22997.png

Job Param

POST请求:

curl -X POST  http://rest:00118045a097b9d50ffe1617d9c690c8@192.168.32.180:8080/jenkins/job/rest-test/build   -H 'Content-Type: application/x-www-form-urlencoded'   -H 'content-type: multipart/form-data;    -F 'json={"parameter":[{"name":"choice_param","value":"a"},{"name":"string_param","value":"ddd"}]}'

可以看到具体的参数也是一个JsonObject。name表示参数的名字,value表示参数的内容,String格式。

{  "name":"string_param",  "value":"ddd"}

如果参数需要传递文件应该如何操作?把rest-test的参数修改下,增加一个文件参数。如下

2ad15bfc88ed8f8127bcc04e6002ceca.png

带文件参数

这种情况下POST的请求如下

curl -X POST http://rest:00118045a097b9d50ffe1617d9c690c8@192.168.32.180:8080/jenkins/job/rest-test/build   -H 'Postman-Token: d4f3e2b8-8098-4899-8c6c-835c198e74fb'   -H 'content-type: multipart/form-data;   -F 'json={"parameter":[{"name":"choice_param","value":"a"},{"name":"string_param","value":"ddd"},{"name":"test-file.yaml","file":"file0"}]}'   -F file0=@/Users/peng/Desktop/test.yaml

可以看到,仍然是一个form表单的提交。只是需要增加一个key。然后传递文件。在原json key中增加一个file参数。

{  "name":"FILE_LOCATION_AS_SET_IN_JENKINS",  "file":"FILE_KEY_AS_SET_IN_FORM"}

异常说明:
1、选择参数如果携带了不在列表里边的value,会触发错误异常返回。比如这个地方传递

{  "name":"choice_param",  "value":"12"}

会触发异常,表示使用了未在选择列表里边的参数。
2、没有携带必须参数(不含有默认值的参数)也会触发异常
3、携带了没有在jenkins配置的参数也会触发异常
4、文件参数是非必须的。也就是说启动的时候,可以不携带文件参数,jenkins并不会立刻返回异常
5、传递的文件后缀名不需要和location_set_in_jenkins中的设置相同。jenkins会自动重命名成jenkins中的设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值