Puede ejecutar CLI de GitHub Copilot en un flujo de trabajo GitHub Actions para automatizar tareas impulsadas por inteligencia artificial como parte de su proceso de CI/CD. Por ejemplo, puede resumir la actividad reciente del repositorio, generar informes o estructurar el contenido del proyecto. CLI de GitHub Copilot se ejecuta en el runner de Actions como cualquier otra herramienta de CLI, por lo que puede instalarlo durante un trabajo e invocarlo desde los pasos del flujo de trabajo.
Uso de CLI de Copilot en un flujo de trabajo de Acciones
Puede definir un trabajo en un flujo de trabajo GitHub Actions que: instala CLI de Copilot en el ejecutor, lo autentica, lo ejecuta en modo mediante programación y, a continuación, controla 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. 1. Configuración: código de desprotección, configuración del entorno. 1. Instalación: instale CLI de GitHub Copilot en el ejecutor. 1. Autenticación: asegúrese de que la CLI tiene los permisos necesarios para acceder al repositorio y realizar cambios. 1. Ejecute CLI de Copilot: Invoque CLI de Copilot 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.
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"
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.
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 * * *'
Configuración
Configure el trabajo para que CLI de Copilot pueda acceder al repositorio y ejecutarse en el ejecutor de acciones. Esto permite que CLI de Copilot analice 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.
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
Instalación
Instale CLI de Copilot en el ejecutor para que el flujo de trabajo pueda invocarlo como un comando. Puede instalar CLI de GitHub Copilot mediante cualquier método de instalación compatible. Para obtener una lista completa de las opciones de instalación, consulte Instalación de GitHub Copilot CLI.
En este ejemplo, el flujo de trabajo instala CLI de GitHub Copilot globalmente con 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
Autenticar
Para permitir que CLI de Copilot se ejecute en un ejecutor de acciones, debe autenticar una cuenta de usuario de GitHub con una licencia válida Copilot.
**Paso 1: Crear un personal access token (PAT) con el permiso "Solicitudes de Copilot":**
-
Acceda a su configuración personal para crear un fine-grained personal access token: github.com/settings/personal-access-tokens/new.
-
Cree un nuevo PAT con el permiso "Solicitudes de Copilot".
-
Copie el valor del token.
**Paso 2: Almacenar el PAT como secreto del repositorio de acciones:** -
En el repositorio, vaya a Configuración > Secretos y variables > Acciones y haga clic en Nuevo secreto de repositorio.
-
Asigne al secreto un nombre que usará en el flujo de trabajo. En este ejemplo se usa
PERSONAL_ACCESS_TOKENcomo nombre del secreto. -
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. CLI de Copilot admite varias variables de entorno especiales para la autenticación. En este ejemplo, el proceso de trabajo utiliza COPILOT_GITHUB_TOKEN, que es específico de CLI de Copilot y permite establecer permisos distintos para Copilot de los que se podrían usar en otra parte con la variable de entorno 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 }}
Ejecutar CLI de Copilot
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.
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"
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 que Copilot ejecute comandos de Git para analizar el historial del repositorio. Esto es necesario para generar el resumen de los cambios recientes. -
`--allow-tool='write'` permite que Copilot escriba el resumen generado en un archivo del 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
-
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) -
[AUTOTITLE](/actions) -
[AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically)