cbuildbot: reject private CLs in the CQ
We don't want to merge CLs marked private in the CQ (pre-cq is fine),
so reject ones that are still marked as private.
BUG=chromium:825407
TEST=precq passes
Change-Id: If09243920c08f2ff505801d43f84353ff2259184
Reviewed-on: https://chromium-review.googlesource.com/1117908
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/lib/patch.py b/lib/patch.py
index 42d9bf3..598313f 100644
--- a/lib/patch.py
+++ b/lib/patch.py
@@ -1873,6 +1873,7 @@
# status - Current state of this change. Can be one of
# ['NEW', 'SUBMITTED', 'MERGED', 'ABANDONED'].
self.status = patch_dict['status']
+ self.private = patch_dict.get('private', False)
self._approvals = []
if 'currentPatchSet' in self.patch_dict:
self._approvals = self.patch_dict['currentPatchSet'].get('approvals', [])
@@ -1917,6 +1918,7 @@
'url': gob_util.GetChangePageUrl(host, change['_number']),
'status': change['status'],
'subject': change.get('subject'),
+ 'private': change.get('is_private', False),
}
current_revision = change.get('current_revision', '')
current_revision_info = change.get('revisions', {}).get(current_revision)
@@ -2041,6 +2043,10 @@
return all(self.HasApproval(field, value)
for field, value in flags.iteritems())
+ def IsPrivate(self):
+ """Return whether this CL is currently marked Private."""
+ return self.private
+
def WasVetoed(self):
"""Return whether this CL was vetoed with VRIF=-1 or CRVW=-2."""
return self.HasApproval('VRIF', '-1') or self.HasApproval('CRVW', '-2')
@@ -2080,6 +2086,10 @@
return PatchNotSubmittable(self, 'is not marked Verified=+1.')
elif not self.HasApproval('COMR', ('1', '2')):
return PatchNotSubmittable(self, 'is not marked Commit-Queue>=+1.')
+ elif self.IsPrivate():
+ return PatchNotSubmittable(self, 'is marked private still.')
+
+ return None
def GetLatestApproval(self, field):
"""Return most recent value of specific field on the current patchset.
diff --git a/lib/patch_unittest.py b/lib/patch_unittest.py
index 79d483a..983aa93 100644
--- a/lib/patch_unittest.py
+++ b/lib/patch_unittest.py
@@ -1181,6 +1181,7 @@
'id': j['change_id'],
'lastUpdated': 1473894166,
'number': str(j['_number']),
+ 'private': False,
}
ret = cros_patch.GerritPatch.ConvertQueryResults(j, 'host')
self.assertEqual(ret, exp)