跳转到内容

Jira 集成

让你的智能体通过 Jira 管理问题、项目和工作流。借助 AI 驱动的自动化,你可以创建和更新问题、跟踪项目进度、管理分配,并简化项目管理流程。

在使用 Jira 集成之前,请确保你已具备:

  • 一个拥有有效订阅的 CrewAI AMP 账户
  • 一个具备相应项目权限的 Jira 账户
  • 通过 集成页面 连接了你的 Jira 账户
  1. 访问 CrewAI AMP Integrations
  2. 在 Authentication Integrations 部分找到 Jira
  3. 点击 Connect 并完成 OAuth 流程
  4. 授予问题和项目管理所需权限
  5. Integration Settings 复制你的 Enterprise Token
Terminal window
uv add crewai-tools
Terminal window
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"

或者将其添加到你的 .env 文件中:

CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token
jira/create_issue

说明: 在 Jira 中创建一个问题。

参数:

  • summary (string, required): 概要 - 问题的一行简短摘要。(示例:“打印机停止工作了”。)
  • project (string, optional): 项目 - 问题所属项目。如果未提供,默认使用用户的第一个项目。使用 Connect Portal Workflow Settings 让用户选择项目。
  • issueType (string, optional): 问题类型 - 如果未提供,默认为 Task。
  • jiraIssueStatus (string, optional): 状态 - 如果未提供,默认为项目的第一个状态。
  • assignee (string, optional): 指派人 - 如果未提供,默认为已认证用户。
  • descriptionType (string, optional): 描述类型 - 选择描述类型。
    • 选项:description, descriptionJSON
  • description (string, optional): 描述 - 问题的详细说明。仅当 descriptionType = description 时显示此字段。
  • additionalFields (string, optional): 额外字段 - 以 JSON 格式指定其他应包含的字段。使用 Connect Portal Workflow Settings 让用户选择要更新的 Issue Fields。
    {
    "customfield_10001": "value"
    }
jira/update_issue

说明: 更新 Jira 中的一个问题。

参数:

  • issueKey (string, required): 问题键(示例:“TEST-1234”)。
  • summary (string, optional): 概要 - 问题的一行简短摘要。(示例:“打印机停止工作了”。)
  • issueType (string, optional): 问题类型 - 使用 Connect Portal Workflow Settings 让用户选择问题类型。
  • jiraIssueStatus (string, optional): 状态 - 使用 Connect Portal Workflow Settings 让用户选择状态。
  • assignee (string, optional): 指派人 - 使用 Connect Portal Workflow Settings 让用户选择指派人。
  • descriptionType (string, optional): 描述类型 - 选择描述类型。
    • 选项:description, descriptionJSON
  • description (string, optional): 描述 - 问题的详细说明。仅当 descriptionType = description 时显示此字段。
  • additionalFields (string, optional): 额外字段 - 以 JSON 格式指定其他应包含的字段。
jira/get_issue_by_key

说明: 通过键获取 Jira 中的问题。

参数:

  • issueKey (string, required): 问题键(示例:“TEST-1234”)。
jira/filter_issues

说明: 使用筛选条件搜索 Jira 中的问题。

参数:

  • jqlQuery (object, optional): 以析取范式表示的筛选条件,即由若干 AND 组组成的 OR。
    {
    "operator": "OR",
    "conditions": [
    {
    "operator": "AND",
    "conditions": [
    {
    "field": "status",
    "operator": "$stringExactlyMatches",
    "value": "Open"
    }
    ]
    }
    ]
    }
    可用运算符:$stringExactlyMatches, $stringDoesNotExactlyMatch, $stringIsIn, $stringIsNotIn, $stringContains, $stringDoesNotContain, $stringGreaterThan, $stringLessThan
  • limit (string, optional): 限制结果数量 - 限制返回的问题最大数量。若留空,默认值为 10。
jira/search_by_jql

说明: 在 Jira 中通过 JQL 搜索问题。

参数:

  • jqlQuery (string, required): JQL 查询(示例:“project = PROJECT”)。
  • paginationParameters (object, optional): 分页结果的分页参数。
    {
    "pageCursor": "cursor_string"
    }
jira/update_issue_any

说明: 更新 Jira 中的任意问题。请先使用 DESCRIBE_ACTION_SCHEMA 获取此函数的属性 schema。

参数: 无特定参数 - 请先使用 JIRA_DESCRIBE_ACTION_SCHEMA 获取预期的 schema。

jira/describe_action_schema

说明: 获取某个问题类型的预期 schema。如果没有其他函数匹配你想操作的问题类型,请先使用此函数。

参数:

  • issueTypeId (string, required): 问题类型 ID。
  • projectKey (string, required): 项目键。
  • operation (string, required): 操作类型值,例如 CREATE_ISSUE 或 UPDATE_ISSUE。
jira/get_projects

说明: 获取 Jira 中的项目。

参数:

  • paginationParameters (object, optional): 分页参数。
    {
    "pageCursor": "cursor_string"
    }
jira/get_issue_types_by_project

说明: 获取 Jira 中某个项目的问题类型。

参数:

  • project (string, required): 项目键。
jira/get_issue_types

说明: 获取 Jira 中的所有问题类型。

参数: 不需要参数。

jira/get_issue_status_by_project

说明: 获取某个项目的所有问题状态。

参数:

  • project (string, required): 项目键。
jira/get_all_assignees_by_project

说明: 获取某个项目的所有指派人。

参数:

  • project (string, required): 项目键。
from crewai import Agent, Task, Crew
from crewai import Agent, Task, Crew
# Create an agent with Jira capabilities
jira_agent = Agent(
role="Issue Manager",
goal="Manage Jira issues and track project progress efficiently",
backstory="An AI assistant specialized in issue tracking and project management.",
apps=['jira'] # All Jira actions will be available
)
# Task to create a bug report
create_bug_task = Task(
description="Create a bug report for the login functionality with high priority and assign it to the development team",
agent=jira_agent,
expected_output="Bug report created successfully with issue key"
)
# Run the task
crew = Crew(
agents=[jira_agent],
tasks=[create_bug_task]
)
crew.kickoff()
issue_coordinator = Agent(
role="Issue Coordinator",
goal="Create and manage Jira issues efficiently",
backstory="An AI assistant that focuses on issue creation and management.",
apps=['jira']
)
# Task to manage issue workflow
issue_workflow = Task(
description="Create a feature request issue and update the status of related issues",
agent=issue_coordinator,
expected_output="Feature request created and related issues updated"
)
crew = Crew(
agents=[issue_coordinator],
tasks=[issue_workflow]
)
crew.kickoff()