Die aktuelle Bibliothek bietet den Versorgungsunternehmen, das angewiesen ist, mit .sarif -Dateien zu arbeiten.
SARIF - Statische Analyseergebnisse Interchange Format ist ein Standard -JSON -basiertes Format für die Ausgabe statischer Analyse -Tools, die von Microsoft ausgearbeitet wurden.
Es gibt verschiedene statische Analyse -Tools, aber im Allgemeinen sind alle durch ein Konzept vereint - um Software -Schwachstellen zu erkennen.
Somit wird es bei der Ausgabe der Arbeit des statischen Analyse -Tools die warnings geben.
die auf die Codegerüche hingewiesen werden. Einige Tools sind weiter gegangen und bieten eine Chance
Um solche Codegerüche automatisch zu fix .
Dementsprechend enthalten SARIF -Dateien, die eine der möglichen Formate für Berichte über statische Analyse -Tools sein könnten, entsprechende Abschnitte für warnings und fixes , die von solchen Tools erhalten werden und auf die entsprechenden Schwachstellen in Zieldateien hingewiesen werden.
Fix-Patches -Modul wird so eingestellt, dass sie mit fix object -Objektabschnitten von SARIF -formatierten Dateien gearbeitet werden.
fix object stellt eine vorgeschlagene Lösung für das Problem dar, angezeigt durch das Tool.Fix-Patches analysiert diese Abschnitte, erstellen Sie die Kopie von Zieldateien, die in SARIF angezeigt werden, und wenden automatisch Korrekturen auf diese Kopien an.Die Ergebnisausgabe enthält die Liste der Pfade zu den Kopien von bereitgestellten Zieldateien mit angewandten Korrekturen.
Hinweis: Wenn SARIF -Datei in einer Datei mehrere Korrekturen für dieselbe Region enthält, wird nur der erste Fix angelegt.
Die Bibliothek bietet eine benutzerfreundliche API für die Bewerbung von Patches, die nur den Pfad zur SARIF Datei bereitstellen müssen, die die Liste der Fixes ( fix objects ) für Zieldateien und die Liste der Pfade zu diesen Dateien enthalten, in der Art und Weise, in der sie in SARIF (über absolute/relative Pfade) dargestellt werden.
val processedFiles : List < Path > = SarifFixAdapter (
sarifFile = sarifFilePath,
targetFiles = listOfTargetFilesPaths,
testRoot = " /path/to/test/root/directory/ " .toPath()
).process()