forked from pixee/codemodder-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcodeql.py
More file actions
29 lines (24 loc) · 901 Bytes
/
codeql.py
File metadata and controls
29 lines (24 loc) · 901 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
27
28
29
from functools import cache
from pathlib import Path
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,
files_to_analyze: list[Path],
) -> ResultSet:
del codemod_id
del files_to_analyze
return process_codeql_findings(
tuple(context.tool_result_files_map.get("codeql", ()))
) # Convert list to tuple for cache hashability
@cache
def process_codeql_findings(semgrep_sarif_files: tuple[str]) -> ResultSet:
results = CodeQLResultSet()
for file in semgrep_sarif_files or ():
results |= CodeQLResultSet.from_sarif(file)
return results