# プログラムによる GitHub Copilot CLI（コマンドラインインターフェース） の実行

ターミナル、スクリプト、またはアクション ワークフローで Copilot CLI (コパイロット CLI) を使用します。

## はじめに

対話型セッションに入らずに、1 つのコマンドで Copilot CLI (コパイロット CLI) するプロンプトを直接渡すことができます。 これにより、ターミナルから直接 Copilot を使用できますが、スクリプト、CI/CD パイプライン、自動化ワークフローで CLI をプログラムで使用することもできます。

Copilot CLI (コパイロット CLI)をプログラムで使用するには、次のいずれかの操作を行います。

* `copilot` コマンドを`-p`または`--prompt`コマンド ライン オプションと共に使用し、その後にプロンプトを表示します。

  ```shell copy
  copilot -p "Explain this file: ./complex.ts"
  ```

* `copilot` コマンドにプロンプトをパイプします。

  ```shell copy
  echo "Explain this file: ./complex.ts" | copilot
  ```

  > \[!NOTE]
  > パイプ入力は、 `-p` または `--prompt` オプションを含むプロンプトも指定した場合は無視されます。

## プログラムで Copilot CLI (コパイロット CLI) を使用するためのヒント

* **正確なプロンプトを提供します** 。明確で明確な命令は、あいまいな要求よりも優れた結果を生み出します。 コンテキストを多く提供するほど、たとえばファイル名、関数名、正確な変更内容など、推測の必要性が減ります。
* **引用符によるプロンプトは慎重に** 行います。特殊文字のシェル解釈を避ける場合は、プロンプトの周囲に単一引用符を使用します。
* **常に最小限のアクセス許可を付与** します。 `--allow-tool=[TOOLS...]` と `--allow-url=[URLs...]` コマンド ライン オプションを使用して、タスクを完了するために必要なツールとアクセスのみを使用する Copilot アクセス許可を付与します。 サンドボックス環境で作業している場合を除き、過度に制限の緩いオプション ( `--allow-all` など) の使用は避けてください。
* 出力をキャプチャするときは **、`-s` (サイレント) を使用**します。 これにより、セッション メタデータが抑制され、クリーン テキストが表示されます。
* **`--no-ask-user`を使用してエージェントが明確化のための質問を試みるのを防ぎます。**
* 環境間で一貫した動作を実現するために、\*\*\*\* を使用して`--model`します。

プログラムで[](/ja/copilot/reference/copilot-cli-reference/cli-programmatic-reference)を実行する場合に特に役立つオプションについては、Copilot CLI (コパイロット CLI) を参照してください。

## CI/CD 統合

Copilot CLI (コパイロット CLI)をプログラムで実行する一般的なユース ケースは、CI/CD ワークフロー ステップに CLI コマンドを含める場合です。

GitHub Actions ワークフローからのこの抽出は、Copilot CLI (コパイロット CLI) コマンドを実行する簡単な例を示しています。

```yaml
# Workflow step using Copilot CLI
- name: Generate test coverage report
  env:
    COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
  run: |
    copilot -p "Run the test suite and produce a coverage summary" \
      -s --allow-tool='shell(npm:*), write' --no-ask-user
```

詳細については、「[Copilot CLI とGitHub Actionsを使用したタスクの自動化](/ja/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions)」を参照してください。

## プログラムによる使用例

### コミット メッセージを生成する

```bash copy
copilot -p 'Write a commit message in plain text for the staged changes' -s \
  --allow-tool='shell(git:*)'
```

### ファイルの要約

```bash copy
copilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s
```

### モジュールのテストを記述する

```bash copy
copilot -p 'Write unit tests for src/utils/validators.ts' \
  --allow-tool='write, shell(npm:*), shell(npx:*)'
```

### lint エラーを修正する

```bash copy
copilot -p 'Fix all ESLint errors in this project' \
  --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'
```

### 相違について説明する

```bash copy
copilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s
```

### ブランチのコード レビュー

`/review`スラッシュ コマンドを使用して、組み込みの`code-review` エージェントに現在のブランチのコード変更を確認させます。

```bash copy
copilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \
  -s --allow-tool='shell(git:*)'
```

### ドキュメントを生成する

```bash copy
copilot -p 'Generate JSDoc comments for all exported functions in src/api/' \
  --allow-tool=write
```

### セッションをエクスポートする

セッションの完全なトランスクリプトをローカル ファイルシステムの Markdown ファイルに保存します。

```bash copy
copilot -p "Audit this project's dependencies for vulnerabilities" \
  --allow-tool='shell(npm:*), shell(npx:*)' \
  --share='./audit-report.md'
```

簡単に共有できるように、セッショントランスクリプトを GitHub.com の要点に保存します。

```bash copy
copilot -p 'Summarize the architecture of this project' --share-gist
```

> \[!NOTE]
> Gists は Enterprise Managed Users で利用できないか、もしくはデータ所在 (\*.ghe.com) で GitHub Enterprise Cloud を使用することができません。

## シェル スクリプト パターン

### 変数 Copilotの出力をキャプチャする

```bash copy
result=$(copilot -p 'What version of Node.js does this project require? \
  Give the number only. No other text.' -s)
echo "Required Node version: $result"
```

### 条件付きで使用する

```bash copy
if copilot -p 'Does this project have any TypeScript errors? Reply only YES or NO.' -s \
  | grep -qi "no"; then
  echo "No type errors found."
else
  echo "Type errors detected."
fi
```

### 複数のファイルを処理する

```bash copy
for file in src/api/*.ts; do
  echo "--- Reviewing $file ---" | tee -a review-results.md
  copilot -p "Review $file for error handling issues" -s --allow-all-tools | tee -a review-results.md
done
```

## 詳細については、次を参照してください。

* [GitHub Copilot CLI（コマンドラインインターフェース）](/ja/copilot/how-tos/copilot-cli)
* [GitHub Copilot CLI プログラムリファレンス](/ja/copilot/reference/copilot-cli-reference/cli-programmatic-reference)
* [GITHUB COPILOT CLI コマンド リファレンス](/ja/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)