可使用Jira API查询被其他项目阻塞的Jira事项,以下代码示例基于Python编写:
import json
import requests
base_url = 'https://your-jira-instance.com'
api_url = base_url + '/rest/api/2/search'
user = 'your_username'
password = 'your_password'
blocked_by_field = 'Blocked by' # 需要查询的阻塞字段
query = 'project = project_key and issuetype = Story and status != Closed' # 查询条件,需根据实际情况修改
# 定义函数,获取Jira API返回的数据
def get_data_from_jira_api(url, user, password, query):
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url,
auth=(user, password),
headers=headers,
data=json.dumps({"jql": query, "maxResults":1000, "fields":[blocked_by_field]}))
if response.status_code == 200:
return response.json()
else:
return None
# 获取被其他项目阻塞的Jira事项
def get_blocked_by_jira_stories():
data = get_data_from_jira_api(api_url, user, password, query)
if data:
stories = data.get('issues')
blocked_by_stories = [story for story in stories if story.get('fields').get(blocked_by_field)]
return blocked_by_stories
else:
return None
# 测试
if __name__ == '__main__':
blocked_by_stories = get_blocked_by_jira_stories()
if blocked_by_stories:
for story in blocked_by_stories:
print(story.get('key'), story.get('fields').get(blocked_by_field))
else:
print('No data returned from Jira API.')
以上代码示例中,使用了Jira API的search方法查询符合条件的Jira事项,通过指定maxResults参数可一次获取多条数据,避免了Jira API返回数据量过大时需要进行分页查询的情况。函数get_blocked_by_jira_stories()返回的是一个列表,包含多个字典,每个字典对应一条被阻塞的Jira事项。