Acerca de la salida SARIF
GitHub crea alertas de code scanning en un repositorio utilizando información de los archivos de Formato de Intercambio para Resultados de Análisis Estático (SARIF). SARIF es un formato diseñado para representar la salida de una amplia variedad de herramientas de análisis estático, y hay muchas características en la especificación SARIF que se consideran "opcionales". Los resultados deben usar la versión 2.1.0 de SARIF. Para obtener más información, vea «Soporte de SARIF para escaneo de código».
Después de analizar una base de datos de CodeQL mediante la CodeQL CLI, tendrá un archivo SARIF que contiene los resultados. Para obtener más información, vea «Análisis del código con consultas de CodeQL». A continuación, puedes usar la CodeQL CLI para cargar los resultados en GitHub.
Si has usado un método distinto de la CodeQL CLI para generar los resultados, puedes utilizar otros métodos de carga. Para obtener más información, vea «Subir un archivo SARIF a GitHub».
Cargar resultados en GitHub Enterprise Server
Puedes comprobar que las propiedades SARIF tienen el tamaño compatible para la carga y que el archivo es compatible con el examen de código. Para más información, consulta "Soporte de SARIF para escaneo de código".
Para poder cargar resultados en GitHub Enterprise Server, debes determinar la mejor forma de pasar la GitHub App o el personal access token que creaste anteriormente a la CodeQL CLI (consulta "Configuración de la CLI de CodeQL"). Se recomienda revisar las instrucciones del sistema de CI sobre el uso seguro de un almacén de secretos. El CodeQL CLI es compatible con:
- Interacción con un almacén de secretos mediante la opción
--github-auth-stdin
(recomendado). - Guardar el secreto en la variable de entorno
GITHUB_TOKEN
y ejecutar la CLI sin incluir la opción--github-auth-stdin
. - Con fines de prueba, puedes pasar la opción de línea de comandos
--github-auth-stdin
y proporcionar un token temporal a través de la entrada estándar.
Cuando hayas decidido el método más seguro y confiable para la configuración, ejecuta codeql github upload-results
en cada archivo de resultados SARIF e incluye --github-auth-stdin
a menos que el token esté disponible en la variable de entorno GITHUB_TOKEN
.
# GitHub App or personal access token available from a secret store
<call-to-retrieve-secret> | codeql github upload-results \
--repository=<repository-name> \
--ref=<ref> --commit=<commit> \
--sarif=<file> --github-url=<URL> \
--github-auth-stdin
# GitHub App or personal access token available in GITHUB_TOKEN
codeql github upload-results \
--repository=<repository-name> \
--ref=<ref> --commit=<commit> \
--sarif=<file> --github-url=<URL> \
Opción | Obligatorio | Uso |
---|---|---|
--repository | Especifique el PROPIETARIO/NOMBRE del repositorio en el que se cargarán los datos. El propietario debe ser una organización dentro de una empresa que tenga una licencia de GitHub Advanced Security, y la GitHub Advanced Security debe estar habilitada para el repositorio. Para obtener más información, vea «Administración de la configuración de seguridad y análisis para el repositorio». | |
--ref | Especifique el nombre de la ref que ha extraído del repositorio y ha analizado para que los resultados puedan coincidir con el código correcto. Para usarla en una rama: refs/heads/BRANCH-NAME , para la confirmación del encabezado de una solicitud de incorporación de cambios use refs/pull/NUMBER/head , y para la confirmación de la combinación generada por GitHub de una solicitud de incorporación de cambios use refs/pull/NUMBER/merge . | |
--commit | Especifique el SHA completo de la confirmación que ha analizado. | |
--sarif | Especifica el archivo SARIF que se va a cargar. | |
--github-url | Especifica la URL de GitHub Enterprise Server. | |
--github-auth-stdin | Pasa a la CLI la instancia de GitHub App o el personal access token que creaste para autenticarte con la API REST de GitHub desde el almacén de secretos a través de una entrada estándar. Esto no es necesario si el comando tiene acceso a una variable de entorno GITHUB_TOKEN establecida con este token. |
Para obtener más información, vea «github upload-results».
Ejemplo básico de carga de resultados en GitHub Enterprise Server
En este ejemplo se cargan los resultados del archivo SARIF temp/example-repo-js.sarif
en el repositorio my-org/example-repo
. Se indica a la API de code scanning que los resultados son para la confirmación de deb275d2d5fe9a522a0b7bd8b6b6a1c939552718
en la rama de main
. En el ejemplo se da por hecho que la instancia de GitHub App o el personal access token creado para la autenticación con la API REST de GitHub usa la variable de entorno GITHUB_TOKEN
.
codeql github upload-results \
--repository=my-org/example-repo \
--ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \
--sarif=/temp/example-repo-js.sarif --github-url=https://github.example.com \
No hay salida para este comando a menos de que la carga no sea exitosa. El símbolo de sistema regresa cuando la carga se completa e inicia el procesamiento de datos. En bases de código más pequeñas, debes poder explorar las alertas del code scanning en GitHub Enterprise Server poco tiempo después. Puedes ver alertas directamente en la solicitud de incorporación de cambios o en la pestaña Seguridad de las ramas, según el código extraído del repositorio. Para más información, consulta "Clasificar las alertas del escaneo de código en las solicitudes de cambios" y "Administración de alertas de examen de código para el repositorio".