presubmit_support for Gerrit: don't ignore 404.
Before, presubmit_support would fail with not very useful stacktrace if
Gerrit returns 404, which is usually due to missing/invalid credentials.
This CL fixes that and improves the exception message, and also improves
logic in git_cl.
R=agable@chromium.org
BUG=
Change-Id: Iae8f0c24422c46af70929c7d5d71993164887511
Reviewed-on: https://chromium-review.googlesource.com/409650
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
diff --git a/git_cl.py b/git_cl.py
index da568e5..5d4a6b9 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -2495,10 +2495,13 @@
options = options or []
issue = issue or self.GetIssue()
assert issue, 'issue is required to query Gerrit'
- data = gerrit_util.GetChangeDetail(self._GetGerritHost(), str(issue),
- options)
- if not data:
- raise GerritIssueNotExists(issue, self.GetCodereviewServer())
+ try:
+ data = gerrit_util.GetChangeDetail(self._GetGerritHost(), str(issue),
+ options, ignore_404=False)
+ except gerrit_util.GerritError as e:
+ if e.http_status == 404:
+ raise GerritIssueNotExists(issue, self.GetCodereviewServer())
+ raise
return data
def _GetChangeCommit(self, issue=None):