Sarif est le format d'échange de résultats d'analyse statique, ce projet cherche à fournir une interface simple pour générer des rapports au format SariF.
Cet exemple est tiré directement des pages 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
}
]
}
]
}L'un des projets que j'aime contribuer est TFSEC - Il s'agit d'un outil d'analyse statique pour Terraform qui produit la sortie dans de nombreux formats. La génération de rapports SariF est manquante et a eu l'impression d'être justifié d'être transféré dans un projet qui lui est propre.
Pour plus d'informations sur Sarif, vous pouvez visiter le site ouvert d'Oasis.
Ajoutez une importation pour go get github.com/owenrumney/go-sarif/sarif
Il existe un certain nombre de façons de charger dans le contenu d'un rapport SARIF.
sarif.Open prend un chemin de fichier et charge le Sarif à partir de cet emplacement. Renvoie un rapport et toute erreur correspondante
sarif.FromBytes prend une tranche d'octet et renvoie un rapport et toute erreur correspondante.
sarif.FromString prend une chaîne de contenu SariF et renvoie un rapport et toute erreur correspondante.
La création d'un nouveau rapport Sarif est réalisée en passant la version, la seule prise en charge en ce moment est 2.1.0
Pour un exemple détaillé, vérifiez l'exemple d'exemple de dossier / Main.go