使用REST API远程创建Jenkins作业

问题描述 投票:0回答:1

我无法远程创建Job(REST API + Postman),我试试

POST:

http://localhost:8080/createItem?name=NEWJOB

要么

http://localhost:8080/job/NEWJOB/build

并始终有403错误(GET方法工作)。

在这里,我看到我需要为POST创建config.xml:

https://issues.jenkins-ci.org/browse/JENKINS-9410?focusedCommentId=204821&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-204821

我不明白如何创建此配置?我需要这个配置吗?如何远程创建jenkins Job?

rest jenkins jenkins-job-builder
1个回答
6
投票

它需要几个步骤:

1)GET

http://localhost:8080/crumbIssuer/api/json 

+标题授权.....................基本YWRtaW46YWRtaW4 =

授权字段的值是在我输入登录名和密码时创建的(admin,admin就是我的情况)。

在此查询后,我看到了下一个:

{
    "_class": "hudson.security.csrf.DefaultCrumbIssuer",
    "crumb": "2ad62df85d23d4c65a25c0b33fb0ef61",
    "crumbRequestField": "Jenkins-Crumb"
}

2)下一步 - >创建config.xml

我只是手动从另一个jenkins工作(命名测试)中取出它:

GET http://localhost:8080/job/test/config.xml

+标题头授权..............基本YWRtaW46YWRtaW4 =

3)创造工作:

POST http://10.14.48.107:8080/createItem?name=NEWJOBNAME

+标题授权........基本YWRtaW46YWRtaW4 =

+ header Content-Type ........... text / xml

+标题Jenkins-Crumb ......... 2ad62df85d23d4c65a25c0b33fb0ef61

我从第一个查询crumb中获取此标题名称和值

+正文 - > RAW->

<project>
<actions/>
<description/>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="[email protected]">
<displayName/>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
</properties>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders/>
<publishers/>
<buildWrappers/>
</project>

在这一步之后,我没有任何答案,但工作是远程创建的!

© www.soinside.com 2019 - 2024. All rights reserved.