pullreq_to_mantisbt.py

changeset 4
7c02e457e6ab
child 5
9d63b4f82112
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pullreq_to_mantisbt.py	Sun Jun 08 19:24:37 2014 +0300
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+import json
+import urllib
+import urllib2
+import sys
+import re
+from suds.xsd.doctor import Import
+from suds.xsd.doctor import ImportDoctor
+from suds.client import Client
+
+bturl=sys.argv[1]
+btuser=sys.argv[2]
+btpass=sys.argv[3]
+ticket=sys.argv[4]
+bitbucketjson=sys.argv[5]
+titlefile=sys.argv[6]
+
+with open (bitbucketjson, 'r') as fp:
+	jsondata = json.loads (fp.read())
+
+with open (titlefile, 'r') as fp:
+	title = fp.read()
+
+regex = re.compile (r'^https://api\.bitbucket\.org/2\.0/repositories/([^/]+)/([^/]+)/pullrequests/([0-9]+)$')
+match = regex.match (jsondata["links"]["self"]["href"])
+
+if not match:
+	print "Bad JSON input (couldn't regex the pull request URL)"
+	quit()
+
+suds_import = Import ('http://schemas.xmlsoap.org/soap/encoding/', \
+	'http://schemas.xmlsoap.org/soap/encoding/')
+suds_client = Client ('https://%s/api/soap/mantisconnect.php?wsdl' % bturl, \
+	plugins=[ImportDoctor (suds_import)])
+
+data = suds_client.service.mc_issue_get (btuser, btpass, ticket)
+data["status"]["id"] = 60
+suds_client.service.mc_issue_update (btuser, btpass, ticket, data)
+note = {}
+note["text"] = "https://bitbucket.org/%s/%s/pull-request/%s" % (match.group(1), match.group(2), match.group(3))
+noteid = suds_client.service.mc_issue_note_add (btuser, btpass, ticket, note)
+print "Pullrequest notice posted to mantisbt: https://%s/view.php?id=%s#c%s" % (bturl, ticket, noteid)
+

mercurial