You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
839 B
Python

# Copyright (C) 2022 CVAT.ai Corporation
#
# SPDX-License-Identifier: MIT
import re
import os
from http import HTTPStatus
from http.server import BaseHTTPRequestHandler, HTTPServer
class RequestHandler(BaseHTTPRequestHandler):
def do_POST(self):
TARGET_URL_PATTERN = re.compile(r"/" + os.getenv("PAYLOAD_ENDPOINT"))
if not re.search(TARGET_URL_PATTERN, self.path):
return
self.send_response(HTTPStatus.OK)
self.end_headers()
request_body = self.rfile.read(int(self.headers["content-length"]))
self.wfile.write(request_body)
def main():
TARGET_HOST = "0.0.0.0"
TARGET_PORT = int(os.getenv("SERVER_PORT"))
webhook_receiver = HTTPServer((TARGET_HOST, TARGET_PORT), RequestHandler)
webhook_receiver.serve_forever()
if __name__ == "__main__":
main()