Acerca de GitHub Copilot en la CLI
GitHub Copilot en la CLI proporciona una interfaz similar a un chat en el terminal que puede crear y modificar archivos de forma autónoma en el equipo y ejecutar comandos. Puedes pedir a Copilot que realice cualquier acción en los archivos de Active Directory.
GitHub Copilot en la CLI puede generar cambios personalizados en función de la descripción y las configuraciones, incluidas tareas como correcciones de errores, implementación de nuevas características incrementales, creación de prototipos, documentación y mantenimiento de código base.
Mientras trabaja en la tarea, el agente Copilot tiene acceso a tu entorno de terminal local, donde puede realizar cambios en el código, ejecutar pruebas automatizadas, ejecutar linter y comandos disponibles en tu entorno.
El agente se ha evaluado en una variedad de lenguajes de programación, con el inglés como idioma principal admitido.
El agente funciona mediante una combinación de procesamiento de lenguaje natural y aprendizaje automático para comprender la tarea y realizar cambios en un código base para completar la tarea. Este proceso se puede dividir en varios pasos.
Procesamiento de entradas
La solicitud de entrada del usuario se combina con otra información contextual relevante para formar un mensaje. Ese mensaje se envía a un modelo de lenguaje grande para su procesamiento. Las entradas pueden adoptar la forma de lenguaje natural sin formato, fragmentos de código o referencias a archivos del terminal.
Análisis del modelo de lenguaje
Después, el mensaje se pasa por un modelo de lenguaje grande, que es una red neuronal entrenada con un cuerpo de datos de gran tamaño. El modelo de lenguaje analiza el mensaje de entrada para ayudar al agente a razonar sobre la tarea y aprovechar las herramientas necesarias.
Generación de respuestas
El modelo de lenguaje genera una respuesta basada en su análisis del mensaje. Esta respuesta puede adoptar la forma de sugerencias de lenguaje natural, sugerencias de código, modificaciones de archivos y ejecuciones de comandos.
Formato de salida
La respuesta generada por el agente tiene un formato y se te presenta. GitHub Copilot en la CLI puede usar el resaltado de sintaxis, sangría y otras características de formato para agregar claridad a la respuesta generada.
Es posible que el agente también quiera ejecutar comandos en el entorno local y crear, editar o eliminar archivos en el sistema de archivos para completar la tarea.
Puedes proporcionar comentarios al agente después de que devuelva una respuesta en la ventana de chat interactiva. Después, el agente volverá a enviar los comentarios al modelo de lenguaje para su posterior análisis. Una vez que el agente complete los cambios en función de los comentarios, el agente devolverá una respuesta adicional.
Copilot está pensado para proporcionarte la solución más relevante para la resolución de tareas. Sin embargo, es posible que no siempre proporcione la respuesta que buscas. Eres responsable de revisar y validar las respuestas generadas por Copilot para garantizar que sean precisas y adecuadas. Para obtener más información, consulta la sección Mejora de los resultados de GitHub Copilot en la CLI, más adelante en este artículo.
Casos de uso de GitHub Copilot en la CLI
Puedes delegar una tarea a Copilot en diversos escenarios, incluidos, entre otros los siguientes:
- Mantenimiento de código base: aborda correcciones relacionadas con la seguridad, actualizaciones de dependencia y refactorización dirigida.
- Documentación: actualización y creación de documentación.
- Desarrollo de características: implementación de solicitudes de características incrementales.
- Mejora de la cobertura de las pruebas: desarrollo de conjuntos de pruebas adicionales para la administración de la calidad.
- Creación de prototipos de nuevos proyectos: nuevos conceptos de tipo greenfield.
- Configuración del entorno: ejecución de comandos en el terminal para configurar el entorno local para trabajar en proyectos existentes
- Busca el comando correcto para realizar una tarea: Copilot puede proporcionar sugerencias para que los comandos realicen las tareas que estás intentando completar.
- Explicar un comando desconocido: Copilot puede proporcionar una descripción en lenguaje natural de la funcionalidad y el propósito de un comando.
Mejora de los resultados de GitHub Copilot en la CLI
GitHub Copilot en la CLI puede admitir una amplia gama de tareas. Para mejorar las respuestas que recibe y abordar algunas de las limitaciones del agente, hay varias medidas que puedes adoptar.
Para obtener más información sobre las limitaciones, consulta la sección Limitaciones de GitHub Copilot en la CLI, más adelante en este artículo.
Comprobación de que las tareas tienen un ámbito correcto
GitHub Copilot en la CLI aprovecha el mensaje como contexto clave al generar una solicitud de cambios. Cuanto más claro y definido sea el ámbito del mensaje que se asigna al agente, mejor serán los resultados que obtendrás. Una incidencia ideal incluye lo siguiente:
- Una descripción clara del problema que se va a resolver o del trabajo necesario.
- Criterios de aceptación completos sobre el aspecto de una buena solución (por ejemplo, ¿debería haber pruebas unitarias?).
- Sugerencias sobre qué archivos deben cambiarse.
Personalización de la experiencia con contexto adicional
GitHub Copilot en la CLI aprovecha el mensaje, los comentarios y el código del repositorio como contexto al generar cambios sugeridos. Para mejorar el rendimiento de Copilot, considera la posibilidad de implementar instrucciones personalizadas de Copilot para ayudar al agente a comprender mejor el proyecto y cómo compilar, probar y validar sus cambios. Para más información, consulta "Adición de instrucciones personalizadas al repositorio" en Procedimientos recomendados a fin de usar GitHub Copilot para trabajar en tareas.
Uso de GitHub Copilot en la CLI como herramienta, no como reemplazo
Si bien GitHub Copilot en la CLI puede ser una herramienta eficaz para generar código y documentación, es importante que la utilices como herramienta y no como reemplazo de la programación humana. Siempre debes revisar y comprobar el código que genera GitHub Copilot en la CLI para asegurarte de que cumple con los requisitos y que no tiene errores ni problemas de seguridad.
Uso de procedimientos de codificación segura y revisión del código
Aunque GitHub Copilot en la CLI puede generar código sintácticamente correcto, es posible que no siempre sea seguro. Siempre tienes que seguir los procedimientos recomendados para lograr una programación segura, como evitar las contraseñas codificadas de forma rígida o las vulnerabilidades por inyección de código SQL, así como los procedimientos recomendados de revisión del código, para abordar las limitaciones del agente. Siempre debes tomar las mismas precauciones que con cualquier código que escribas que use material que no originado de forma independiente, incluidas las precauciones para garantizar su idoneidad. Estas incluyen pruebas rigurosas, examen de IP y revisión de vulnerabilidades de seguridad.
Envío de comentarios
Si tienes problemas o limitaciones con GitHub Copilot en la CLI, se recomienda proporcionar comentarios mediante el comando /feedback
.
Medidas de seguridad para GitHub Copilot en la CLI
Restricción de permisos de Copilot
De forma predeterminada, Copilot solo tiene acceso a archivos y carpetas en el directorio desde el que se invocó GitHub Copilot en la CLI. Asegúrate de que confías en los archivos de este directorio. Si Copilot desea tener acceso a archivos fuera del directorio actual, solicitará permiso. Concede permiso solo si confías en el contenido de ese directorio.
Copilot pedirá permiso antes de modificar los archivos. Asegúrate de que estás modificando los archivos correctos antes de conceder el permiso.
Copilot también pedirá permiso antes de ejecutar comandos que pueden ser peligrosos. Revisa estos comandos detenidamente antes de concederle permiso para ejecutarlos.
Para obtener más información sobre las prácticas de seguridad al usar GitHub Copilot en la CLI, consulta "Consideraciones de seguridad" en Acerca de la CLI de GitHub Copilot.
Limitaciones de la GitHub Copilot en la CLI
En función de factores como el código base y los datos de entrada, es posible que experimentes distintos niveles de rendimiento al utilizar GitHub Copilot en la CLI. La información siguiente está diseñada para ayudarte a entender las limitaciones del sistema y los conceptos clave sobre el rendimiento aplicables a la GitHub Copilot en la CLI.
Ámbito limitado
El modelo de lenguaje que usa GitHub Copilot en la CLI se ha entrenado con un cuerpo de código grande, pero sigue teniendo un ámbito limitado y es posible que no pueda controlar determinadas estructuras de código o lenguajes de programación oscuros. Para cada idioma, la calidad de las sugerencias que reciba puede depender del volumen y la diversidad de datos de entrenamiento para ese idioma.
Sesgos posibles
El modelo de lenguaje usado por los datos de entrenamiento de GitHub Copilot en la CLI y el contexto recopilados por el modelo de lenguaje grande puede contener sesgos y errores que la herramienta puede perpetuar. Además, GitHub Copilot en la CLI puede tener un sesgo hacia determinados lenguajes de programación o estilos de programación, lo que puede dar lugar a comentarios poco óptimos o incompletos.
Riesgos de seguridad
GitHub Copilot en la CLI genera código y lenguaje natural basado en el contexto de una incidencia o comentario dentro de un repositorio, lo que puede exponer información confidencial o vulnerabilidades si no se usa cuidadosamente. Debes tener cuidado y revisar todas las salidas generadas por GitHub Copilot en la CLI exhaustivamente antes de la combinación.
Código inexacto
GitHub Copilot en la CLI puede generar código que aparenta ser válido, pero que en realidad no es semántica o sintácticamente correcto, o puede que no refleje con precisión la intención del desarrollador.
Para mitigar el riesgo de código inexacto, debes revisar y probar cuidadosamente el código generado, especialmente cuando se trabaja con aplicaciones críticas o confidenciales. También debes asegurarte de que el código generado cumple con los procedimientos recomendados y los modelos de diseño y se ajusta a la arquitectura general y al estilo del código base.
Código público
GitHub Copilot en la CLI puede generar código que sea una coincidencia o una coincidencia aproximada del código disponible públicamente, incluso si la directiva "Suggestions matching public code" está establecida en "Block". Consulta Administración de directivas de GitHub Copilot como suscriptor individual.
Consideraciones normativas y de cumplimiento
Los usuarios deben evaluar posibles obligaciones legales y normativas específicas al usar cualquier servicio y soluciones de inteligencia artificial, que pueden no ser adecuados para su uso en todos los sectores o escenarios. Además, los servicios o soluciones de inteligencia artificial no están diseñados para y pueden no usarse de maneras prohibidas en términos de servicio aplicables y códigos de conducta pertinentes.
Administración de riesgos y responsabilidad del usuario en la ejecución de comandos
Se requiere precaución adicional al preguntar o permitir que GitHub Copilot en la CLI ejecute un comando, especialmente en relación con respecto a la posible destrucción de algunos comandos sugeridos. Es posible que encuentre comandos para la eliminación de archivos o el formato del disco duro, lo que puede causar problemas si se usan incorrectamente. Aunque estos comandos pueden ser necesarios en determinados escenarios, debe tener cuidado al aceptar y ejecutar estos comandos.
Además, es responsable en última instancia de los comandos ejecutados por GitHub Copilot en la CLI. Es completamente decisión suya el usar comandos generados por GitHub Copilot en la CLI. A pesar de la presencia de mecanismos de seguridad y notificaciones de error, debe comprender que la ejecución de comandos conlleva riesgos inherentes. GitHub Copilot en la CLI proporciona un conjunto de herramientas eficaz, pero debe abordar sus recomendaciones con precaución y asegurarse de que los comandos se ajustan a sus intenciones y requisitos.