Skip to main content

Automatizando tarefas com a CLI do Copilot e o GitHub Actions

Integre CLI do GitHub Copilot aos seus fluxos de trabalho GitHub Actions.

Quem pode usar esse recurso?

CLI do GitHub Copilot está disponível em todos os planos de Copilot. Se você receber o Copilot de uma organização, a política CLI do Copilot deverá ser habilitada nas configurações da organização.

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.

Noções básicas sobre o fluxo de trabalho

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.
    
  2.           **Configuração**: código de check-out, ambiente de configuração.
    
  3.           **Instalar**: instalar CLI do GitHub Copilot no executor.
    
  4.        **Autenticar**: verifique se a CLI tem as permissões necessárias para acessar o repositório e fazer alterações.
    
  5.           **Execute o CLI do Copilot**: invoque o CLI do Copilot com uma solicitação que descreve a tarefa que você deseja automatizar.
    

O fluxo de trabalho a seguir gera um resumo diário das alterações do repositório e imprime o resumo nos logs de fluxo de trabalho.

YAML
name: Daily summary
on:
  workflow_dispatch:
  # Daily at 8:25 UTC
  schedule:
    - cron: '25 8 * * *'
permissions:
  contents: read
jobs:
  daily-summary:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5
        
      - 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: |
          TODAY=$(date +%Y-%m-%d)
          copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today ($TODAY). Include a brief description of what was changed."

Trigger

Neste exemplo, o fluxo de trabalho é executado diariamente e também pode ser acionado manualmente.

          `The workflow_dispatch` o gatilho permite executar o fluxo de trabalho manualmente na guia Ações, o que é útil ao testar alterações na configuração do prompt ou do fluxo de trabalho. 

O schedule gatilho executa o fluxo de trabalho automaticamente em um momento especificado usando a sintaxe cron.

YAML
on:
  # Allows manual triggering of this workflow.
  workflow_dispatch:
  # Daily at 8:30 UTC
  schedule:
    - cron: '30 8 * * *'

Configuração

Configure o trabalho para que CLI do Copilot possa acessar o repositório e executar no executor. 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.

YAML
permissions:
  contents: read
jobs:
  daily-summary:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

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 Como instalar a CLI do GitHub Copilot.

Neste exemplo, o fluxo de trabalho instala CLI do GitHub Copilot globalmente com npm.

YAML
- name: Set up Node.js environment
  uses: actions/setup-node@v4

- name: Install Copilot CLI
  run: npm install -g @github/copilot

Authenticate

Para autenticar CLI do Copilot em um fluxo de trabalho, crie um fine-grained personal access token (PAT) com a permissão Solicitações do Copilot. Armazene o PAT como um segredo de repositório e, em seguida, passe-o para a CLI usando uma variável de ambiente. Para obter mais informações sobre como criar um PAT para a CLI, consulte Autenticando com um personal access token.

CLI do Copilot dá suporte a várias variáveis de ambiente de autenticação. Neste exemplo, o fluxo de trabalho usa COPILOT_GITHUB_TOKEN, que é específico de CLI do Copilot e evita confusão com a variável de ambiente interna GITHUB_TOKEN.

YAML
- name: Run Copilot CLI
  env:
   COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

Executar CLI do Copilot

Execute CLI do Copilot no modo programável quando quiser usá-lo na automação.

          `copilot -p PROMPT` executa um prompt programaticamente e sai quando o comando é concluído. 

Neste fluxo de trabalho, CLI do Copilot faz referência ao conteúdo do repositório disponível na área de trabalho. O comando imprime sua resposta à saída padrão e o resumo aparece nos logs de fluxo de trabalho.

YAML
- name: Run Copilot CLI
  env:
    COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
  run: |
    TODAY=$(date +%Y-%m-%d)
    copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today ($TODAY). Include a brief description of what was changed."

Próximas etapas

Depois de confirmar que o fluxo de trabalho imprime um resumo nos logs, 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.

  • Escreva o resumo em um arquivo para que as etapas posteriores possam usá-lo como entrada.
  • Poste o resumo como um comentário sobre um problema ou uma mensagem em um chat de equipe.
  • Resumir solicitações e gerar um log de alterações preliminar.

Leitura adicional

  •         [AUTOTITLE](/copilot/reference/cli-command-reference)
    
  •         [AUTOTITLE](/copilot/reference/cli-plugin-reference)