Files
tribunal-app/docker/webhook/receive.py
T
2026-07-26 18:07:49 +02:00

35 lines
993 B
Python

from http.server import HTTPServer, BaseHTTPRequestHandler
import os, tarfile, io, shutil, time
SECRET = os.environ["WEBHOOK_SECRET"]
class Handler(BaseHTTPRequestHandler):
def do_POST(self):
if self.headers.get("X-Webhook-Secret") != SECRET:
self.send_response(401)
self.end_headers()
return
body = self.rfile.read(int(self.headers["Content-Length"]))
for item in os.listdir("/data"):
path = os.path.join("/data", item)
if os.path.isdir(path):
shutil.rmtree(path)
else:
os.remove(path)
with tarfile.open(fileobj=io.BytesIO(body), mode="r:gz") as tar:
tar.extractall("/data", filter="data")
with open("/data/.deploy-timestamp", "w") as f:
f.write(str(time.time()))
self.send_response(200)
self.end_headers()
self.wfile.write(b"OK")
HTTPServer(("0.0.0.0", 9000), Handler).serve_forever()