Skip to main content

Executando CLI do GitHub Copilot programaticamente

Use CLI do Copilot no terminal, em scripts ou em fluxos de trabalho de Ações.

Introdução

Você pode passar um prompt diretamente para CLI do Copilot em um único comando, sem iniciar uma sessão interativa. Isso permite que você use Copilot diretamente do terminal, mas também permite que você use a CLI programaticamente em scripts, pipelines de CI/CD e fluxos de trabalho de automação.

Para usar CLI do Copilot programaticamente, você pode fazer qualquer um dos procedimentos 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"
    
  • Enviar um prompt para o comando copilot:

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

    Observação

    A entrada enviada por pipe é ignorada se você também fornecer um prompt com a opção -p ou --prompt.

Dicas para usar CLI do Copilot programaticamente

  •         **Forneça prompts precisos** – instruções claras e inequívocas produzem melhores resultados do que solicitações vagas. Quanto mais contexto você fornecer, como nomes de arquivos, nomes de funções, a alteração exata, menos suposições o Copilot precisará fazer.
    
  •         **Cite os prompts com cuidado** — use aspas simples em torno do seu prompt se quiser evitar a interpretação de caracteres especiais pelo shell.
    
  •         **Sempre dê permissões mínimas** – use as opções de linha de comando `--allow-tool=[TOOLS...]` e `--allow-url=[URLs...]` para conceder Copilot permissão de 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 **** para um comportamento consistente entre ambientes.

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

Integração de CI/CD

Um caso de uso comum para execução de CLI do Copilot programaticamente é incluir um comando da CLI em uma etapa de fluxo de trabalho de CI/CD.

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

# 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 Copilot CLI e 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 integrado code-review revise as alterações de código na ramificação 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 um gist no GitHub.com para fácil compartilhamento.

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

Observação

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

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

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

Use em uma 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)