CLI

脚本编写

用JSON输出、稳定的退出码和无提示的方式,从shell脚本、CI和编程智能体驱动CLI。

CLI就是为被shell脚本、CI作业和编程智能体驱动而构建的。数据进stdout,其他一切进stderr,退出码稳定,每个提示都可以关闭。

输出

stdout是终端时输出文本,被管道或重定向时输出JSON;用--output json或--output text、POLYLANE_OUTPUT变量或配置文件强制指定格式,优先级依此顺序。stdout只承载数据,无论是JSON、表格行还是流式token,所以可以安全地用管道传递。stderr承载加载动画、进度、提示和错误,在JSON模式下错误以带有code、message和hint的对象形式到达,其中code与退出码一致。

面向脚本的标志

标志说明
--output json无论终端状态如何都强制输出JSON
--quiet抑制加载动画和进度;stdout保持纯数据
--non-interactive缺少输入时快速失败而不是提示
--yes跳过破坏性命令的确认
--dry-run显示将会发生什么而不做更改
--full在列表命令上返回完整对象,而不是精简的字段投影
--api-key <key>为单次调用覆盖存储的API密钥
--workspace <id>为单次调用覆盖默认工作区

带上--non-interactive时,polylane cloud disconnect除非你同时传入--yes否则拒绝运行,而其他确认(例如polylane memory delete)会被跳过,所以请显式传入--yes以表明意图。POLYLANE_API_KEY和POLYLANE_WORKSPACE_ID从环境中设置凭据和工作区,适合CI;参见身份验证。

退出码

代码说明
0成功
1一般错误
2用法错误:错误的标志、缺少参数
3身份验证错误
4限流或需要升级套餐
5超时
6网络错误
130被Ctrl-C中断

先根据退出码分支,决定是重试、重新认证还是上抛失败,然后解析stderr上的错误对象获取详情。

示例

Terminal
polylane issue list --active --severity critical --output json --quiet \
  | jq -r '.items[] | "\(.id)\t\(.title)"'

polylane issue list返回一个带有items和count的对象,每个条目被投影为id、severity、status、title、resourceKind、resourceId、detectedAt和investigationThreadId;--full返回完整对象。问题解释每个状态背后的生命周期。

相关内容

  • 身份验证:面向CI的API密钥和环境变量。
  • 配置:输出和超时设置以及配置文件。
  • 问题:issue命令返回的状态和严重级别。
  • Threads:thread ask开启的是什么,以及线程如何推进。