mcpField
I
issue-triage

issue-triage

github.com/composio-community生产力17.1k466 次安装14 周前更新
代码仓库

关于 issue-triage

通过 Composio CLI 检查 Linear 和 Jira 待办、归类疑似重复项并更新问题的分诊技能,也涵盖 Bug 扫描及从 Sentry 到 Linear 的工作流。

主要功能

  1. 01查询 Linear 与 Jira 待办
  2. 02归类疑似重复问题
  3. 03设置标签、优先级和负责人
  4. 04Sentry 到 Linear 的跨工具流程
  5. 05向 Slack 发布分诊摘要

适用场景

  1. 01查找未分配或长期未更新的问题
  2. 02按严重程度分诊发布 Bug
  3. 03去重并分配问题负责人
  4. 04根据 Sentry 发现创建 Linear 问题

MCP 相关

该技能通过 Composio CLI 使用 Linear、Jira 和 Sentry 工具;内容未说明 MCP 服务连接。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/composio-community/awesome-codex-skills --skill issue-triage

安装后在 Claude Code 中输入/issue-triage确认已加载。

详细介绍

问题分诊(Linear / Jira)

使用 Composio CLI 在 Linear 或 Jira 中开展分诊会议和 Bug 集中排查。拉取待办列表,将重复项归类,添加标签,然后将整理好的列表交还给团队。

适用场景

  • 每周分诊:“哪些事项尚未分配、长期未更新,或缺少优先级?”
  • 发布后 Bug 集中排查:“将所有 P1/P2 Bug 归类、去重并分配负责人。”
  • 跨工具同步:Sentry → Linear、PagerDuty → Jira。

前提条件

curl -fsSL https://composio.dev/install | bash
composio login
composio link linear        # or: composio link jira

查找工具

composio search "list issues" --toolkits linear
composio search "search issues" --toolkits jira
composio tools list linear
composio tools list jira

常用 slug(使用 --get-schema 确认):

Linear

  • LINEAR_LIST_ISSUES
  • LINEAR_CREATE_ISSUE
  • LINEAR_UPDATE_ISSUE
  • LINEAR_CREATE_COMMENT

Jira

  • JIRA_SEARCH_FOR_ISSUES_USING_JQL
  • JIRA_CREATE_ISSUE
  • JIRA_EDIT_ISSUE
  • JIRA_ADD_COMMENT
  • JIRA_ASSIGN_ISSUE

分诊工作流

  1. 拉取待办列表中的一部分:
    # Linear
    composio execute LINEAR_LIST_ISSUES -d '{
      "filter": { "state": { "type": { "eq": "unstarted" } }, "assignee": { "null": true } },
      "first": 100
    }'
    
    # Jira
    composio execute JIRA_SEARCH_FOR_ISSUES_USING_JQL -d '{
      "jql": "project = APP AND statusCategory != Done AND assignee is EMPTY ORDER BY updated DESC",
      "maxResults": 100,
      "fields": ["summary","priority","labels","updated","reporter"]
    }'
    
  2. 按标题相似度和标签归类。 Agent 会在本地将可能重复的事项分组。
  3. 一次性应用更新(标签、优先级、负责人):
    composio execute LINEAR_UPDATE_ISSUE -d '{
      "id":"abc-123","priority":2,"labelIds":["label-bug","label-p1"],"assigneeId":"user-42"
    }'
    
    composio execute JIRA_EDIT_ISSUE -d '{
      "issueIdOrKey":"APP-482",
      "fields":{"priority":{"name":"High"},"labels":["bug","p1"]}
    }'
    
  4. 关联重复项,并添加评论,注明规范事项。
  5. 将变更摘要发布到 Slack,让团队了解本次集中排查的结果。

Bug 集中排查(发布后)

# Jira: every bug filed in the last 7 days, sorted by severity
composio execute JIRA_SEARCH_FOR_ISSUES_USING_JQL -d '{
  "jql":"type = Bug AND created >= -7d ORDER BY priority DESC, created ASC",
  "fields":["summary","priority","labels","reporter","components"]
}' | jq -r '.issues[] | "\(.fields.priority.name)\t\(.key)\t\(.fields.summary)"'

工作流文件

scripts/triage-linear.ts,使用 composio run --file scripts/triage-linear.ts 运行:

const { nodes: issues } = await execute("LINEAR_LIST_ISSUES", {
  filter: { state: { type: { eq: "unstarted" } }, assignee: { null: true } },
  first: 100
});

const stale = issues.filter(i => {
  const age = (Date.now() - new Date(i.updatedAt).getTime()) / 86400000;
  return age > 14;
});

for (const i of stale) {
  await execute("LINEAR_CREATE_COMMENT", {
    issueId: i.id,
    body: "Auto-triage: stale for 14+ days. Please assign or close."
  });
}

await execute("SLACK_SEND_MESSAGE", {
  channel: "triage",
  text: `Weekly triage: pinged ${stale.length} stale issues.`
});

跨工具同步:Sentry → Linear

composio run '
  const hot = await execute("SENTRY_LIST_A_PROJECTS_ISSUES", {
    organization_slug:"acme", project_slug:"api",
    query:"is:unresolved", sort:"freq", limit:5
  });
  for (const s of hot) {
    await execute("LINEAR_CREATE_ISSUE", {
      teamId: "TEAM_ID",
      title: `[Sentry] ${s.title}`,
      description: `${s.permalink}\nCount: ${s.count}`,
      labelIds: ["label-bug","label-from-sentry"]
    });
  }
'

故障排除

  • 字段名称未知 → composio execute <SLUG> --get-schema 会显示准确的筛选条件格式(Linear 使用嵌套对象;Jira 使用 JQL 字符串)。
  • Linear 返回 403 → 使用正确的工作区重新运行 composio link linear。
  • 缺少 Jira 自定义字段 → 在 fields 数组中明确请求这些字段。
  • 批量编辑触发速率限制 → 在 composio run 循环中插入 250ms 的休眠;不要使用 --parallel。

完整 CLI 参考:docs.composio.dev/docs/cli

评论

支持 Markdown