Jira - 使用 Python 提交门户表单

问题描述 投票:0回答:1

我正在寻找一种使用 Python 提交门户表单的方法。例如,我在 https://instance.atlassian.net/servicedesk/customer/portal/1/group/1/create/1

有一个表格

我可以使用 email:token 进行身份验证,无论是否有 jira 模块,也会产生问题。但是,我想通过在门户上提交表单来创建问题。有没有办法使用 python 来做到这一点?可以使用或不使用 jira 模块

这里是我必须使用 jira 模块进行身份验证和创建问题的代码:

from jira import JIRA

jira_connection = JIRA(basic_auth=('[email protected]', 'tokenxxxxxxxxx'), server="https://myinstance.atlassian.net")

issue_dict = {
'project': {'key': 'TEST'},
'summary': 'Testing script',
'description': 'Testing script',
'issuetype': {'name': 'Service Request'},
}

new_issue = jira_connection.create_issue(fields=issue_dict)
print(new_issue)

这是不使用 jira 模块的代码:

import requests
import json

url = "https://myinstance.atlassian.net/rest/api/3/myself"

headers = {
"Authorization": "Basic <base64 encoded email:token>",
"Accept": "application/json"
}

response = requests.request( "GET", url, headers=headers )

print(json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": ")))

这是我正在尝试但收到 400 的帖子:

jira_load={
    "fields": {
        "description": {"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"Test description"}]}]},
        "summary": "Test summary",
        "project": {
            "key": "TEST"
        },
        "issuetype": {
            "name": "IT Help"
        },
    }
}
url = 'https://instance.atlassian.net/servicedesk/customer/portal/1/create/1'
r = requests.post(url, data=jira_load)
print ("HERE's the JSON RESPONSE\n\n ", r.status_code, r.headers)
print ("The response content is\n\n", r.content)
python jira python-jira
1个回答
0
投票

对于 Jira Service Management,您可以使用其 REST API: https://developer.atlassian.com/cloud/jira/service-desk/rest/intro/#jira-cloud-platform-apis 进行操作门户问题(创建 - https://developer.atlassian.com/cloud/jira/service-desk/rest/api-group-request/#api-rest-servicedeskapi-request-post)。我想这个 JIRA 库是开源的,可能没有 SD 操作(不确定它是什么)。

© www.soinside.com 2019 - 2024. All rights reserved.