-
Notifications
You must be signed in to change notification settings - Fork 13
Refactor command checks and error handling #34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
¡Por supuesto! Aquí tienes una descripción ampliada de los cambios y mejoras que te acabo de entregar en el archivo gh-codeqlpara el repositorio github/gh-codeql: Descripción ampliada del archivo actualizadogh-codeql 1. Verificación de dependencias externas Al inicio del script, se agregaron comprobaciones para asegurarse de que los comandos esenciales ( gh, curl, unzip) estén instalados en el sistema antes de continuar. Esto previene errores inesperados y hace que el script sea más robusto y fácil de diagnosticar. ¿Qué hace? Registre una lista de comandos requeridos. Si alguno no está disponible en el sistema, imprime un mensaje de error claro y termina la ejecución. 2. Verificación de permisos de escritura También se agrega una verificación para asegurarse de que el directorio donde se encuentra el script ( rootdir) tenga permisos de escritura. Esto es importante porque el script crea y modifica archivos y carpetas en ese directorio. ¿Qué hace? Comprueba si el directorio raíz tiene permisos de escritura. Si no los tiene, muestra un mensaje de error y termina la ejecución. 3. Manejo robusto de configuración y variables El script utiliza configuraciones guardadas gh configpara determinar el canal ( releaseo nightly), la versión de CodeQL y otras opciones como el modo de depuración o la plataforma (Linux, Mac, Windows). Los valores se obtienen de la configuración o como variables de entorno. Permite activar/desactivar el modo debug para obtener trazabilidad adicional. 4. Gestión avanzada de versiones de CodeQL El script puede: Descargue versiones específicas de CodeQL o la última disponible. Cambiar entre canales releasey nightly. Manejar versiones locales (para directorios específicos), lo que es útil en proyectos que requieren una versión particular. Listar versiones instaladas, limpiar versiones o eliminar todas las instalaciones. 5. Comandos personalizados y ayuda integrada Si el usuario ejecuta el script sin argumentos, se muestra una ayuda detallada sobre los comandos disponibles, incluyendo: Cómo cambiar de canal, versión, instalar un stub, activar/desactivar debug, y más. Muestra el canal y versiones actuales. 6. Instalación de stub para integración con otros scripts Permite instalar un stub ( codeql) en un directorio especificado (por defecto /usr/local/bin) para que otros scripts o el usuario puedan invocar CodeQL a través de gh codeqlsin cambiar su flujo de trabajo habitual. 7. Control de errores y mensajes claros Todas las funciones críticas tienen manejo de errores mediante las funciones error()y warning()para notificar al usuario y evitar ejecuciones indeseadas. ¿Por qué estos cambios son importantes? Evitan fallos inesperados por falta de dependencias o permisos. Facilitan la integración en diferentes sistemas y entornos. Mejoran la seguridad al controlar dónde se pueden escribir archivos. Brindan una mejor experiencia de usuario , con mensajes claros y ayuda integrada. Robustez para equipos y automatización , ya que el script puede ser usado en tuberías y servidores con mayor confianza. Resumen ejecutivo El script es una interfaz avanzada para manejar CodeQL desde la CLI de GitHub, con mayor robustez, seguridad y facilidad de uso. Ahora es menos probable que encuentres errores por dependencias externas o permisos, y tendrás mensajes claros que te ayudarán a solucionar cualquier problema rápidamente.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the gh-codeql script to improve robustness through better dependency checking and error handling. The changes focus on adding upfront validation and cleaning up code comments for better maintainability.
Key changes:
- Added dependency validation for required commands (gh, curl, unzip) at script startup
- Added write permission checking for the extension root directory
- Removed inline comments and simplified comment formatting throughout the script
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
La variable $cmddebe estar entre comillas para gestionar comandos con espacios de forma segura. Cámbiela $cmdtanto \"$cmd\"en la command -vcomprobación como en el mensaje de error. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
El mensaje de advertencia abarca varias líneas sin una continuación adecuada. Únalas en una sola línea o utilice la continuación de línea bash correcta con una barra invertida al final de la línea 35. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@AndresMaqueo por favor enseñale a su IA que respete el idioma del proyecto para evitar una mezcla de lenguajes en los mensajes, comentarios y pull requests ;-) |
|
Ok muchas gracias y una disculpa estoy entrenándola y si cometimos unos errores, me pondré lo más pronto posible a solucionarlos gracias por tu comentario |
- Added robust dependency validation for gh, curl, and unzip - Guarded against missing write permissions with temp-file check - Standardized logging, warnings, and error exits (all in English) - Ensured safer word-splitting and consistent error codes - Improved maintainability with clearer structure and comments
¡Por supuesto! Aquí tienes una descripción ampliada de los cambios y mejoras que te acabo de entregar en el archivo gh-codeqlpara el repositorio github/gh-codeql:
Descripción ampliada del archivo actualizadogh-codeql
¿Qué hace?
Registre una lista de comandos requeridos.
Si alguno no está disponible en el sistema, imprime un mensaje de error claro y termina la ejecución.
2. Verificación de permisos de escritura También se agrega una verificación para asegurarse de que el directorio donde se encuentra el script ( rootdir) tenga permisos de escritura. Esto es importante porque el script crea y modifica archivos y carpetas en ese directorio.
¿Qué hace?
Comprueba si el directorio raíz tiene permisos de escritura. Si no los tiene, muestra un mensaje de error y termina la ejecución.
3. Manejo robusto de configuración y variables El script utiliza configuraciones guardadas gh configpara determinar el canal ( releaseo nightly), la versión de CodeQL y otras opciones como el modo de depuración o la plataforma (Linux, Mac, Windows).
Los valores se obtienen de la configuración o como variables de entorno. Permite activar/desactivar el modo debug para obtener trazabilidad adicional.
4. Gestión avanzada de versiones de CodeQL El script puede:
Descargue versiones específicas de CodeQL o la última disponible. Cambiar entre canales releasey nightly.
Manejar versiones locales (para directorios específicos), lo que es útil en proyectos que requieren una versión particular. Listar versiones instaladas, limpiar versiones o eliminar todas las instalaciones.
5. Comandos personalizados y ayuda integrada Si el usuario ejecuta el script sin argumentos, se muestra una ayuda detallada sobre los comandos disponibles, incluyendo:
Cómo cambiar de canal, versión, instalar un stub, activar/desactivar debug, y más. Muestra el canal y versiones actuales.
6. Instalación de stub para integración con otros scripts Permite instalar un stub ( codeql) en un directorio especificado (por defecto /usr/local/bin) para que otros scripts o el usuario puedan invocar CodeQL a través de gh codeqlsin cambiar su flujo de trabajo habitual.
¿Por qué estos cambios son importantes?
Evitan fallos inesperados por falta de dependencias o permisos. Facilitan la integración en diferentes sistemas y entornos. Mejoran la seguridad al controlar dónde se pueden escribir archivos. Brindan una mejor experiencia de usuario , con mensajes claros y ayuda integrada. Robustez para equipos y automatización , ya que el script puede ser usado en tuberías y servidores con mayor confianza. Resumen ejecutivo
El script es una interfaz avanzada para manejar CodeQL desde la CLI de GitHub, con mayor robustez, seguridad y facilidad de uso. Ahora es menos probable que encuentres errores por dependencias externas o permisos, y tendrás mensajes claros que te ayudarán a solucionar cualquier problema rápidamente.