2016-01-06 149 views
3

我實際上試圖對jenkins進行一些API調用來觸發構建。Jenkins從API觸發一個工作

其實,我米麪臨兩個問題:

在非限制環境在,在這裏我就不需要連接到觸發一個作業,我應該送一個POST請求:

http://address/job/jobId/build?delay=0sec 

使這個時候,我得到下面的輸出告訴我,我沒有令牌值:

<html> 

    <head> 

     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> 

     <title>Error 401 Invalid password/token for user: </title> 

    </head> 

    <body> 
     <h2>HTTP ERROR 401</h2> 

     <p>Problem accessing /job/Di%20Injector/build. Reason: 

      <pre> Invalid password/token for user: </pre> 
     </p> 
     <hr /> 
     <i> 
      <small>Powered by Jetty://</small> 
     </i> 
     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             

     <br/>             


    </body> 

</html> 

我在哪裏可以獲得這些信息?

在受限制的環境中,我必須先登錄才能獲得工作或觸發新構建。事實是,我不知道,我無法找到URL /動詞/參數發送到服務器來獲得訪問權限。

你能幫我嗎?

回答

6

解決方案是爲您的Jenkins用戶(或Jenkins構建用戶)生成API令牌。

轉到下面的鏈接,你的用戶:

http://YOUR_JENKINS_URL/user/YOUR_JENKINS_USER_ID/configure 

複製USER_ID從本節令牌:

enter image description here

,並推出以下命令觸發構建:

curl -X POST http://YOUR_JENKINS_USER_ID:[email protected]_JENKINS_URL/job/YOUR_JENKINS_JOB/build 

我對我的https做了一個快速測試詹金斯服務器。

沒有道理,我得到這個消息:

Authentication required 
<!-- 
You are authenticated as: anonymous 
Groups that you are in: 

Permission you need to have (but didn't): hudson.model.Hudson.Read 
... which is implied by: hudson.security.Permission.GenericRead 
... which is implied by: hudson.model.Hudson.Administer 
--> 

隨着USER_ID /令牌,構建與curl命令:)

+0

這個答案看起來非常不錯,但我一直有一個錯誤認證是必需的: -/ –

+0

讓我們打開一個聊天,討論的:) –

+0

http://chat.stackoverflow.com/rooms/99947/jenkins-api-token –

相關問題