Отправить POST-запрос Jira с помощью API-токена - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть рабочая curl команда для создания билета Jira, которую я не могу воспроизвести в python3.HTTPBasicAuth и HTTPDigestAuth методы из аутентификации с запросами Python doc не работают с ключом API.

Пожалуйста, найдите упомянутый код curl и python ниже.

Bash:

curl -vL -u "my@email:API_KEY" -X POST -H "Content-Type:application/json" --data "$DATA" https://jira-url/rest/api/2/issue/

Python:

headers = {
    'Content-Type': 'application/json',
    'X-Atlassian-Token': 'no-check'
}

url = https://jira-url

response = requests.post('{0}/rest/api/2/issue/'.format(url),
                         headers=headers,
                         data=data,
                         auth=requests.auth.HTTPDigestAuth(user_email, api_key),
                         verify=False,
                         allow_redirects=True)

Я получаю сообщение об ошибке 400 Bad Request for url: URL

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете попробовать это:

headers = {
    'X-Atlassian-Token': 'no-check'
}

data = {"var1": "val1", "var2": "val2"}

url = https://jira-url

response = requests.post('{0}/rest/api/2/issue/'.format(url),
                         headers=headers,
                         json=data,
                         auth=requests.auth.HTTPDigestAuth(user_email, api_key),
                         verify=False,
                         allow_redirects=True)

(я заменил аргумент data на json, и я удалил Content-Type из заголовков, так как requests автоматически его обнаружит).

Вы хотите, чтобы data был объектом Python, а не строкой json.

...