{"meta":{"title":"Executando GitHub Copilot CLI programaticamente","intro":"Use Copilot CLI no terminal, em scripts ou em fluxos de trabalho de Ações.","product":"GitHub Copilot","breadcrumbs":[{"href":"/pt/copilot","title":"GitHub Copilot"},{"href":"/pt/copilot/how-tos","title":"Instruções"},{"href":"/pt/copilot/how-tos/copilot-cli","title":"Copilot CLI"},{"href":"/pt/copilot/how-tos/copilot-cli/automate-copilot-cli","title":"Automatizar com Copilot CLI"},{"href":"/pt/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically","title":"Executar a CLI programaticamente"}],"documentType":"article"},"body":"# Executando GitHub Copilot CLI programaticamente\n\nUse Copilot CLI no terminal, em scripts ou em fluxos de trabalho de Ações.\n\n## Introdução\n\nVocê pode passar um prompt diretamente para Copilot CLI 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.\n\nPara usar Copilot CLI programaticamente, você pode fazer qualquer um dos procedimentos a seguir.\n\n* Use o comando `copilot` com a opção de linha de comando `-p` ou `--prompt`, seguido pelo seu prompt:\n\n  ```shell copy\n  copilot -p \"Explain this file: ./complex.ts\"\n  ```\n\n* Enviar um prompt para o comando `copilot`:\n\n  ```shell copy\n  echo \"Explain this file: ./complex.ts\" | copilot\n  ```\n\n  > \\[!NOTE]\n  > A entrada enviada por pipe é ignorada se você também fornecer um prompt com a opção `-p` ou `--prompt`.\n\n## Dicas para usar Copilot CLI programaticamente\n\n* **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.\n* **Cite os prompts com cuidado** — use aspas simples em torno do seu prompt se quiser evitar a interpretação de caracteres especiais pelo shell.\n* **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. Para obter mais informações, consulte [Sobre a nuvem e as áreas restritas locais para GitHub Copilot](/pt/copilot/concepts/about-cloud-and-local-sandboxes).\n* **Use `-s` (silencioso)** ao capturar a saída. Isso suprime os metadados de sessão para que você obtenha texto limpo.\n* **Usar `--no-ask-user`** para impedir que o agente tente fazer perguntas esclarecedoras.\n* Defina um modelo explicitamente com \\*\\*\\*\\* para um comportamento consistente entre ambientes.\n\nConsulte [referência programática do GitHub Copilot CLI](/pt/copilot/reference/copilot-cli-reference/cli-programmatic-reference) para obter opções que são particularmente úteis ao executar Copilot CLI programaticamente.\n\n## Integração de CI/CD\n\nUm caso de uso comum para execução de Copilot CLI programaticamente é incluir um comando da CLI em uma etapa de fluxo de trabalho de CI/CD.\n\nEste extrato de um GitHub Actions fluxo de trabalho mostra um exemplo simples de execução de um Copilot CLI comando.\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\nPara obter mais informações, consulte [Automatizando tarefas com Copilot CLI e GitHub Actions](/pt/copilot/how-tos/copilot-cli/automate-copilot-cli/automate-with-actions).\n\n## Exemplos de uso programático\n\n### Gerar uma mensagem de confirmação\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### Resumir um arquivo\n\n```bash copy\ncopilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s\n```\n\n### Gravar testes para um módulo\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### Corrigir erros de 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### Explicar uma diferença\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### Revisão de código de um branch\n\nUse o comando de barra `/review` para que o agente integrado `code-review` revise as alterações de código na ramificação atual.\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### Gerar documentação\n\n```bash copy\ncopilot -p 'Generate JSDoc comments for all exported functions in src/api/' \\\n  --allow-tool=write\n```\n\n### Exportar uma sessão\n\nSalve a transcrição completa da sessão em um arquivo Markdown no sistema de arquivos local.\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\nSalve a transcrição da sessão em um gist no GitHub.com para fácil compartilhamento.\n\n```bash copy\ncopilot -p 'Summarize the architecture of this project' --share-gist\n```\n\n> \\[!NOTE]\n> 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).\n\n## Padrões de programação de scripts de shell\n\n### Capture a saída de Copilot em uma variável\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### Use em uma condicional.\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### Processar vários arquivos\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## Leitura adicional\n\n* [GitHub Copilot CLI](/pt/copilot/how-tos/copilot-cli)\n* [referência programática do GitHub Copilot CLI](/pt/copilot/reference/copilot-cli-reference/cli-programmatic-reference)\n* [referência de comando da CLI GitHub Copilot](/pt/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)"}