ChatGPT软件写代码交付AI 评分 · 待评分AI 辅助编辑·未发现明显提示词注入风险n8n.io

GitHub Issue 自动分类并创建 Linear 任务

监听 GitHub 新 issue → AI 分类(类型/优先级/标签)→ 在 Linear 创建任务并回写 GitHub 评论

有一点经验步骤流程提示词
给谁
使用 n8n 的团队,需要自动化 GitHub issue 分类并与 Linear 同步
你会得到
新 issue 触发后自动完成 AI 分类、Linear 任务创建、GitHub 评论反馈
你需要
n8n · github · linear

硬约束

需要 n8n 实例;配置 GitHub 凭证(Webhook 触发与评论写入权限)、OpenAI 凭证(gpt-4.1-mini 等)、Linear 凭证(teamId 需替换为实际值)。模板中 GitHub owner/repository 字段为空,需按实际仓库填写。

他们做了什么

模板作者 itechnotion 在 n8n 中构建了一个工作流:通过 GitHub Webhook 监听新 issue,使用 OpenAI 模型进行自动分类(Bug/Feature/Question、优先级 1-4、生成标签),经 JavaScript 格式化后,在 Linear 创建对应任务,并向 GitHub issue 回写分类结果评论。

效果如何

作者报告该工作流可实现:消除手动分类工作、保持分类一致性、加速响应时间、自动同步 GitHub 与 Linear、提升团队可见性。(来源:模板描述,未经验证)

值得知道

模板中 GitHub owner/repository 和 Linear teamId 为占位符,必须替换为实际值。AI 输出经 JSON 解析和容错处理,无效时默认优先级为 Medium。本站未实测该工作流,实际运行需验证各节点凭证权限和 Webhook 可达性。

n8n 工作流模板

结构已检查 · 未实际运行

下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。

配置与测试清单

需要绑定的凭证

  • 导入后按各需鉴权节点绑定你自己的凭证;本附件不含原作者密钥。

需要替换的配置

  • 源模板来自 n8n 公开库 #14357(约 13 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
  • Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。

测试输入与预期结果

  • 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
  • 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。

模板处理说明

  • 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
  • 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。

模板获取日期: 2026-10-24

步骤

  1. 配置触发器与过滤

    在 n8n 中配置 Github Trigger 节点:选择仓库,订阅 issues 和 issue_comment 事件。添加 If 节点,条件为 $json.body.action 等于 'opened',仅处理新打开的 issue。添加 Edit Fields(Set)节点,提取并映射字段:title = $json.body.issue.title,description = $json.body.issue.body,issue_url = $json.body.issue.url,author = $json.body.issue.user.login。

  2. AI 分类与格式化

    添加 Information Extractor 节点,连接 OpenAI Chat Model 子节点(模型可选 gpt-4.1-mini / gpt-4.1 / gpt-4)。在 Information Extractor 的指令字段粘贴分类提示词。添加 Code in JavaScript 节点,解析并规范化 AI 输出的 JSON,生成 priorityLabel、typeLabel 和 labels。添加 Merge 节点(mode: combineByPosition),将原始 issue 数据与格式化后的 AI 输出合并。

    运行提示词 · 来源原文。Information Extractor 节点的 text 参数字段

    =You are an AI issue triage assistant.
    
    STRICT RULES:
    - Output ONLY valid JSON
    - No explanation
    - No markdown
    - No extra text
    
    Classify the issue:
    
    type must be one of:
    Bug | Feature | Question
    
    priority must be a NUMBER:
    1 = Urgent
    2 = High
    3 = Medium
    4 = Low
    
    Also generate 2–4 short labels.
    
    Return format:
    
    {
      "type": "Bug",
      "priority": 1,
      "labels": ["crash", "login"]
    }
    
    Issue Title:
    {{ $json.title }}
    
    Issue Description:
    {{ $json.description }}

    运行提示词 · 来源原文。Code in JavaScript 节点的 jsCode 字段

    let output = $json.output;
    
    // 1. Parse if AI returned string
    if (typeof output === "string") {
      try {
        output = JSON.parse(output);
      } catch (e) {
        throw new Error("Invalid JSON from AI");
      }
    }
    
    // 2. Normalize values
    const priorityNum = Number(output.priority);
    
    // 3. Fallback safety
    const safePriority = [1,2,3,4].includes(priorityNum) ? priorityNum : 3;
    
    // 4. Priority label mapping
    const priorityMap = {
      1: "Urgent",
      2: "High",
      3: "Medium",
      4: "Low"
    };
    
    
    return [{
      ...$json,
    
      // Clean structured output
      output,
    
      // For Linear (number)
      priority: safePriority,
    
      // For UI / GitHub
      priorityLabel: priorityMap[safePriority],
      type: output.type,
      typeLabel: output.type,
    
      // Labels safe fallback
      labels: Array.isArray(output.labels) ? output.labels : []
    }];
  3. 创建任务与回写反馈

    添加 Linear 的 Create an issue 节点:title 使用原始 issue 标题,teamId 替换为实际 Linear 团队 ID,priorityId 使用格式化后的 priority 数值,description 使用 Merge 节点的 description。添加 GitHub 的 Create a comment on an issue 节点:operation 选择 createComment,issueNumber 引用 Github Trigger 的 issue 编号,body 使用模板回写分类结果。

    运行提示词 · 来源原文。GitHub Create a comment on an issue 节点的 body 字段

    =Thanks for opening this issue!
    
    Our AI triage system classified this as:
    
    Type: {{ $('Code in JavaScript').item.json.typeLabel }}
    Priority: {{ $('Code in JavaScript').item.json.priorityLabel }}
    
    A Linear task has been created for the team.

可复制提示词

搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限

这一段是提示词,页面不会在这里插入广告。

你正在搭建一个 n8n 工作流,用于自动处理 GitHub issue:触发新 issue → AI 分类 → Linear 任务 → GitHub 评论回写。请先确认你已配置 GitHub、OpenAI 和 Linear 的凭证,并知道目标仓库和 Linear teamId。

搭建前需准备:GitHub 仓库访问权限、OpenAI API Key、Linear teamId。

来源

Classify GitHub issues and create Linear tasks using OpenAI · itechnotion · n8n.io · 2026-03-26

留言与反馈

试过这个方法吗?分享效果、遇到的问题或改进建议。留言审核后公开,请勿填写敏感信息。

正在加载…

    相关用例