关于 linear
linear 是面向工程团队的 Linear API 技能,用于管理问题、周期、项目路线图和 SLA。它通过 GraphQL 操作数据,也支持将 Git 提交关联到问题。
主要功能
- 01创建、更新和查询问题
- 02管理周期与项目路线图
- 03关联 Git 提交与问题
- 04查询问题状态以跟踪 SLA
- 05通过 GraphQL API 执行操作
适用场景
- 01根据代码审查创建跟踪问题
- 02在冲刺规划时查询待办问题
- 03同步 Git 提交与 Linear 问题
- 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:
通过 curl 发送:query { issues(filter: { state: { name: { eq: "todo" } } }) { nodes { id title } } }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}') }
具体用法示例
- 根据代码审查自动创建问题:在 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 } } }"}'。这样会将拉取请求关联到新问题,以便跟踪。 - 跟踪逾期问题的 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" 集成,构建更广泛的工具生态系统。