Você pode executar CLI do GitHub Copilot em um fluxo de trabalho GitHub Actions para automatizar tarefas impulsionadas por IA como parte do seu processo de CI/CD. Por exemplo, você pode resumir a atividade recente do repositório, gerar relatórios ou estruturar o conteúdo do projeto. CLI do GitHub Copilot é executado no executor do Actions como qualquer outra ferramenta de CLI, para que você possa instalá-lo durante um trabalho e invocá-lo das etapas do fluxo de trabalho.
Usando CLI do Copilot em um fluxo de trabalho do Actions
Você pode definir um trabalho em um fluxo de trabalho GitHub Actions que: instala CLI do Copilot no executor, autentica-o, executa-o no modo programático e então trata os resultados. O modo programático foi projetado para scripts e automação e permite que você passe um prompt de forma não interativa.
Os fluxos de trabalho podem seguir esse padrão: 1. Gatilho: iniciar o fluxo de trabalho de acordo com uma programação, em resposta a eventos do repositório ou manualmente. 1. Configuração: código de check-out, ambiente de configuração.
-
**Instalar**: instalar CLI do GitHub Copilot no executor. -
**Autenticar**: verifique se a CLI tem as permissões necessárias para acessar o repositório e fazer alterações. -
**Execute o CLI do Copilot**: invoque o CLI do Copilot com uma solicitação que descreve a tarefa que você deseja automatizar.
Fluxo de trabalho de exemplo
O fluxo de trabalho a seguir gera detalhes das alterações feitas hoje no branch padrão do repositório e exibe esses detalhes como o resumo da execução do fluxo de trabalho.
name: Daily summary
on:
workflow_dispatch:
# Run this workflow daily at 5:30pm UTC
schedule:
- cron: '30 17 * * *'
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Node.js environment
uses: actions/setup-node@v4
- name: Install Copilot CLI
run: npm install -g @github/copilot
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
name: Daily summary
on:
workflow_dispatch:
# Run this workflow daily at 5:30pm UTC
schedule:
- cron: '30 17 * * *'
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Node.js environment
uses: actions/setup-node@v4
- name: Install Copilot CLI
run: npm install -g @github/copilot
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
As seções a seguir explicam cada parte desse fluxo de trabalho.
Gatilho
Neste exemplo, o fluxo de trabalho é executado diariamente e também pode ser acionado manualmente.
O gatilho workflow_dispatch permite que você execute o fluxo de trabalho manualmente da guia Ações do seu repositório em GitHub, o que é útil ao testar alterações em seu prompt ou configuração de fluxo de trabalho.
O schedule gatilho executa o fluxo de trabalho automaticamente em um momento especificado usando a sintaxe cron.
on:
# Allows manual triggering of this workflow
workflow_dispatch:
# Run this workflow daily at 11:55pm UTC
schedule:
- cron: '55 23 * * *'
on:
# Allows manual triggering of this workflow
workflow_dispatch:
# Run this workflow daily at 11:55pm UTC
schedule:
- cron: '55 23 * * *'
Configuração
Configure a tarefa para que CLI do Copilot possa acessar seu repositório e ser executada no executor de ações. Isso permite que CLI do Copilot analise o contexto do repositório quando gera o resumo diário.
O bloco permissions define o escopo concedido ao GITHUB_TOKEN incorporado. Como esse fluxo de trabalho lê os dados do repositório e imprime um resumo nos logs, ele requer contents: read.
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
Install
Instale CLI do Copilot no executor para que seu fluxo de trabalho possa invocá-lo como um comando. Você pode instalar CLI do GitHub Copilot usando qualquer método de instalação suportado. Para obter uma lista completa das opções de instalação, consulte Instalando o CLI do GitHub Copilot.
Neste exemplo, o fluxo de trabalho instala CLI do GitHub Copilot globalmente com npm.
- name: Set up Node.js environment uses: actions/setup-node@v4 - name: Install Copilot CLI run: npm install -g @github/copilot
- name: Set up Node.js environment
uses: actions/setup-node@v4
- name: Install Copilot CLI
run: npm install -g @github/copilot
Authenticate
Para permitir que o CLI do Copilot seja executado em um executor do Actions, você precisa autenticar uma conta de usuário do GitHub com uma licença válida do Copilot.
**Passo 1: Crie um personal access token (PAT) com a permissão "Solicitações do Copilot":**
-
Acesse suas configurações pessoais para criar um fine-grained personal access token: github.com/settings/personal-access-tokens/new.
-
Crie um novo PAT com a permissão "Solicitações de Copilot".
-
Copie o valor do token.
**Etapa 2: Armazene o PAT como um segredo do repositório Actions:** -
Em seu repositório, vá para Configurações > Segredos e variáveis > Ações e clique em Novo segredo do repositório.
-
Dê ao segredo um nome que você usará no fluxo de trabalho. Neste exemplo, estamos usando
PERSONAL_ACCESS_TOKENcomo o nome do segredo. -
Cole o valor do token no campo "Segredo" e clique em Adicionar segredo.
O fluxo de trabalho define uma variável de ambiente especial com o valor do segredo do repositório. CLI do Copilot é compatível com diversas variáveis de ambiente especiais para autenticação. Neste exemplo, o fluxo de trabalho usa COPILOT_GITHUB_TOKEN, que é específico para CLI do Copilot e permite definir permissões diferentes para Copilot do que você poderia usar em outros lugares com a variável de ambiente integrada GITHUB_TOKEN.
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
Executar CLI do Copilot
Use copilot -p PROMPT [OPTIONS] para executar a CLI de forma programática e sair quando o comando for concluído.
A CLI imprime sua resposta à saída padrão, que é registrada no log da execução do fluxo de trabalho de Ações. No entanto, para facilitar o acesso dos detalhes das alterações, este exemplo adiciona essas informações ao resumo da execução do fluxo de trabalho.
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
Este exemplo usa várias opções após o prompt da CLI:
-
`--allow-tool='shell(git:*)'` permite que Copilot execute comandos Git para analisar o histórico do repositório. Isso é necessário para gerar o resumo das alterações recentes. -
`--allow-tool='write'` permite que Copilot grave o resumo gerado em um arquivo no executor. -
`--no-ask-user` impede que a CLI solicite a entrada do usuário, o que é importante ao executar em um fluxo de trabalho automatizado em que não há nenhum usuário para responder às solicitações de entrada adicional.
Próximas Etapas
Depois de confirmar que o fluxo de trabalho gera um resumo das alterações, você pode adaptar o mesmo padrão a outras tarefas de automação. Comece alterando o prompt que você passa para copilot -p PROMPT, e depois decida o que fazer com a saída. Por exemplo, você poderia:
- Crie uma solicitação de pull para atualizar um arquivo de changelog no repositório com as alterações do dia.
- Envie o resumo por email aos mantenedores do repositório.
Leitura adicional
-
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) -
[AUTOTITLE](/actions) -
[AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically)