リンターを実行する

This commit is contained in:
ry.yamafuji 2025-12-04 14:33:31 +09:00
parent 37c5d586fa
commit ff9c7b25f6
3 changed files with 62 additions and 3 deletions

View File

@ -32,13 +32,22 @@ jobs:
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Check Initer
id: checkIniter
run: |
ruff check . --output-format json --output-file ruff-report.json
- name: Generate Linter Report
id: generateLinterReport
run: |
python scripts/generate_linter_from_json.py
- name: pull_request message with Ruff Lint results
id: prMessageRuffLint
run: |
echo 'echo ${{ toJson(github.event_name) }}'
echo 'echo ${{ toJson(github.event) }}'
curl -v -X POST \
-H "Content-Type: application/json" \
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
-d "{\"body\": \"## :mag: Ruff Lint Results\n\`\`\`\ntest\n\`\`\`\"}" \
-d @lint-result.json \
${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/issues/8/comments

1
.gitignore vendored
View File

@ -4,6 +4,7 @@ __pycache__/
*.py[cod]
*$py.class
ruff-report.*
lint-result.json
# C extensions
*.so

View File

@ -0,0 +1,49 @@
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()