Você pode executar o CLI do GitHub Copilot em um fluxo de trabalho do GitHub Actions para automatizar tarefas da plataforma 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 de Ações, como qualquer outra ferramenta da CLI, para que você possa instalá-lo durante um trabalho e invocá-lo das etapas de fluxo de trabalho.
Abordagem recomendada: GitHub Fluxos de Trabalho Agênticos
Para a maioria dos casos de uso de automação, recomendamos usar GitHub fluxos de trabalho agênticos em vez de invocar copilot diretamente nas etapas do fluxo de trabalho. Os fluxos de trabalho agênticos usam autenticação GITHUB_TOKEN por padrão e incluem salvaguardas adicionais adequadas a ambientes automatizados.
Para obter instruções de instalação, consulte Início Rápido na GitHub documentação de fluxos de trabalho do Agentic.
Usando CLI do Copilot em um fluxo de trabalho do Actions
Você pode definir um trabalho em um GitHub Actions fluxo de trabalho que: instala CLI do Copilot no executor, o autentica, executa-o no modo programático e manipula 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:
- Gatilho: iniciar o fluxo de trabalho de acordo com uma programação, em resposta a eventos do repositório ou manualmente.
- Configuração: código de check-out, ambiente de configuração.
- 1Instalar: instale o 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.
- Executar CLI do Copilot: invoque CLI do Copilot com um prompt que descreva 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@v6
with:
fetch-depth: 0
- name: Set up Node.js environment
uses: actions/setup-node@v7
- 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@v6
with:
fetch-depth: 0
- name: Set up Node.js environment
uses: actions/setup-node@v7
- 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 na guia Ações do seu repositório no GitHub, o que é útil ao testar alterações no seu prompt ou na configuração do 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 o trabalho para que CLI do Copilot possa acessar seu repositório e executar no executor de ações. Isso permite CLI do Copilot analisar o contexto do repositório ao gerar 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@v6
with:
fetch-depth: 0
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
Install
Instale CLI do Copilot no executor para que o fluxo de trabalho possa invocá-lo como um comando. Você pode instalar CLI do GitHub Copilot usando qualquer método de instalação com suporte. Para obter uma lista completa das opções de instalação, consulte Instalando a 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@v7 - name: Install Copilot CLI run: npm install -g @github/copilot
- name: Set up Node.js environment
uses: actions/setup-node@v7
- name: Install Copilot CLI
run: npm install -g @github/copilot
Authenticate
Para permitir CLI do Copilot a execução em um executor de Ações, você precisa fornecer credenciais de autenticação. Há duas opções:
- Usando
GITHUB_TOKEN(recomendado para repositórios de propriedade da organização): nenhum PAT ou segredos armazenados necessários. Consulte Usando Copilot CLI em GitHub Actions com GITHUB_TOKEN. - Usando um personal access token: uma alternativa a
GITHUB_TOKEN, por exemplo, se sua organização não tiver habilitado a política ou se você quiser que o uso seja cobrado para o assento de Copilot um usuário específico. Siga as etapas abaixo.
Etapa 1: Criar um personal access token (PAT) com a permissão "Copilot Solicitações":
- Vá para 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 "Copilot Solicitações".
- 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 dá suporte a várias variáveis de ambiente especiais para autenticação. Neste exemplo, o fluxo de trabalho usa COPILOT_GITHUB_TOKEN, que é específico de CLI do Copilot e permite que você defina permissões diferentes para Copilot, do que as que você pode usar em outro lugar com a variável de ambiente interna 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 }}
Execute 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 executar comandos Copilot git para analisar o histórico do repositório. Isso é necessário para gerar o resumo das alterações recentes.--allow-tool='write'permite Copilot gravar o resumo gerado em um arquivo no executor.--no-ask-userimpede 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.