You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@community.apache.org by hu...@apache.org on 2019/08/02 16:20:33 UTC

svn commit: r1864238 - /comdev/reporter.apache.org/trunk/site/wizard/whimsy.py

Author: humbedooh
Date: Fri Aug  2 16:20:33 2019
New Revision: 1864238

URL: http://svn.apache.org/viewvc?rev=1864238&view=rev
Log:
Add a simple whimsy poster

Added:
    comdev/reporter.apache.org/trunk/site/wizard/whimsy.py

Added: comdev/reporter.apache.org/trunk/site/wizard/whimsy.py
URL: http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/wizard/whimsy.py?rev=1864238&view=auto
==============================================================================
--- comdev/reporter.apache.org/trunk/site/wizard/whimsy.py (added)
+++ comdev/reporter.apache.org/trunk/site/wizard/whimsy.py Fri Aug  2 16:20:33 2019
@@ -0,0 +1,45 @@
+
+#!/usr/bin/env python
+""" script for publishing a report to whimsy """
+import os
+import sys
+import cgi
+import time
+import json
+import requests
+import re
+
+WHIMSY_URL = 'http://whimsy.local/board/agenda/json/post'
+BASIC_AUTH = os.environ['HTTP_X_WHIMSY_AUTH'] if 'HTTP_X_WHIMSY_AUTH' in os.environ else ""
+USER = os.environ['HTTP_X_AUTHENTICATED_USER'] if 'HTTP_X_AUTHENTICATED_USER' in os.environ else ""
+
+
+def main():
+    
+    # Get project requested and report
+    form = cgi.FieldStorage()
+    project = form.getvalue('project')
+    report = form.getvalue('report')
+    agenda = form.getvalue('agenda')
+    
+    # If auth passed along and project is valid, go look for comments
+    dumps = {'okay': False, 'message': "Could not post to whimsy!"}
+    if BASIC_AUTH and project and report and re.match(r"^board_agenda_\d+_\d+_\d+\.txt$", agenda):
+        js = {
+         'agenda': agenda,
+         'project': project,
+         'report': report,
+         'message': "Publishing %s report via reporter.a.o",
+        }
+        try:
+            rv = requests.post(WHIMSY_URL, headers = {'Authorization': BASIC_AUTH, "Content-Type": "application/json"}, json = js)
+            rv.raise_for_status()
+            dumps = {'okay': True, 'message': "Posted to board agenda!"}
+        except:
+            pass
+    dump = json.dumps(dumps)
+    sys.stdout.write("Content-Type: application/json\r\nContent-Length: %u\r\n\r\n" % (len(dump)))
+    sys.stdout.write(dump)
+
+if __name__ == '__main__':
+    main()