Linear Native Node

📋 零依赖直连 Linear,安全审批门控

原生 Node.js 直连 Linear GraphQL API,支持零依赖跨平台查询与显式审批的写入操作,适合开发者本地安全集成。

收藏
4k
安装
1.2k
版本
1.0.20
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

linear-native-node 是一个基于原生 Node.js 18+ 的 Linear 工作区工具,通过 GraphQL API 直接操作 Linear 资源。使用方式非常简单:通过环境变量 LINEAR_API_KEY 完成认证后,即可通过 node scripts/linear.mjs <command> 执行各类操作。

读取操作(默认安全):支持查看用户信息、组织结构、团队列表、项目、工作流状态、问题列表(支持按团队/状态/负责人过滤)、我的待办、紧急事项、站会摘要等。所有列表命令支持 --limit 分页(1-100),并可输出 JSON 格式便于程序化使用。

写入操作(显式审批门控):创建问题、评论、更新状态/优先级、创建项目等操作必须通过 --execute 标志显式启用,且需要用户明确批准具体的 Linear 动作、目标和变更意图。这种"fail-closed"设计确保写操作不会意外执行。

特色功能:自动生成 Git 友好的分支名称(branch 命令)、灵活的团队默认值机制(LINEAR_DEFAULT_TEAM)、跨平台兼容(Windows/macOS/Linux)。

显著优点

1. 零依赖架构:纯原生 Node.js,无需 npm install,无第三方库风险,审计面积极小
2. 安全优先设计:API 密钥仅从进程环境读取,不写本地文件、不打印密钥、不通过 OAuth 网关;写入操作双重门控(--execute + 人工审批)

3. 跨平台原生:摆脱 bash 脚本限制,Windows PowerShell 用户无需 WSL 即可使用

4. 直连模式:数据仅在本地与 Linear 之间传输,无中间代理服务,降低供应链攻击面

5. 清晰的权限继承:自动沿用 Linear 账户原有权限,建议配合 Linear 最小权限密钥模型使用

潜在缺点与局限性

  • 单页限制:列表命令仅返回首页结果(按 updatedAt 排序),不自动分页,大规模工作区可能需要多次查询
  • 无重试机制:网络/GraphQL 错误直接退出,不自动重试或退避,需调用方处理瞬态失败
  • 环境变量依赖:每次新会话需重新设置密钥,无持久化配置(设计上的安全权衡)
  • 响应详情隐藏:错误时省略敏感响应体,诊断 401/403 时需手动验证代理/权限配置
  • 静态分析噪音:env-var + 固定端点网络请求会触发预期内的安全警告,需人工区分正常行为与异常

适合人群

  • 注重安全的开发团队:需要审计 Linear API 调用、避免第三方 OAuth 服务的场景
  • 跨平台开发者:Windows 主力用户,厌倦 bash 兼容性问题
  • CI/CD 集成:零依赖特性适合容器化环境,JSON 输出便于流水线解析
  • 权限敏感组织:要求最小权限原则、显式变更审批的工作流程

常规风险

| 风险类别 | 说明与缓解 |
|---------|-----------|
| 密钥泄露 | 仅通过 `LINEAR_API_KEY` 环境变量注入,禁止硬编码;共享日志时需手动脱敏工作区名称、用户邮箱等 |
| 误写操作 | `--execute` 门控 + 人工审批策略双重保护;建议生产环境配合 Linear 只读密钥使用 |
| 代理拦截 | 企业防火墙可能阻断 `api.linear.app`,错误提示会区分认证失败与代理阻断 |
| 权限继承风险 | 个人 API 密钥继承完整账户权限,Linear 暂未提供细粒度作用域密钥,需账户级权限管控 |
| 供应链安全 | 零依赖大幅降低风险,但仍需验证 `linear.mjs` 文件完整性(建议校验哈希)|

Linear Native Node 内容

scripts文件夹
手动下载zip · 12.3 kB
linear.mjstext/javascript
请选择文件