49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
import json
|
|
|
|
class GenerateLinter:
|
|
def __init__(self,
|
|
json_file="ruff-report.json",
|
|
output_file="lint-result.json"):
|
|
"""
|
|
初期化
|
|
"""
|
|
self.json_file = json_file
|
|
self.output_file = output_file
|
|
|
|
def _genarate_lint_report(self, data: list) -> str:
|
|
_str = ""
|
|
if not data:
|
|
_str += "## Linter(リンタ)指摘事項なし\n\n"
|
|
_str += "素晴らしいコードです!🎉\n"
|
|
return _str
|
|
|
|
_str += "## Linter(リンタ)レビュー\n\n"
|
|
_str += "以下の指摘事項があります。コードを見直してください。\n\n"
|
|
|
|
_str += "### 指摘事項一覧\n"
|
|
_str += "|コード|重要性|ファイル名|行数|課題内容\n"
|
|
_str += "|---|---|---|---|---|\n"
|
|
for issue in data:
|
|
code = issue.get("code", "-")
|
|
severity = issue.get("severity", "-")
|
|
filename = issue.get("filename", "-")
|
|
line = issue.get("location", {}).get("line", "-")
|
|
message = issue.get("message", "-")
|
|
_str += f"|{code}|{severity}|{filename}|{line}|{message}|\n"
|
|
return _str
|
|
|
|
def generate_lint_report_json(self):
|
|
|
|
with open(self.json_file, "r") as f:
|
|
data = json.load(f)
|
|
|
|
with open(self.output_file, "w") as f:
|
|
report = {"body": self._genarate_lint_report(data)}
|
|
json.dump(report, f, ensure_ascii=False, indent=4)
|
|
|
|
print(f"Linter report generated: {self.output_file}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
generator = GenerateLinter()
|
|
generator.generate_lint_report_json() |