How to disable a Jenkins job via curl?

前端 未结 5 1758
感动是毒
感动是毒 2020-12-10 02:24

I want to disable a Jenkins job by sending a post curl request to Jenkins.

I\'ve tried doing that using:

  1. curl -X POST http://:8080
相关标签:
5条回答
  • 2020-12-10 02:46

    The crumb error indicates you are using CSRF Protection. You need to include a proper crumb header in your request. The crumb can be obtained from the Jenkins API as described on the Jenkins wiki page linked above. The answer for "Trigger parameterized build with curl and crumb" shows the syntax to adding the crumb header in the curl request.

    0 讨论(0)
  • 2020-12-10 02:54

    No valid crumb means your Jenkins installation has a security option enabled which prevent requests send in a standard way to avoid one-click attacks. You can't use Jenkins CLI either, because it doesn't work yet.

    Here are the steps using curl (replace localhost with your Jenkins address):

    1. Note your user API Token (from /user/USER/configure).
    2. Get your crumb:

      CRUMB=$(curl -s 'http://USER:TOKEN@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
      
    3. Now you can disable the job by sending the crumb in the headers:

      curl -X POST -H "$CRUMB" http://USER:TOKEN@localhost:8080/<jobname>/disable
      

      If the above won't work for some reason, you may try to use -u USER:TOKEN instead.

    0 讨论(0)
  • 2020-12-10 03:06

    I found the first part of kenorb's solution worked for me, i.e. getting the crumb, but for the second part, curl did not like that syntax, it said:

    curl: (6) Couldn't resolve host 'http:'

    So I had to use the following syntax which worked:

    curl -H $CRUMB http://localhost:8080/<jobname>/disable -u USER:TOKEN

    0 讨论(0)
  • 2020-12-10 03:07

    setup jenkins's "global security settings": Uncheck "Prevent Cross Site Request Forgery exploits"

    0 讨论(0)
  • 2020-12-10 03:07

    The below is working for me

    curl -X POST http://<servername>/job/jobname/disable
    

    Make sure the user access to do that.

    0 讨论(0)
提交回复
热议问题