diff --git a/gerrit_util.py b/gerrit_util.py index 53dc69c0c..049c1c289 100755 --- a/gerrit_util.py +++ b/gerrit_util.py @@ -483,6 +483,17 @@ def GetChangeDetail(host, change, o_params=None): return ReadHttpJsonResponse(CreateHttpConn(host, path)) +def GetChangeDescriptionFromGitiles(url, revision): + """Query Gitiles for actual commit message for a given url and ref. + + url must be obtained from call to GetChangeDetail for a specific + revision (patchset) under 'fetch' key. + """ + parsed = urlparse.urlparse(url) + path = '%s/+/%s?format=json' % (parsed.path, revision) + return ReadHttpJsonResponse(CreateHttpConn(parsed.netloc, path))['message'] + + def GetChangeCurrentRevision(host, change): """Get information about the latest revision for a given change.""" return QueryChanges(host, {}, change, o_params=('CURRENT_REVISION',)) diff --git a/git_cl.py b/git_cl.py index bb31fa0ad..0edde48d9 100755 --- a/git_cl.py +++ b/git_cl.py @@ -2161,8 +2161,10 @@ class _GerritChangelistImpl(_ChangelistCodereviewBase): return data['revisions'][data['current_revision']]['_number'] def FetchDescription(self): - data = self._GetChangeDetail(['COMMIT_FOOTERS', 'CURRENT_REVISION']) - return data['revisions'][data['current_revision']]['commit_with_footers'] + data = self._GetChangeDetail(['CURRENT_REVISION']) + current_rev = data['current_revision'] + url = data['revisions'][current_rev]['fetch']['http']['url'] + return gerrit_util.GetChangeDescriptionFromGitiles(url, current_rev) def UpdateDescriptionRemote(self, description): # TODO(tandrii)