SARIF es el formato de intercambio de resultados de análisis estático, este proyecto busca proporcionar una interfaz simple para generar informes en el formato SARIF.
Este ejemplo se toma directamente de las páginas de Microsoft Sarif
{
"version" : " 2.1.0 " ,
"$schema" : " https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json " ,
"runs" : [
{
"tool" : {
"driver" : {
"name" : " ESLint " ,
"informationUri" : " https://eslint.org " ,
"rules" : [
{
"id" : " no-unused-vars " ,
"shortDescription" : {
"text" : " disallow unused variables "
},
"helpUri" : " https://eslint.org/docs/rules/no-unused-vars " ,
"properties" : {
"category" : " Variables "
}
}
]
}
},
"artifacts" : [
{
"location" : {
"uri" : " file:///C:/dev/sarif/sarif-tutorials/samples/Introduction/simple-example.js "
}
}
],
"results" : [
{
"level" : " error " ,
"message" : {
"text" : " 'x' is assigned a value but never used. "
},
"locations" : [
{
"physicalLocation" : {
"artifactLocation" : {
"uri" : " file:///C:/dev/sarif/sarif-tutorials/samples/Introduction/simple-example.js " ,
"index" : 0
},
"region" : {
"startLine" : 1 ,
"startColumn" : 5
}
}
}
],
"ruleId" : " no-unused-vars " ,
"ruleIndex" : 0
}
]
}
]
}Uno de los proyectos a los que me gusta contribuir es TFSEC: esta es una herramienta de análisis estático para Terraform que produce salida en muchos formatos. La generación de informes de SARIF le faltan funcionalidad y sintió que justificaba ser trasladado a un proyecto propio.
Para obtener más información sobre SARIF, puede visitar el sitio Oasis Open.
Agregue una importación para go get github.com/owenrumney/go-sarif/sarif
Hay varias formas de cargar en el contenido de un informe SARIF.
sarif.Open toma una ruta de archivo y carga el sarif desde esa ubicación. Devuelve un informe y cualquier error correspondiente
sarif.FromBytes toma una porción de byte y devuelve un informe y cualquier error correspondiente.
sarif.FromString toma una cadena del contenido de SARIF y devuelve un informe y cualquier error correspondiente.
La creación de un nuevo informe SARIF se realiza pasando la versión, el único compatible en este momento es 2.1.0
Para obtener un ejemplo detallado, consulte la carpeta de ejemplo Ejemplo/main.go