simbiot-harness/scripts/portal_commit_files.py

30 lines
1.2 KiB
Python

#!/usr/bin/env python3
"""Что меняли последние авто-коммиты portal-репо (как ходит контент sites/*)."""
import json
import re
import urllib.request
GIT = "https://git.cil.by"
TOK = re.search(r":([a-f0-9]{40})@", open("/home/hermes/vybirai/.git/config", errors="ignore").read()).group(1)
REPO = "symbiot/portal"
def api(path):
req = urllib.request.Request(f"{GIT}/api/v1{path}", headers={"Authorization": f"token {TOK}"})
with urllib.request.urlopen(req, timeout=15) as r:
return json.loads(r.read())
commits = api(f"/repos/{REPO}/commits?limit=15&sha=main")
for c in commits:
sha, msg = c["sha"], c["commit"]["message"].split("\n")[0][:60]
detail = api(f"/repos/{REPO}/git/commits/{sha}")
files = detail.get("files", [])
site_files = [f["filename"] for f in files if "sites/" in f["filename"] or "static/" in f["filename"]]
print(f"{sha[:8]} {msg}")
if site_files:
for f in site_files[:6]:
print(f" {f} (+{f.count('/')})"
if False else f" {f}")
elif files:
print(f" ({len(files)} файлов: {', '.join(x['filename'] for x in files[:4])})")