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返回完整对象。问题解释每个状态背后的生命周期。