2016-01-06 105 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 –

相关问题