Skip to content

Instantly share code, notes, and snippets.

Created February 20, 2013 10:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/4994645 to your computer and use it in GitHub Desktop.
Save anonymous/4994645 to your computer and use it in GitHub Desktop.
Fixes the TortoiseHG Reviewboard extension to support the Update Review functionality accessed via the TortoiseHG Reviewboard UI.
diff -r 7a4fb18e6bc0 reviewboard.py
--- a/reviewboard.py Mon Feb 04 10:48:09 2013 -0800
+++ b/reviewboard.py Wed Feb 20 11:37:58 2013 +0100
@@ -5,6 +5,8 @@
import getpass
import mimetools
import os
+import datetime
+import urllib
import urllib2
import simplejson
import mercurial.ui
@@ -58,6 +60,14 @@
self.tool = tool
self.path = path
+class Request:
+ """
+ Represents a ReviewBoard request
+ """
+ def __init__(self, id, summary):
+ self.id = id
+ self.summary = summary
+
class ReviewBoardHTTPPasswordMgr(urllib2.HTTPPasswordMgr):
"""
Adds HTTP authentication support for URLs.
@@ -288,6 +298,7 @@
def __init__(self, httpclient):
ApiClient.__init__(self, httpclient)
self._repositories = None
+ self._pending_user_requests = None
self._requestcache = {}
def login(self, username=None, password=None):
@@ -302,6 +313,24 @@
for r in rsp['repositories']]
return self._repositories
+ def pending_user_requests(self):
+ if not self._pending_user_requests:
+ usr = str(self._httpclient._password_mgr.rb_user)
+ delta = datetime.timedelta(days=7)
+ today = datetime.datetime.today()
+ sevenDaysAgo = today - delta
+ date_str = urllib.quote(sevenDaysAgo) #fixes " " to "%20"
+ rsp = self._api_request('GET', '/api/review-requests/' +
+ '?from-user=%s' % usr +
+ '&status=pending' +
+ '&max-results=50' +
+ '&last-updated-from=%s' % date_str)
+ self._pending_user_requests = []
+
+ for r in rsp['review_requests']:
+ self._pending_user_requests += [Request(r['id'], r['summary'].strip())]
+ return self._pending_user_requests
+
def new_request(self, repo_id, fields={}, diff='', parentdiff=''):
req = self._create_request(repo_id)
self._set_request_details(req, fields, diff, parentdiff)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment