You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Python从Jira获取指定工单的Tag与Sprint值?

获取Jira工单的标签(Tags)和Sprint值

Got it, let's tweak your existing code to pull in the tags (which Jira calls labels) and Sprint details you're missing. Here's how to do it step by step:

1. 理解Jira字段对应关系

  • 你说的"Tag"在Jira里对应的是labels字段,它是一个字符串列表(一个工单可以绑定多个标签)
  • Sprint字段是一个Sprint对象,不是简单的文本值,所以需要访问它的属性(比如nameidstate等)来获取具体信息

2. 修改后的完整代码

import jira.client
from jira.client import JIRA

# 初始化JIRA客户端
options = {'server': 'https://example.com', 'verify': False}
jira = JIRA(options, basic_auth=('user', 'password'))

# 查询当前活跃Sprint的工单
issues_in_project = jira.search_issues('project=11372 AND SPRINT not in closedSprints() AND sprint not in futureSprints()')

# 遍历工单并打印所需字段
for issue in issues_in_project:
    # 处理标签(Tags):如果工单无标签,返回友好提示
    tags = issue.fields.labels or []
    tags_display = ', '.join(tags) if tags else '无标签'
    
    # 处理Sprint信息:兼容无Sprint分配的工单
    sprint_display = '未分配Sprint'
    if hasattr(issue.fields, 'sprint') and issue.fields.sprint:
        sprint = issue.fields.sprint
        # 按需提取Sprint属性,这里示例包含名称、ID和状态
        sprint_display = f"{sprint.name} (ID: {sprint.id}, 状态: {sprint.state})"
    
    # 打印所有目标字段
    print(f"工单Key: {issue.key}")
    print(f"摘要: {issue.fields.summary}")
    print(f"经办人: {issue.fields.assignee.displayName if issue.fields.assignee else '无经办人'}")
    print(f"报告人: {issue.fields.reporter.displayName if issue.fields.reporter else '无报告人'}")
    print(f"更新时间: {issue.fields.updated}")
    print(f"标签(Tags): {tags_display}")
    print(f"Sprint信息: {sprint_display}")
    print("-" * 50)  # 分隔线,提升阅读体验

关键细节说明

  • 标签处理issue.fields.labels返回列表格式的标签集合,用join转成逗号分隔的字符串更易读;同时处理了无标签的边界情况,避免输出空白内容。
  • Sprint处理:部分工单可能未分配Sprint,所以先通过hasattr判断字段是否存在,再检查是否有有效值。Sprint对象常用属性包括:
    • name: Sprint名称(例如"Sprint 2024-Q3-1")
    • id: Sprint的内部唯一ID
    • state: Sprint状态(例如"ACTIVE"、"CLOSED")
    • startDate/endDate: Sprint的开始/结束时间
  • 空值兼容:对经办人、报告人等字段做了空值判断,避免因字段缺失导致代码报错。

内容的提问来源于stack exchange,提问作者Himanshu Pant

火山引擎 最新活动