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
copilotcon la opción de línea de comandos-po--prompt, seguido de la instrucción:Shell copilot -p "Explain this file: ./complex.ts"
copilot -p "Explain this file: ./complex.ts" -
Redirija una instrucción al comando
copilot.Shell echo "Explain this file: ./complex.ts" | copilot
echo "Explain this file: ./complex.ts" | copilotNota:
La entrada dirigida se ignora si también indica una instrucción con la opción
-po--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
copilot -p 'Write a commit message in plain text for the staged changes' -s \ --allow-tool='shell(git:*)'
copilot -p 'Write a commit message in plain text for the staged changes' -s \
--allow-tool='shell(git:*)'
Resumir un archivo
copilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s
copilot -p 'Summarize what src/auth/login.ts does in no more than 100 words' -s
Escritura de pruebas para un módulo
copilot -p 'Write unit tests for src/utils/validators.ts' \ --allow-tool='write, shell(npm:*), shell(npx:*)'
copilot -p 'Write unit tests for src/utils/validators.ts' \
--allow-tool='write, shell(npm:*), shell(npx:*)'
Corrección de errores de lint
copilot -p 'Fix all ESLint errors in this project' \ --allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'
copilot -p 'Fix all ESLint errors in this project' \
--allow-tool='write, shell(npm:*), shell(npx:*), shell(git:*)'
Explicar una diferencia
copilot -p 'Explain the changes in the latest commit on this branch and flag any potential issues' -s
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.
copilot -p '/review the changes on this branch compared to main. Focus on bugs and security issues.' \ -s --allow-tool='shell(git:*)'
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
copilot -p 'Generate JSDoc comments for all exported functions in src/api/' \ --allow-tool=write
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.
copilot -p "Audit this project's dependencies for vulnerabilities" \ --allow-tool='shell(npm:*), shell(npx:*)' \ --share='./audit-report.md'
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.
copilot -p 'Summarize the architecture of this project' --share-gist
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
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"
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
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
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
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
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)