JIRA是一个流行的项目管理工具,提供了REST API来以编程方式管理问题和工作流。要将问题状态从"已解决"更改为"已关闭",需要理解几个关键概念:
要将JIRA问题从"已解决"状态标记为"已关闭",需要执行以下步骤:
首先需要获取当前问题可用的状态转换:
GET /rest/api/2/issue/{issueIdOrKey}/transitions
示例响应:
{
"transitions": [
{
"id": "11",
"name": "关闭问题",
"to": {
"self": "http://your-jira-instance/rest/api/2/status/5",
"description": "问题已解决并关闭",
"iconUrl": "http://your-jira-instance/images/icons/statuses/closed.png",
"name": "已关闭",
"id": "5"
}
}
]
}
找到正确的转换ID后,执行POST请求来改变状态:
POST /rest/api/2/issue/{issueIdOrKey}/transitions
请求体示例:
{
"transition": {
"id": "11"
}
}
import requests
from requests.auth import HTTPBasicAuth
# JIRA配置
jira_url = "https://your-jira-instance.com"
username = "your_username"
password = "your_password_or_api_token"
issue_key = "PROJ-123"
# 1. 获取可用转换
transitions_url = f"{jira_url}/rest/api/2/issue/{issue_key}/transitions"
response = requests.get(
transitions_url,
auth=HTTPBasicAuth(username, password)
)
if response.status_code == 200:
transitions = response.json()["transitions"]
close_transition = next(
(t for t in transitions if t["to"]["name"] == "已关闭"),
None
)
if close_transition:
# 2. 执行关闭转换
transition_id = close_transition["id"]
transition_url = f"{jira_url}/rest/api/2/issue/{issue_key}/transitions"
transition_data = {
"transition": {
"id": transition_id
}
}
response = requests.post(
transition_url,
json=transition_data,
auth=HTTPBasicAuth(username, password),
headers={"Content-Type": "application/json"}
)
if response.status_code == 204:
print(f"问题 {issue_key} 已成功关闭")
else:
print(f"关闭失败: {response.status_code} - {response.text}")
else:
print("找不到'关闭'转换")
else:
print(f"获取转换失败: {response.status_code} - {response.text}")
这种自动化状态转换常用于:
没有搜到相关的沙龙