From 2d3da63e29c298d689cef8be5c131d228107a767 Mon Sep 17 00:00:00 2001 From: "tandrii@chromium.org" Date: Mon, 25 Apr 2016 19:23:27 +0000 Subject: [PATCH] Fetch Gerrit cl description from gitiles. R=andybons@chromium.org,scottmg@chromium.org BUG=603207,605563 Review URL: https://codereview.chromium.org/1916123002 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300161 0039d316-1c4b-4281-b951-d872f2087c98 --- gerrit_util.py | 11 +++++++++++ git_cl.py | 6 ++++-- 2 files changed, 15 insertions(+), 2 deletions(-) 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)