Skip to main content

Ejecución CLI de GitHub Copilot de forma programática

Use CLI de Copilot en el terminal, en scripts o en flujos de trabajo de acciones.

Introducción

Puede pasar una indicación directamente a CLI de Copilot en un solo comando, sin iniciar una sesión interactiva. Esto le permite usar Copilot directamente desde el terminal, pero también permite usar la CLI mediante programación en scripts, canalizaciones de CI/CD y flujos de trabajo de automatización.

Para usar CLI de Copilot mediante programación, puede hacer una de las siguientes acciones.

  • Use el comando copilot con la opción de línea de comandos -p o --prompt, seguido de la instrucción:

    Shell
    copilot -p "Explain this file: ./complex.ts"
    
  • Redirija una instrucción al comando copilot.

    Shell
    echo "Explain this file: ./complex.ts" | copilot
    

    Nota:

    La entrada dirigida se ignora si también indica una instrucción con la opción -p o --prompt.

Sugerencias para usar CLI de Copilot mediante programación

  •         **Proporcionar indicaciones precisas** : instrucciones claras e inequívocas producen mejores resultados que solicitudes vagas. Cuanto más contexto proporcione (nombres de archivo, nombres de función, el cambio exacto), menos adivinación Copilot tiene que hacer.
    
  •         **Cite las instrucciones con cuidado**: use comillas simples alrededor del mensaje si desea evitar que el entorno de shell interprete caracteres especiales.
    
  •         **Conceda siempre permisos mínimos** : use las `--allow-tool=[TOOLS...]` opciones de línea de comandos y `--allow-url=[URLs...]` para conceder Copilot permiso para usar solo las herramientas y el acceso necesarios para completar la tarea. Evite usar opciones demasiado permisivas (como `--allow-all`) a menos que trabaje en un entorno de pruebas.
    
  •         **Use `-s` (silencioso)** al capturar la salida. Esto suprime los metadatos de la sesión para obtener texto limpio.
    
  •         **Uso `--no-ask-user`** para evitar que el agente intente formular preguntas aclarando.
    
  •         **Establezca un modelo explícitamente** con `--model` para un comportamiento coherente entre entornos.
    

Consulte Referencia programática de la CLI de GitHub Copilot para ver las opciones que son especialmente útiles al ejecutarse CLI de Copilot mediante programación.

Integración de CI/CD

Un caso común de uso de la ejecución de CLI de Copilot programáticamente es incluir un comando CLI en un paso de flujo de trabajo de CI/CD.

Esta extracción de un GitHub Actions flujo de trabajo muestra un ejemplo sencillo de ejecutar un CLI de Copilot comando.

# Workflow step using Copilot CLI
- name: Generate test coverage report
  env:
    COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
  run: |
    copilot -p "Run the test suite and produce a coverage summary" \
      -s --allow-tool='shell(npm:*), write' --no-ask-user

Para obtener más información, vea Automatización de tareas con Copilot CLI y Acciones de GitHub.

Ejemplos de uso mediante programación

Generación de un mensaje de confirmación

Bash
copilot -p 'Write a commit message in plain text for the staged changes' -s \
  --allow-tool='shell(git:*)'

Resumir un archivo

Bash
copilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s

Escritura de pruebas para un módulo

Bash
copilot -p 'Write unit tests for src/utils/validators.ts' \
  --allow-tool='write, shell(npm:*), shell(npx:*)'

Corrección de errores de lint

Bash
copilot -p 'Fix all ESLint errors in this project' \
  --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'

Explicar una diferencia

Bash
copilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s

Revisión de código en una rama

Use el comando con barra diagonal /review para que el agente code-review incorporado revise los cambios del código en la rama actual.

Bash
copilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \
  -s --allow-tool='shell(git:*)'

Generación de documentación

Bash
copilot -p 'Generate JSDoc comments for all exported functions in src/api/' \
  --allow-tool=write

Exportar una sesión

Guarde la transcripción de sesión completa en un archivo Markdown en el sistema de archivos local.

Bash
copilot -p "Audit this project's dependencies for vulnerabilities" \
  --allow-tool='shell(npm:*), shell(npx:*)' \
  --share='./audit-report.md'

Guarde la transcripción de sesión en un gist en GitHub.com para facilitar el uso compartido.

Bash
copilot -p 'Summarize the architecture of this project' --share-gist

Nota:

Los Gists no están disponibles para Enterprise Managed Users o si utiliza GitHub Enterprise Cloud con residencia de datos (*.ghe.com).

Patrones de scripts en shell

Captura la salida de Copilot en una variable

Bash
result=$(copilot -p 'What version of Node.js does this project require? \
  Give the number only. No other text.' -s)
echo "Required Node version: $result"

Uso en un condicional

Bash
if copilot -p 'Does this project have any TypeScript errors? Reply only YES or NO.' -s \
  | grep -qi "no"; then
  echo "No type errors found."
else
  echo "Type errors detected."
fi

Procesar varios archivos

Bash
for file in src/api/*.ts; do
  echo "--- Reviewing $file ---" | tee -a review-results.md
  copilot -p "Review $file for error handling issues" -s --allow-all-tools | tee -a review-results.md
done

Lectura adicional

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)