Skip to main content

Linear 来源配置与自用实例

文档状态
draft
文档 Owner
DOC
事实源
canonical-docs
更新
2026/10/16

Linear 提供原生任务、项目、负责人、依赖与业务状态。Symphony 通过适配器读取这些事实;不需要先创建 Plane 工作项,也不在两者之间同步状态。

先选参考实例还是团队实例​

场景采用的规则操作入口
独立官方参考实例固定官方实现、自己核对的 WORKFLOW 与原生项目状态首次运行已有完整准备、配置与观察步骤
AutoDev 自用实例团队 adp 配置及 Backlog、执行、审核合同首次任务 → 任务跟进

本文核对官方 be10a1b79df723d6d7612b5651c8522704dafb2e 的源码,以及已有团队实施说明;没有读取目标 live-host 配置或运行真实任务。官方参考配置不证明团队实例在线。

官方 provider 配置​

以下片段只说明 tracker 部分,不能独立启动服务。完整 WORKFLOW 复用首次运行,不复制上游仓库自用项目标识或模型。

tracker:
kind: linear
provider:
project_slug: YOUR_PROJECT_SLUG
api_key: $LINEAR_API_KEY
endpoint: https://api.linear.app/graphql
active_states: [Todo, In Progress]
terminal_states: [Done, Canceled, Duplicate]

先替换项目 URL 中的真实 slug,状态名按该项目实际工作流调整。api_key 省略时也可读取 LINEAR_API_KEY;既有认证须对所选项目有效。可选 assignee 接受 Linear user ID 或 me,缺省还会读取 LINEAR_ASSIGNEE;接入时要检查宿主是否已有这一变量,避免误以为没有负责人筛选。

旧 flat endpoint / api_key / project_slug / assignee 在此版本中保留兼容;新示例采用 tracker.provider。这个兼容结论不适用于其他适配器。

字段与准入差异​

原生事实归一化结果 / 行为
issue ID / identifierid 为原生 ID,identifier 保留原生编号,native_ref 当前为 nil
state.name保留原生状态拼写,公共调度器再按配置活跃 / 终态集合判断
assignee参与该适配器路由匹配;me 需要先解析当前 viewer
inverse blocks 关系转为 blocked_by;Todo 任务有非终态 blocker 时不派发
labels修剪、转小写、去重;公共 required_labels 再检查全部所需标签
priority / timestamps合法整数优先级与可解析时间保留;缺失或无效值按模型处理,不补造

候选读取和 ID 刷新均按项目范围读取;分页及批量刷新由 client 处理。来源依据为固定 Linear Adapter、Linear Client与 README。

原生工具与团队扩展​

官方适配器可提供 linear_graphql。它使用宿主认证,能力受该凭据实际权限限制;project_slug 限定调度读取,不构成任意 GraphQL 写入的授权范围或幂等保证。

团队自用文档说明 adp 直接使用官方 Linear adapter。backlog.enabled、review.enabled、私有图片读取和审核桥属于各自团队扩展;不能套用独立参考示例的 Todo 规则绕过它们。自用边界保留在实施说明与团队产品合同,本页不重复定义。

缺任务时检查项目、状态、宿主 assignee、依赖、标签与来源访问;发现 token / scope 错误先修相应配置,不新建重复任务或改用 Plane fallback。执行问题继续查失败与恢复。