jenkinsapi icon indicating copy to clipboard operation
jenkinsapi copied to clipboard

Possible to support /wfapi

Open xpdable opened this issue 5 years ago • 1 comments

ISSUE TYPE
  • Feature Idea
Jenkinsapi VERSION
Jenkins VERSION
SUMMARY

As some mentioned in #764, user input is part of the job. Something I've done to automated Jenkins user input via /wfapi for our slack interaction. Refer to : http://<jenkins_host>///wfapi/

To approve, post to http://<jenkins_host>///wfapi/inputSubmit?inputId=<input_id> with payload data if you have more parameters accepts by input, e.g.

{'parameter': [
            {
                'name': 'adname', 
                'value': ad_account_mapping[d['user']['id']]
            },
            {
                'name': 'approved_by_slack_id',
                'value': d['user']['id']
            },
            {
                'name': 'slack_response_url',
                'value': d['response_url']
            }
            ]}

To deny, post to http://<jenkins_host>///input/<input_id>/abort

EXPECTED RESULTS

I'd liket to have some function wrapped here, so that I do not need to make a http request every time...

ACTUAL RESULTS
USEFUL INFORMATION
headers = {'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8'}
        build_url = approval_result+'wfapi/inputSubmit'
        querystring = {"inputId":"testid"}
        payload = {'json':json.dumps({'parameter': [
            {
                'name': 'p1', 
                'value': 'v1'
            },
            {
                'name': 'p2',
                'value': ''v2'
            }
            ]})}
        resp = requests.post(build_url, headers=headers, auth=('jenkins-user', 'jenkins-token'), data=payload, params=querystring)

xpdable avatar May 20 '20 06:05 xpdable

I also came across this issue, wfapi only supports the JSON API. One solution could be to have a simple converter between Python API and JSON API. I had a look at the responses and they are very similar, exept, e.g. Python API: JSON API None: null True: true False: false

solarjoe avatar Jul 09 '21 09:07 solarjoe