在linear中通过graphql api批量操作议题需先创建含read:issues和update:issues权限的个人访问令牌;再用curl调用graphql端点查询团队、项目及未关闭议题;最后通过mutation(如upsertissue)安全更新议题状态。

在Linear中通过GraphQL API批量获取议题、更新状态或同步项目数据,需先获取有效令牌并构造符合其Schema的查询请求。
获取Linear个人访问令牌
登录Linear Web端 → 点击右上角头像 → 选择「Settings」→ 左侧菜单点击「API Tokens」→ 点击「Create token」→ 输入名称(如“sync-script”)→ 勾选所需权限(【至少勾选 read:issues 和 update:issues】)→ 点击「Create」。
生成后立即复制令牌值,页面刷新后将无法再次查看明文。该令牌等效于你的账户操作权限,泄露即等同账户失控。
用curl调用GraphQL端点获取团队列表
打开终端,执行以下命令:
curl -X POST https://api.linear.app/graphql \-H "Authorization: Bearer <your-token-here>" \</your-token-here>-H "Content-Type: application/json" \--data '{ "query": "query { teams { id name key } }" }'
注意替换 <your-token-here></your-token-here> 为上一步复制的真实令牌。返回结果是JSON,包含你有权限访问的所有团队ID、名称和短代码。
查询指定项目的全部未关闭议题
第一步:确认项目ID。可先运行 query { projects { id name } } 获取目标项目ID(如proj_xxx)。
第二步:构造带变量的查询。使用如下结构:
query IssuesByProject($projectId: ID!) { project(id: $projectId) { id name issues(filter: {state: {is: "unstarted"}}) { nodes { id title state { name } updatedAt } } }}
第三步:发送带变量的POST请求。变量体为:{"projectId": "proj_xxx"}。必须用双引号包裹键名和字符串值,否则Linear会返回解析错误。
用Mutation更新议题状态
方法一:直接内联状态ID
执行mutation时,需提前查出目标状态的全局ID(如state_xxx)。可用查询 query { issue(id: "issue_yyy") { state { id } } } 获取当前状态ID,再用新ID发起更新。
方法二:通过状态名称查找并更新(更稳定)
Linear不支持直接按名称更新状态,但可组合两步完成:先查出目标工作流中名为“Done”的状态ID,再传入mutation。这避免硬编码ID导致跨环境失效。
方法三:使用upsertIssue(推荐用于同步场景)
当需要确保议题存在且更新多个字段时,调用 upsertIssue 比先查后改更安全。它接受 id 或 identifier(如“PROJ-123”)作为唯一标识,自动创建或更新,且支持批量提交。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











