You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JIRA Python API用名称关联Epic并指定经办人创建工单

实现方案

核心逻辑:JIRA API创建工单时,关联Epic和指定经办人必须使用对应ID,因此需要先通过名称查询到Epic的ID和经办人的用户ID,再用这些ID完成工单创建。

步骤1:初始化JIRA客户端

先确保安装jira库(执行pip install jira),然后初始化客户端:

from jira import JIRA

# 配置JIRA连接信息
jira_server = "https://your-jira-instance.com"
jira_username = "your-username"
jira_api_token = "your-api-token"  # 推荐用API Token,也可替换为账号密码

# 初始化JIRA客户端
jira = JIRA(server=jira_server, basic_auth=(jira_username, jira_api_token))

步骤2:通过名称查询Epic的ID

用JQL搜索匹配名称的Epic,替换项目KEY和目标Epic名称即可:

def get_epic_id_by_name(project_key, epic_name):
    # 精确匹配Epic名称用=,模糊匹配用~,根据需求调整
    jql = f'project = "{project_key}" AND issuetype = Epic AND summary = "{epic_name}"'
    epics = jira.search_issues(jql)
    if not epics:
        raise ValueError(f"未找到名称为 {epic_name} 的Epic")
    # 若存在同名Epic,这里默认取第一个,可自行添加筛选逻辑(比如按创建时间)
    return epics[0].id

步骤3:通过名称查询经办人的用户ID

调用search_users方法匹配用户名称:

def get_user_id_by_name(user_name):
    # 按显示名称搜索,也可改用username参数匹配登录名
    users = jira.search_users(displayName=user_name)
    if not users:
        raise ValueError(f"未找到名称为 {user_name} 的用户")
    # 处理重名情况,默认取第一个,可补充邮箱、部门等筛选条件
    return users[0].id

步骤4:创建工单并关联Epic、指定经办人

注意:Epic关联的自定义字段ID(customfield_XXXX)在不同JIRA实例中不一样,需要先确认:

  • 查询方法:JIRA网页端进入「设置」→「自定义字段」,找到「Epic链接」字段,查看URL中的ID(比如customfield_10001)

然后构造工单字段并创建:

def create_issue_with_epic_and_assignee(project_key, issue_summary, issue_desc, epic_name, assignee_name):
    # 获取必要的ID
    epic_id = get_epic_id_by_name(project_key, epic_name)
    assignee_id = get_user_id_by_name(assignee_name)
    
    # 构造工单字段
    issue_fields = {
        "project": {"key": project_key},
        "summary": issue_summary,
        "description": issue_desc,
        "issuetype": {"name": "Task"},  # 替换为你需要的工单类型,比如Story
        "assignee": {"id": assignee_id},
        "customfield_10001": epic_id  # 替换为你的Epic链接字段ID
    }
    
    # 创建工单
    new_issue = jira.create_issue(fields=issue_fields)
    print(f"工单创建成功,KEY: {new_issue.key}")
    return new_issue

调用示例

# 替换为你的实际参数
create_issue_with_epic_and_assignee(
    project_key="PROJ",
    issue_summary="用户导出功能开发",
    issue_desc="实现按时间范围导出用户数据的功能",
    epic_name="用户管理模块",
    assignee_name="张三"
)

注意事项

  • 若存在同名Epic或用户,建议在查询逻辑中添加额外筛选条件(如项目归属、邮箱),避免错误匹配。
  • 确保你的JIRA账号拥有搜索Epic、搜索用户、创建工单及关联Epic的权限。
  • Epic链接字段ID必须确认正确,否则无法完成关联。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:27:22