CLI

スクリプティング

JSON出力、安定した終了コード、プロンプトなしで、シェルスクリプト、CI、コーディングエージェントからCLIを操作します。

CLIはシェルスクリプト、CIジョブ、コーディングエージェントから操作されることを前提に作られています。データはstdoutへ、それ以外はすべてstderrへ出力され、終了コードは安定しており、すべてのプロンプトはオフにできます。

出力

出力は、stdoutがターミナルのときはテキスト、パイプまたはリダイレクトされているときはJSONです。形式を強制するには、--output jsonまたは--output text、POLYLANE_OUTPUT変数、または設定ファイルを使います。優先順位はこの順です。stdoutにはJSON、表の行、ストリーミングされるトークンのいずれであれデータだけが流れるため、安全にパイプできます。stderrにはスピナー、進行状況、ヒント、エラーが流れ、JSONモードではエラーはcode、message、hintを持つオブジェクトとして届きます。codeは終了コードと一致します。

スクリプト向けのフラグ

フラグ説明
--output jsonターミナルの状態に関わらずJSONを強制する
--quietスピナーと進行状況を抑制する。stdoutは純粋なデータのまま
--non-interactiveプロンプトを出す代わりに、入力が足りなければすぐに失敗する
--yes破壊的なコマンドの確認をスキップする
--dry-run変更を行わずに、何が起こるかを表示する
--full一覧コマンドで、絞り込まれたフィールド射影ではなく完全なオブジェクトを返す
--api-key <key>1回の呼び出しで保存されたAPIキーを上書きする
--workspace <id>1回の呼び出しで既定のワークスペースを上書きする

--non-interactiveを指定すると、polylane cloud disconnectは--yesも渡さない限り実行を拒否します。一方、polylane memory deleteなどの他の確認はスキップされるため、意図を明確にするために--yesを明示的に渡してください。POLYLANE_API_KEYとPOLYLANE_WORKSPACE_IDは環境から認証情報とワークスペースを設定するので、CIに向いています。認証を参照してください。

終了コード

コード説明
0成功
1一般的なエラー
2使い方のエラー。不正なフラグ、引数の不足
3認証エラー
4レート制限、またはプランのアップグレードが必要
5タイムアウト
6ネットワークエラー
130Ctrl-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コマンドが返すステータスと重大度。
  • スレッド: thread askが開始するものと、スレッドの進み方。