如何通过JIRA REST API为issue添加Flag标记并解决字段无法设置问题
核心问题原因
你之前调用通用issue更新接口失败,是因为该接口要求操作字段必须配置在issue编辑屏幕上,overrideScreenSecurity参数仅管理员账号调用时生效,普通用户使用无效果。而Flagged作为敏捷看板专属功能,有专门的普通用户可调用的API接口,无需管理员权限即可操作。
解决方案
方法1:使用Jira敏捷API专属标记端点(适用Jira Cloud/Server 7.0+版本)
该接口对应用户在看板/待办视图右键标记issue的操作,普通用户默认拥有调用权限,无需修改屏幕配置:
- 标记issue为阻碍(设置Flagged值为Impediment)
请求方法:POST
请求地址:https://<domain>/rest/agile/1.0/issue/<issuekey>/flag
请求体示例:{ "flag": true, "comment": "可选,添加标记备注" } - 取消issue标记
请求方法和地址同上,仅需将请求体中的flag值改为false即可。
方法2:旧版本Jira Server/Data Center适配(适用7.0以下版本)
如果是旧版本Jira,使用GreenHopper插件对应的接口即可:
- 标记为阻碍:POST请求
https://<domain>/rest/greenhopper/1.0/impediment/<issuekey> - 取消标记:DELETE请求
https://<domain>/rest/greenhopper/1.0/impediment/<issuekey>
Python调用示例
你可以直接使用requests库调用上述接口,参考代码如下:
import requests # 替换为你的实际配置 JIRA_DOMAIN = "your-jira-domain.com" ISSUE_KEY = "TEST-123" AUTH_EMAIL = "your-login-email@example.com" API_TOKEN = "your-jira-api-token" # 标记issue请求 url = f"https://{JIRA_DOMAIN}/rest/agile/1.0/issue/{ISSUE_KEY}/flag" headers = { "Accept": "application/json", "Content-Type": "application/json" } payload = {"flag": True} response = requests.post( url, headers=headers, json=payload, auth=(AUTH_EMAIL, API_TOKEN) ) # 校验结果 if response.status_code == 200: print("标记成功") else: print(f"标记失败,错误信息:{response.text}")
内容的提问来源于stack exchange,提问作者mithrandir
相关产品推荐
相关产品推荐

