30 lines
1.2 KiB
Python
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])})")
|