Skip to main content

Automatización de tareas con Copilot CLI y Acciones de GitHub

Integra GitHub Copilot CLI en tus flujos de trabajo GitHub Actions.

¿Quién puede utilizar esta característica?

GitHub Copilot CLI está disponible con todos los Copilot planes. Si una organización le envía Copilot, la política Copilot CLI debe estar habilitada en la configuración de la organización.

Puede ejecutar GitHub Copilot CLI en un GitHub Actions flujo de trabajo para automatizar las tareas con tecnología de inteligencia artificial como parte del proceso de CI/CD. Por ejemplo, puede resumir la actividad reciente del repositorio, generar informes o estructurar el contenido del proyecto. GitHub Copilot CLI se ejecuta en el ejecutor de acciones como cualquier otra herramienta de la CLI, por lo que puede instalarlo durante un trabajo e invocarlo desde los pasos del flujo de trabajo.

Enfoque recomendado: GitHub Flujos de trabajo agente

Para la mayoría de los casos de uso de automatización, se recomienda usar GitHub flujos de trabajo agente en lugar de invocar copilot directamente en los pasos de flujo de trabajo. Los flujos de trabajo agénticos usan autenticación GITHUB_TOKEN de forma predeterminada e incluyen salvaguardas adicionales adaptadas a entornos automatizados.

Para obtener instrucciones de configuración, consulte Inicio rápido en la GitHub documentación sobre flujos de trabajo agente.

Uso Copilot CLI en un flujo de trabajo de Acciones

Puede definir un trabajo en un GitHub Actions flujo de trabajo que: instala Copilot CLI en el ejecutor, lo autentica, lo ejecuta en modo programático y, a continuación, gestiona los resultados. El modo de programación está diseñado para scripts y automatización y permite pasar un mensaje de forma no interactiva.

Los flujos de trabajo pueden seguir este patrón:

  1. Desencadenador: inicie el flujo de trabajo según una programación, en respuesta a los eventos del repositorio o manualmente.
  2. Configuración: código de desprotección, configuración del entorno.
  3. Instalar: instale GitHub Copilot CLI en el ejecutor.
  4. Autenticación: asegúrese de que la CLI tiene los permisos necesarios para acceder al repositorio y realizar cambios.
  5. Ejecutar Copilot CLI: invoque Copilot CLI con un mensaje que describa la tarea que desea automatizar.

Flujo de trabajo de ejemplo

El siguiente flujo de trabajo genera detalles de los cambios realizados hoy en la rama predeterminada del repositorio y muestra estos detalles como resumen de la ejecución del flujo de trabajo.

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

En las secciones siguientes se explica cada parte de este flujo de trabajo.

Trigger

En este ejemplo, el flujo de trabajo se ejecuta según una programación diaria y también se puede desencadenar manualmente.

El workflow_dispatch desencadenador le permite ejecutar el flujo de trabajo manualmente desde la pestaña Acciones del repositorio en GitHub, lo que resulta útil al probar los cambios en la configuración del mensaje o del flujo de trabajo.

El schedule desencadenador ejecuta el flujo de trabajo automáticamente en un momento especificado mediante la sintaxis cron.

YAML
on:
  # Allows manual triggering of this workflow
  workflow_dispatch:
  # Run this workflow daily at 11:55pm UTC
  schedule:
    - cron: '55 23 * * *'

Configuración

Configure el trabajo para que Copilot CLI pueda acceder al repositorio y ejecutarlo en el ejecutor de acciones. Esto permite Copilot CLI analizar el contexto del repositorio al generar el resumen diario.

El bloque permissions especifica el ámbito concedido a la función predefinida GITHUB_TOKEN. Dado que este flujo de trabajo lee los datos del repositorio e imprime un resumen en los registros, requiere contents: read.

YAML
permissions:
  contents: read
jobs:
  daily-summary:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          fetch-depth: 0

Instalación

Instale Copilot CLI en el ejecutor para que el flujo de trabajo pueda invocarlo como un comando. Puede instalar GitHub Copilot CLI mediante cualquier método de instalación compatible. Para obtener una lista completa de las opciones de instalación, consulte Instalación de la CLI de GitHub Copilot.

En este ejemplo, el flujo de trabajo instala GitHub Copilot CLI globalmente con npm.

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

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

Autenticar

Para permitir Copilot CLI que se ejecute en un ejecutor de acciones, debe proporcionar credenciales de autenticación. Hay dos opciones:

  • Uso de GITHUB_TOKEN (recomendado para repositorios propiedad de la organización): no se requiere PAT ni secretos almacenados. Consulte Uso de la CLI de Copilot en Acciones de GitHub con GITHUB_TOKEN.
  • Uso de : personal access token una alternativa a GITHUB_TOKEN, por ejemplo, si su organización no ha habilitado la directiva, o si desea que el uso se facture en el puesto de Copilot un usuario específico. Siga los pasos siguientes.

Paso 1: Crear un personal access token (PAT) con el permiso "Copilot Solicitudes":

  1. Vaya a su configuración personal para crear un nuevo fine-grained personal access token: github.com/settings/personal-access-tokens/new.
  2. Cree un nuevo PAT con el permiso "Copilot Solicitudes".
  3. Copie el valor del token.

Paso 2: Almacenar el PAT como secreto del repositorio de acciones:

  1. En el repositorio, vaya a Configuración > Secretos y variables > Acciones y haga clic en Nuevo secreto de repositorio.
  2. Asigne al secreto un nombre que usará en el flujo de trabajo. En este ejemplo se usa PERSONAL_ACCESS_TOKEN como nombre del secreto.
  3. Pegue el valor del token en el campo "Secreto" y haga clic en Agregar secreto.

El flujo de trabajo establece una variable de entorno especial con el valor del secreto del repositorio. Copilot CLI admite varias variables de entorno especiales para la autenticación. En este ejemplo, el flujo de trabajo usa COPILOT_GITHUB_TOKEN, que es específico de Copilot CLI y permite establecer permisos diferentes para Copilot los que podría usar en otro lugar con la variable de entorno integrada GITHUB_TOKEN .

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

Ejecute Copilot CLI:

Use copilot -p PROMPT [OPTIONS] para ejecutar la CLI mediante programación y salir cuando se complete el comando.

La CLI imprime su respuesta en la salida estándar, que se registra en el log durante la ejecución del flujo de trabajo de Actions. Sin embargo, para facilitar el acceso a los detalles de los cambios, en este ejemplo se agrega esta información al resumen de la ejecución del flujo de trabajo.

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

En este ejemplo se usan varias opciones después del uso de la línea de comandos de la CLI:

  • --allow-tool='shell(git:*)' permite Copilot ejecutar comandos de Git para analizar el historial del repositorio. Esto es necesario para generar el resumen de los cambios recientes.
  • --allow-tool='write' permite Copilot escribir el resumen generado en un archivo en el ejecutor.
  • --no-ask-user impide que la CLI solicite la entrada del usuario, lo que es importante cuando se ejecuta en un flujo de trabajo automatizado en el que no hay ningún usuario que responda a las solicitudes de entrada adicionales.

Pasos siguientes

Después de confirmar que el flujo de trabajo genera un resumen de los cambios, puede adaptar el mismo patrón a otras tareas de automatización. Empiece por cambiar la solicitud que pasa a copilot -p PROMPT y decida lo que desea hacer con el resultado. Por ejemplo, podría:

  • Cree una solicitud de incorporación de cambios para actualizar un archivo de registro de cambios en el repositorio con los cambios del día.
  • Envíe por correo electrónico el resumen a los mantenedores del repositorio.

Lectura adicional