2017-07-02 72 views
1

我想了解如何使用Jenkins的REST API在JIRA中創建新門票。有什麼限制或特別的事情我應該知道? 我將編寫一個Python腳本,它將解析構建日誌,然後在JIRA項目中創建一個新票據。使用REST api在JIRA中打開新門票

我檢查了插件,但其中大多數只能更新現有的門票。 感謝

+2

只是一個正常的API調用來創建一個JIRA,不知道你的擔心。 – chenrui

+0

只需選擇正確的API([Cloud](https://docs.atlassian.com/jira/REST/cloud)與[Server](https://docs.atlassian.com/jira/REST/server/) )併發送帶有參數化內容的POST請求到'/ rest/api/2/issue'端點。 –

回答

0

有文檔here有關JSON模式和一些示例JSON這需要你的POST請求的身體去/rest/api/2/issue https://docs.atlassian.com/jira/REST/cloud/#api/2/issue-createIssue

這是一個基本python3腳本進行POST請求

import requests, json 
from requests.auth import HTTPBasicAuth 

base_url = "myjira.example.com" # The base_url of the Jira insance. 
auth_user = "simon"     # Jira Username 
auth_pass = "N0tMyRe3lP4ssw0rd"  # Jira Password 
url  = "https://{}/rest/api/2/issue".format(base_url) 

# Set issue fields in python dictionary. See docs and comment below regarding available fields 
fields = { 
    "summary": "something is wrong" 
} 

payload = {"fields": fields} 
headers = {"Content-Type": "application/json"} 
response = requests.post(
    url, 
    auth=(auth_user, auth_pass), 
    headers=headers, 
    data=json.dumps(payload)) 
print("POST {}".format(url)) 
print("Response {}: {}".format(response.status_code, response.reason)) 

_json = json.loads(response.text) 

使用this HTTP請求庫蟒蛇
http://docs.python-requests.org/en/master/

您可以在同一個項目中使用現有問題的ID或密鑰向/rest/api/2/issue/{issueIdOrKey}/editmeta發出GET請求,因爲您將通過API創建的問題將用於獲取所有可以設置的字段以及哪些字段的列表是必要的。

https://docs.atlassian.com/jira/REST/cloud/#api/2/issue-getEditIssueMeta