2

ジョブをリモートで作成できません (REST API + Postman)。

役職:

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

この構成の作成方法がわかりませんか? この設定は必要ですか? ジェンキンスジョブをリモートで作成するには?

4

1 に答える 1

9

いくつかの手順が必要です。

1) 取得

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

+header Authorization ................................ Basic YWRtaW46YWRtaW4=

ログインとパスワード(私の場合はadmin、admin)を入力すると、Authorizationフィールドの値が作成されました。

このクエリの後、私は次に見ました:

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

2) 次のステップ -> config.xml の作成

次のときに、別のジェンキンスジョブ(テストという名前)から手動で取得します。

得るhttp://localhost:8080/job/test/config.xml

+header ヘッダAuthorization .......... Basic YWRtaW46YWRtaW4=

3) ジョブの作成:

役職http://10.14.48.107:8080/createItem?name=NEWJOBNAME

+header Authorization ......... Basic YWRtaW46YWRtaW4=

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

+header Jenkins-Crumb ......... 2ad62df85d23d4c65a25c0b33fb0ef61

このヘッダー名と値は、最初のクエリ クラムから取得します

+本体->生->

<project>
<actions/>
<description/>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.29.0">
<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>

このステップの後、答えは何もありませんでしたが、ジョブはリモートで作成されました!

于 2018-03-02T11:01:34.453 に答える