Files
overub/core/webhook.py
2025-12-21 17:12:32 +01:00

19 lines
562 B
Python

import hmac
import hashlib
from typing import Any, Dict
def verify_signature(secret: str, payload: bytes, signature: str) -> bool:
if not secret:
return False
computed = hmac.new(secret.encode("utf-8"), payload, hashlib.sha256).hexdigest()
return hmac.compare_digest(computed, signature)
def parse_webhook(payload: Dict[str, Any]) -> Dict[str, Any]:
return {
"event": payload.get("action") or payload.get("event"),
"repository": payload.get("repository", {}).get("full_name"),
"ref": payload.get("ref"),
}