La biblioteca actual proporciona el conjunto de utilidades, dirigido a trabajar con archivos .sarif .
SARIF - Formato de intercambio de resultados de análisis estáticos es un formato estándar basado en JSON para la salida de herramientas de análisis estático, elaborado por Microsoft.
Existen diferentes herramientas de análisis estático, pero generalmente todas están unidas por un concepto: detectar vulnerabilidades de software.
Por lo tanto, en la salida del trabajo de la herramienta de análisis estático, habrá el conjunto de warnings ,
que apuntan al código olores. Algunas herramientas han ido más allá y brindan una oportunidad
Para fix automáticamente dichos olores de código.
En consecuencia, los archivos SARIF , que podrían ser uno de los posibles formatos para los informes de las herramientas de análisis estático, contendrán secciones correspondientes para warnings y fixes , obtenidas por dichas herramientas, que apuntan a las vulnerabilidades correspondientes en los archivos de destino.
El módulo Fix-Patches está configurado para funcionar con secciones fix object de archivos formateados SARIF .
fix object representa una solución propuesta para el problema, indicado por la herramienta.Fix-Patches , a su vez, analizarán tales secciones, creará una copia de los archivos de destino, que se presentan en SARIF y aplicarán automáticamente las correcciones a estas copias.La salida del resultado contendrá la lista de rutas a las copias de los archivos de destino proporcionados con correcciones aplicadas.
Nota: Si el archivo SARIF contendrá múltiples correcciones para la misma región en un archivo, solo la primera corrección estará aplicada.
La biblioteca proporciona API fácil de usar para la aplicación de parches de corrección, solo es necesario proporcionar la ruta al archivo SARIF , que contiene la lista de correcciones ( fix objects ) para archivos de destino y la lista de rutas a estos archivos, en la manera en que se presentan en SARIF (a través de rutas absolutas/relativas).
val processedFiles : List < Path > = SarifFixAdapter (
sarifFile = sarifFilePath,
targetFiles = listOfTargetFilesPaths,
testRoot = " /path/to/test/root/directory/ " .toPath()
).process()