mcpField
L
linear

linear

github.com/alphaonedev生产力45 次安装
代码仓库

关于 linear

linear 是面向工程团队的 Linear API 技能,用于管理问题、周期、项目路线图和 SLA。它通过 GraphQL 操作数据,也支持将 Git 提交关联到问题。

主要功能

  1. 01创建、更新和查询问题
  2. 02管理周期与项目路线图
  3. 03关联 Git 提交与问题
  4. 04查询问题状态以跟踪 SLA
  5. 05通过 GraphQL API 执行操作

适用场景

  1. 01根据代码审查创建跟踪问题
  2. 02在冲刺规划时查询待办问题
  3. 03同步 Git 提交与 Linear 问题
  4. 04筛查并处理 SLA 违规问题

安装

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

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill linear

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

详细介绍

linear

用途

此技能可让 AI 与 Linear 的 API 交互,用于工程团队的 issue 跟踪、周期管理、项目路线图、Git 集成、SLA 监控和 API 驱动的工作流。

适用场景

在自动化工程工作流时使用此技能,例如根据代码变更创建 issue、更新项目路线图、跟踪工单的 SLA,或将 Git 提交与 Linear issue 同步。在涉及团队协作的场景中应用此技能,例如在冲刺规划期间查询 issue,或与 CI/CD 流水线集成。

核心功能

  • Issue 管理:使用 Linear 的 GraphQL API(https://api.linear.app/graphql)创建、更新和查询 issue。
  • 周期和项目管理:通过 cycleCreate 等 mutation 管理周期,并使用查询获取项目路线图。
  • Git 集成:通过 webhook 或 API 将 Git 提交关联到 issue;例如,将提交 SHA 与 issue ID 关联。
  • SLA 跟踪:通过查询 issue 状态和时间戳来监控服务级别协议。
  • API 访问:使用个人 API 密钥进行身份验证,并执行带筛选条件的 issue 获取等操作(例如,state: "todo")。
  • 配置格式:将 API 密钥存储在 $LINEAR_API_KEY 等环境变量中;请求的负载结构使用 JSON。

使用模式

执行任务时,务必先通过在环境中设置 $LINEAR_API_KEY 进行身份验证。查询数据时使用 GraphQL 查询;执行 mutation 时提供输入对象。创建 issue 的模式:身份验证 → 准备 mutation 负载 → 发送请求 → 处理响应。进行集成时,将 Git 工具结合使用,解析提交消息并映射到 Linear issue。发送请求前务必验证输入,例如确保 issue 标题少于 255 个字符。

常用命令/API

  • 查询 Issue:使用此 GraphQL 查询获取未关闭的 issue:
    query { issues(filter: { state: { name: { eq: "todo" } } }) { nodes { id title } } }
    
    通过 curl 发送:curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "above query"}'
  • 创建 Issue:执行此 mutation 来添加新 issue:
    mutation { issueCreate(input: { title: "Fix bug in login", description: "Details here" }) { issue { id } } }
    
    命令:curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "above mutation"}'
  • 更新项目路线图:先查询项目,然后执行 mutation:mutation { projectUpdate(id: "proj_123", name: "Updated Roadmap") { project { id } } }
  • Git 集成命令:要关联 Git 提交,请使用:git log --format="%H %s" | awk '{print $1}' | xargs -I {} curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "mutation { issueUpdate(id: \"iss_456\", branch: \"{}\") { issue { id } } }"}'
  • SLA 检查:查询:query { issues(filter: { createdAt: { gt: "2023-01-01" } }) { nodes { id slaViolated } } }

集成说明

从 Linear 账户设置中导出 $LINEAR_API_KEY,以完成身份验证设置。对于 Git 集成,请在 Linear 中配置 webhook,使其在 issue 更新时触发,并在脚本中解析负载(例如,使用 Python 的 requests 库)。配置格式:使用包含 LINEAR_API_KEY=your_key_here 的 .env 文件,然后在脚本中通过 os.environ.get('LINEAR_API_KEY') 加载。要与其他工具集成,可串联 API 调用;例如,在 Git 推送后运行脚本,查询 Linear issue 并更新它们。请通过在循环中添加延迟来遵守速率限制(例如,每分钟 100 个请求)。

错误处理

发送请求前,验证 $LINEAR_API_KEY,检查身份验证错误(例如,状态码为 401);如果验证失败,提示用户设置环境变量。对于 GraphQL 错误,解析响应中的 "errors" 字段(例如,如果 "message" 包含 "Invalid input",则验证负载,确保包含必需字段)。通过重试处理网络问题:使用带指数退避的循环,例如 for i in 1..3; do curl ...; if [ $? -ne 0 ]; then sleep $((2**i)); fi; done。对于 SLA 违规,检查问题是否返回空值,以捕获查询错误并记录下来。在代码中始终用 try-catch 块包装 API 调用,例如:

try { response = requests.post('https://api.linear.app/graphql', headers={'Authorization': f'Bearer {os.environ["LINEAR_API_KEY"]}'}, json={'query': '...'}) } catch e { print(f'Error: {e}') }

具体用法示例

  1. 根据代码审查自动创建问题:在 GitHub 中打开拉取请求时,使用此脚本创建 Linear 问题:设置 $LINEAR_API_KEY,然后运行 curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "mutation { issueCreate(input: { title: \"Review PR #123\", description: \"Fixes in branch main\" }) { issue { id } } }"}'。这样会将拉取请求关联到新问题,以便跟踪。
  2. 跟踪逾期问题的 SLA:查询并通知 SLA 违规情况:首先,导出 $LINEAR_API_KEY,然后执行 curl -H "Authorization: Bearer $LINEAR_API_KEY" -X POST https://api.linear.app/graphql -d '{"query": "query { issues(filter: { slaViolated: true }) { nodes { id title } } }"}' | jq '.data.issues.nodes' > overdue_issues.json。处理 JSON 以发送提醒,并确保标记超出 48 小时的问题。

图关系

  • 相关领域:"git"(用于提交集成)、"issues"(用于跟踪工作流)、"engineering"(用于团队管理)、"project"(用于路线图同步)。
  • 关联:此技能可通过 API 调用与 "git" 技能串联,实现自动关联;还可与 "engineering" 集成,构建更广泛的工具生态系统。

评论

支持 Markdown