Add: Python script to convert findings of checkstyle to GitLab code report
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# Skript to convert findings of checkstyle into code quality report for gitlab
|
||||
import xml.etree.ElementTree as ET, json, hashlib
|
||||
|
||||
findings = []
|
||||
for source in ["main", "test"]:
|
||||
try:
|
||||
tree = ET.parse(f"build/reports/checkstyle/{source}.xml")
|
||||
for file in tree.findall("file"):
|
||||
path = file.get("name")
|
||||
for error in file.findall("error"):
|
||||
line = int(error.get("line", 1))
|
||||
msg = error.get("message", "")
|
||||
fingerprint = hashlib.md5(f"{path}{line}{msg}".encode()).hexdigest()
|
||||
findings.append({
|
||||
"type": "issue",
|
||||
"check_name": error.get("source", "checkstyle"),
|
||||
"description": msg,
|
||||
"severity": "minor",
|
||||
"fingerprint": fingerprint,
|
||||
"location": {
|
||||
"path": "src/" + path.split("/src/")[1] if "/src/" in path else path,
|
||||
"lines": {"begin": line}
|
||||
}
|
||||
})
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
with open("gl-code-quality-report.json", "w") as f:
|
||||
json.dump(findings, f)
|
||||
Reference in New Issue
Block a user