{"meta":{"title":"プログラムによる GitHub Copilot CLI（コマンドラインインターフェース） の実行","intro":"ターミナル、スクリプト、またはアクション ワークフローで Copilot CLI (コパイロット CLI) を使用します。","product":"GitHub Copilot","breadcrumbs":[{"href":"/ja/copilot","title":"GitHub Copilot"},{"href":"/ja/copilot/how-tos","title":"方法"},{"href":"/ja/copilot/how-tos/copilot-cli","title":"Copilot CLI (コパイロット CLI)"},{"href":"/ja/copilot/how-tos/copilot-cli/automate-copilot-cli","title":"Copilot CLI を使用して自動化する"},{"href":"/ja/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically","title":"CLI をプログラムで実行する"}],"documentType":"article"},"body":"# プログラムによる GitHub Copilot CLI（コマンドラインインターフェース） の実行\n\nターミナル、スクリプト、またはアクション ワークフローで Copilot CLI (コパイロット CLI) を使用します。\n\n## はじめに\n\n対話型セッションに入らずに、1 つのコマンドで Copilot CLI (コパイロット CLI) するプロンプトを直接渡すことができます。 これにより、ターミナルから直接 Copilot を使用できますが、スクリプト、CI/CD パイプライン、自動化ワークフローで CLI をプログラムで使用することもできます。\n\nCopilot CLI (コパイロット CLI)をプログラムで使用するには、次のいずれかの操作を行います。\n\n* `copilot` コマンドを`-p`または`--prompt`コマンド ライン オプションと共に使用し、その後にプロンプトを表示します。\n\n  ```shell copy\n  copilot -p \"Explain this file: ./complex.ts\"\n  ```\n\n* `copilot` コマンドにプロンプトをパイプします。\n\n  ```shell copy\n  echo \"Explain this file: ./complex.ts\" | copilot\n  ```\n\n  > \\[!NOTE]\n  > パイプ入力は、 `-p` または `--prompt` オプションを含むプロンプトも指定した場合は無視されます。\n\n## プログラムで Copilot CLI (コパイロット CLI) を使用するためのヒント\n\n* **正確なプロンプトを提供します** 。明確で明確な命令は、あいまいな要求よりも優れた結果を生み出します。 コンテキストを多く提供するほど、たとえばファイル名、関数名、正確な変更内容など、推測の必要性が減ります。\n* **引用符によるプロンプトは慎重に** 行います。特殊文字のシェル解釈を避ける場合は、プロンプトの周囲に単一引用符を使用します。\n* **常に最小限のアクセス許可を付与** します。 `--allow-tool=[TOOLS...]` と `--allow-url=[URLs...]` コマンド ライン オプションを使用して、タスクを完了するために必要なツールとアクセスのみを使用する Copilot アクセス許可を付与します。 サンドボックス環境で作業している場合を除き、過度に制限の緩いオプション ( `--allow-all` など) の使用は避けてください。\n* 出力をキャプチャするときは **、`-s` (サイレント) を使用**します。 これにより、セッション メタデータが抑制され、クリーン テキストが表示されます。\n* **`--no-ask-user`を使用してエージェントが明確化のための質問を試みるのを防ぎます。**\n* 環境間で一貫した動作を実現するために、\\*\\*\\*\\* を使用して`--model`します。\n\nプログラムで[](/ja/copilot/reference/copilot-cli-reference/cli-programmatic-reference)を実行する場合に特に役立つオプションについては、Copilot CLI (コパイロット CLI) を参照してください。\n\n## CI/CD 統合\n\nCopilot CLI (コパイロット CLI)をプログラムで実行する一般的なユース ケースは、CI/CD ワークフロー ステップに CLI コマンドを含める場合です。\n\nGitHub Actions ワークフローからのこの抽出は、Copilot CLI (コパイロット CLI) コマンドを実行する簡単な例を示しています。\n\n```yaml\n# Workflow step using Copilot CLI\n- name: Generate test coverage report\n  env:\n    COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}\n  run: |\n    copilot -p \"Run the test suite and produce a coverage summary\" \\\n      -s --allow-tool='shell(npm:*), write' --no-ask-user\n```\n\n詳細については、「[Copilot CLI とGitHub Actionsを使用したタスクの自動化](/ja/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions)」を参照してください。\n\n## プログラムによる使用例\n\n### コミット メッセージを生成する\n\n```bash copy\ncopilot -p 'Write a commit message in plain text for the staged changes' -s \\\n  --allow-tool='shell(git:*)'\n```\n\n### ファイルの要約\n\n```bash copy\ncopilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s\n```\n\n### モジュールのテストを記述する\n\n```bash copy\ncopilot -p 'Write unit tests for src/utils/validators.ts' \\\n  --allow-tool='write, shell(npm:*), shell(npx:*)'\n```\n\n### lint エラーを修正する\n\n```bash copy\ncopilot -p 'Fix all ESLint errors in this project' \\\n  --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'\n```\n\n### 相違について説明する\n\n```bash copy\ncopilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s\n```\n\n### ブランチのコード レビュー\n\n`/review`スラッシュ コマンドを使用して、組み込みの`code-review` エージェントに現在のブランチのコード変更を確認させます。\n\n```bash copy\ncopilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \\\n  -s --allow-tool='shell(git:*)'\n```\n\n### ドキュメントを生成する\n\n```bash copy\ncopilot -p 'Generate JSDoc comments for all exported functions in src/api/' \\\n  --allow-tool=write\n```\n\n### セッションをエクスポートする\n\nセッションの完全なトランスクリプトをローカル ファイルシステムの Markdown ファイルに保存します。\n\n```bash copy\ncopilot -p \"Audit this project's dependencies for vulnerabilities\" \\\n  --allow-tool='shell(npm:*), shell(npx:*)' \\\n  --share='./audit-report.md'\n```\n\n簡単に共有できるように、セッショントランスクリプトを GitHub.com の要点に保存します。\n\n```bash copy\ncopilot -p 'Summarize the architecture of this project' --share-gist\n```\n\n> \\[!NOTE]\n> Gists は Enterprise Managed Users で利用できないか、もしくはデータ所在 (\\*.ghe.com) で GitHub Enterprise Cloud を使用することができません。\n\n## シェル スクリプト パターン\n\n### 変数 Copilotの出力をキャプチャする\n\n```bash copy\nresult=$(copilot -p 'What version of Node.js does this project require? \\\n  Give the number only. No other text.' -s)\necho \"Required Node version: $result\"\n```\n\n### 条件付きで使用する\n\n```bash copy\nif copilot -p 'Does this project have any TypeScript errors? Reply only YES or NO.' -s \\\n  | grep -qi \"no\"; then\n  echo \"No type errors found.\"\nelse\n  echo \"Type errors detected.\"\nfi\n```\n\n### 複数のファイルを処理する\n\n```bash copy\nfor file in src/api/*.ts; do\n  echo \"--- Reviewing $file ---\" | tee -a review-results.md\n  copilot -p \"Review $file for error handling issues\" -s --allow-all-tools | tee -a review-results.md\ndone\n```\n\n## 詳細については、次を参照してください。\n\n* [GitHub Copilot CLI（コマンドラインインターフェース）](/ja/copilot/how-tos/copilot-cli)\n* [GitHub Copilot CLI プログラムリファレンス](/ja/copilot/reference/copilot-cli-reference/cli-programmatic-reference)\n* [GITHUB COPILOT CLI コマンド リファレンス](/ja/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)"}