Some checks are pending
Check Python Version Consistency / Check Python Version (push) Waiting to run
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
import functions_framework
|
|
import requests
|
|
import os
|
|
|
|
CHAT_WEBHOOK = os.environ.get("CHAT_WEBHOOK_URL")
|
|
|
|
@functions_framework.http
|
|
def handler(request):
|
|
try:
|
|
payload = request.get_json(silent=True) or {}
|
|
repo_obj = payload.get("repository", {})
|
|
repo = repo_obj.get("full_name") or repo_obj.get("name") or "(ukjent repo)"
|
|
|
|
pusher_obj = payload.get("pusher", {})
|
|
pusher = (
|
|
pusher_obj.get("login")
|
|
or pusher_obj.get("full_name")
|
|
or pusher_obj.get("name")
|
|
or pusher_obj.get("email")
|
|
or payload.get("sender", {}).get("login")
|
|
or payload.get("sender", {}).get("full_name")
|
|
or "(ukjent bruker)"
|
|
)
|
|
|
|
ref = payload.get("ref", "").replace("refs/heads/", "")
|
|
commits = payload.get("commits", [])
|
|
lines = [f"\U0001f500 *Push til {repo}* \u2014 branch {ref} av {pusher}"]
|
|
for c in commits[:5]:
|
|
sha = c.get("id","")[:7]
|
|
msg = c.get("message","").split("\n")[0][:80]
|
|
url = c.get("url","")
|
|
lines.append(f" \u2022 {sha}: {msg}\n {url}")
|
|
requests.post(CHAT_WEBHOOK, json={"text": "\n".join(lines)}, timeout=5)
|
|
return ("OK", 200)
|
|
except Exception as e:
|
|
return (str(e), 500)
|