#2333 frontend: log webhook calls
Merged 2 years ago by praiskup. Opened 2 years ago by praiskup.
Unknown source log-webhooks  into  main

@@ -1,3 +1,26 @@

+ import base64

  import flask

  

+ from coprs import app

+ 

  webhooks_ns = flask.Blueprint("webhooks_ns", __name__, url_prefix="/webhooks")

+ 

+ @webhooks_ns.after_request

+ def after_request(response):

+     """

+     Dump the webhook payloads for later debugging and auditing.

+     """

+     request = flask.request

+     status = response.status_code

+     prefix = "Webhook ({}) ".format(status)

+ 

+     # 100k should be enough for most of the webhooks.  We don't want to waste

+     # the /var/log partition too quickly.

+     if request.content_length is not None \

+             and request.content_length >= 100*1024:

+         app.logger.info(prefix+"large content: %d bytes",

+                         request.content_length)

+         return response

+ 

+     app.logger.info(prefix+"data: %s", base64.b64encode(request.get_data()))

+     return response

no initial comment

Build succeeded.

rebased onto e398e87

2 years ago

Build succeeded.

Commit cb169c6 fixes this pull-request

Pull-Request has been merged by praiskup

2 years ago
Metadata