-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathcodeql.py
More file actions
26 lines (21 loc) · 807 Bytes
/
codeql.py
File metadata and controls
26 lines (21 loc) · 807 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from functools import cache
from codemodder.codemods.base_detector import BaseDetector
from codemodder.codeql import CodeQLResultSet
from codemodder.context import CodemodExecutionContext
from codemodder.result import ResultSet
class CodeQLSarifFileDetector(BaseDetector):
def apply(
self,
codemod_id: str,
context: CodemodExecutionContext,
) -> ResultSet:
del codemod_id
return process_codeql_findings(
tuple(context.tool_result_files_map.get("codeql", ()))
) # Convert list to tuple for cache hashability
@cache
def process_codeql_findings(codeql_sarif_files: tuple[str]) -> ResultSet:
results = CodeQLResultSet()
for file in codeql_sarif_files or ():
results |= CodeQLResultSet.from_sarif(file)
return results