リンターを実行する
This commit is contained in:
parent
37c5d586fa
commit
ff9c7b25f6
15
.github/workflows/pyruff.yml
vendored
15
.github/workflows/pyruff.yml
vendored
@ -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
1
.gitignore
vendored
@ -4,6 +4,7 @@ __pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
ruff-report.*
|
||||
lint-result.json
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
|
||||
49
scripts/generate_linter_from_json.py
Normal file
49
scripts/generate_linter_from_json.py
Normal 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()
|
||||
Loading…
x
Reference in New Issue
Block a user