Introducción
Puede pasar una instrucción directamente a CLI de Copilot en un solo comando, sin entrar en 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 código de programación, puede hacer cualquiera 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.
Consejos 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 indique (nombres de archivo, nombres de función, el cambio exacto), menos tendrá que adivinar Copilot. -
**Cite las instrucciones con cuidado**: use comillas simples alrededor del mensaje si desea evitar que el entorno de shell interprete caracteres especiales. -
**Dé siempre los permisos mínimos**: use las opciones de línea de comandos `--allow-tool=[TOOLS...]` y `--allow-url=[URLs...]` para dar permiso a Copilot con el fin de 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 obtener opciones que son especialmente útiles al ejecutar CLI de Copilot mediante programación.
Integración de CI/CD
Lo más común para ejecutar CLI de Copilot mediante código es incluir un comando de CLI en una fase del flujo de trabajo de CI/CD.
En este fragmento de un flujo de trabajo de GitHub Actions se ve un ejemplo sencillo de cómo ejecutar un comando de CLI de Copilot.
# 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 la CLI de Copilot 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 spara 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 la sesión en un gist en GitHub.com para compartirla fácilmente.
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
Capturar 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)