Jenkins Git Plugin does not receive posted Parameters

后端 未结 2 1006
再見小時候
再見小時候 2021-01-02 13:35

I am trying to use Node.js to programmatically build Jenkins jobs that take Git parameters.

I am sending the parameters as post data, as shown below. However, no ma

2条回答
  •  生来不讨喜
    2021-01-02 14:01

    try this, it works for me:

    var auth = 'Basic yourUserToken';
    var jobOptions = {
        url:'jenkinsHostName:8080/jenkins/job/jobName/' +'build',
        method: 'POST',
        port: 8080
    };
    
    var parameter = {"parameter": [{"name":"ref", "value":"origin/master"}]};
    var postData;
    if (!_.isEmpty(parameter)) {
    
        var jsonParametersString = JSON.stringify(parameter);
        jobOptions.headers = {
            'Authorization':auth,
           'Content-Type': 'application/x-www-form-urlencoded',
        };
    
        jobOptions.url += '?token=jobRemoteTriggerToken';
        postData = "json="+jsonParametersString;
    
        console.log("postData = " + postData);
    }   
    var callback;
    var responseCB;
    makeRequest(jobOptions, callback, responseCB, postData) ;
    

    It is based on your code. I removed the querystring - it seems that it returned an empty string when performed on the parameters object. I change /buildWithParameters to /build - it didn't work the other way.

    In addition, verify that when you pass the 'Content-Length' in the header, it doesn't truncated your json parameters object (I removed it ).

    also note that I used the user API token, that you can get at http://yourJenkinsUrl/me/configure and click the "Shown API Token" button.

提交回复
热议问题