Trigger parameterized build with curl and crumb

前端 未结 7 857

I\'ve seen similar posts to this on SO, but not quite exactly what I am trying to do (or at least no full examples of a command to run).

I am trying to remotely trig

7条回答
  •  南笙
    南笙 (楼主)
    2020-12-03 01:55

    This worked for me, I tried to used solutions already mentioned in this page but they had to be adapted a bit due to (a) referer and (b) cookie. Jenkins version 2.204

    sh script:"""
    
    COOKIE_PATH=/tmp/cookie_jenkins_crumb.txt
    
    CRUMB=\$(curl -s -c \$COOKIE_PATH -H '${jenkins_referer}' 'https://useridhere:${jenkins_live_token}@jenkins.example.com/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)' )
    # https://support.cloudbees.com/hc/en-us/articles/219257077-CSRF-Protection-Explained
    # https://wiki.jenkins.io/display/JENKINS/Remote+access+API#RemoteaccessAPI-CSRFProtection
    # but a bit adjusted as it is not exactly usable as it is in the documentation page.
    # We discovered that the CRUMB should be identical because it
    # is paired with a cookie. Thus save the cookie, it is important.
    
    sed -i 's/ORGANIZATION/${PROJECT_NAME}/g' ${jenkins_credentials_json_template_file_path} 
    # a json file with labels for quick replacements.
    
    # cat ${jenkins_credentials_json_template_file_path}
    
    # https://support.cloudbees.com/hc/en-us/articles/360030526992-How-to-manage-Credentials-via-the-REST-API
    curl -s -b \$COOKIE_PATH -u useridhere:${jenkins_live_token} -H '${jenkins_referer}' -H \"\${CRUMB}\" -X POST --data-urlencode json@${jenkins_credentials_json_template_file_path} 'https://jenkins.example.com/credentials/store/system/domain/_/createCredentials'
    """
    

提交回复
热议问题