Skip to main content

Executando CLI do GitHub Copilot de forma programática

Use CLI do Copilot no terminal, em scripts ou em fluxos de trabalho de Actions.

Introdução

Você pode passar um prompt diretamente para CLI do Copilot em um único comando, sem entrar em uma sessão interativa. Isso permite que você use Copilot diretamente do terminal, além de permitir o uso programático da CLI em scripts, pipelines de CI/CD e fluxos de trabalho de automação.

Para usar CLI do Copilot programaticamente, você pode fazer um dos métodos a seguir.

  • Use o comando copilot com a opção de linha de comando -p ou --prompt, seguido pelo seu prompt:

    Shell
    copilot -p "Explain this file: ./complex.ts"
    
  • Redirecione um prompt para o comando copilot:

    Shell
    echo "Explain this file: ./complex.ts" | copilot
    

    Observação

    A entrada encanada será ignorada se você também fornecer um prompt com a opção -p ou a opção --prompt.

Dicas para usar CLI do Copilot de forma programática

  •         **Forneça prompts precisos** – instruções claras e inequívocas produzem melhores resultados do que solicitações vagas. Quanto mais contexto você fornecer—nomes de arquivos, nomes de funções, a alteração exata—menos Copilot tem que adivinhar.
    
  •         **Cite os prompts com cuidado** — use aspas simples em torno do seu prompt se você quiser evitar a interpretação de shell de caracteres especiais.
    
  • Sempre dê permissões mínimas — use as opções de linha de comando --allow-tool=[TOOLS...] e --allow-url=[URLs...] para dar ao Copilot permissão para usar apenas as ferramentas e o acesso necessários para concluir a tarefa. Evite usar opções excessivamente permissivas (como --allow-all) a menos que você esteja trabalhando em um ambiente de área restrita.
  •         **Use `-s` (silencioso)** ao capturar a saída. Isso suprime os metadados de sessão para que você obtenha texto limpo.
    
  •         **Usar `--no-ask-user`** para impedir que o agente tente fazer perguntas esclarecedoras.
    
  • Defina um modelo explicitamente com --model para um comportamento consistente entre ambientes.

Consulte Referência programática da CLI do GitHub Copilot para obter opções que são particularmente úteis ao executar CLI do Copilot de forma programática.

Integração de CI/CD

Um caso de uso comum para executar CLI do Copilot de forma programática é incluir um comando da CLI em uma etapa de fluxo de trabalho de CI/CD.

Este extrato de um fluxo de trabalho GitHub Actions mostra um exemplo simples de execução de um comando CLI do Copilot .

# 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

Para obter mais informações, consulte Automatizando tarefas com a CLI do Copilot e o GitHub Actions.

Exemplos de uso programático

Gerar uma mensagem de confirmação

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

Resumir um arquivo

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

Gravar testes para um módulo

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

Corrigir erros de lint

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

Explicar uma diferença

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

Revisão de código de um branch

Use o comando de barra /review para que o agente code-review interno examine as alterações de código no branch atual.

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

Gerar documentação

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

Exportar uma sessão

Salve a transcrição completa da sessão em um arquivo Markdown no sistema de arquivos local.

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

Salve a transcrição da sessão em uma gist em GitHub.com para facilitar o compartilhamento.

Bash
copilot -p 'Summarize the architecture of this project' --share-gist

Observação

Os Gists não estão disponíveis para Enterprise Managed Users, ou se você usar GitHub Enterprise Cloud com residência de dados (*.ghe.com).

Padrões de programação de scripts de shell

Capturar a saída de Copilot em uma variável

Bash
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"

Utilizar em uma declaração condicional

Bash
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

Processar vários arquivos

Bash
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

Leitura adicional

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)