diff options
author | James E. Blair <jim@acmegating.com> | 2021-01-05 15:01:16 -0800 |
---|---|---|
committer | James E. Blair <jim@acmegating.com> | 2021-01-05 15:01:16 -0800 |
commit | 35e8736f1189227f68dadda0383176ccf9679f61 (patch) | |
tree | 6b9eae844fa114771f6f7b051cb56f959fb8e397 /zuul/driver/gerrit | |
parent | f09336828085e0a2a70aa14383e9dd9c76963b1b (diff) | |
download | zuul-35e8736f1189227f68dadda0383176ccf9679f61.tar.gz |
Handle WIP Gerrit status
Newer versions of Gerrit have a built-in work-in-progress flag
which, when set, makes the change unsubmittable. Update the
canMerge method in the Gerrit driver to recognize the new flag.
Change-Id: Ia8e5e50086933215c45e92b419a04c1117880a34
Diffstat (limited to 'zuul/driver/gerrit')
-rw-r--r-- | zuul/driver/gerrit/gerritconnection.py | 2 | ||||
-rw-r--r-- | zuul/driver/gerrit/gerritmodel.py | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/zuul/driver/gerrit/gerritconnection.py b/zuul/driver/gerrit/gerritconnection.py index f5db9b37e..42531eadd 100644 --- a/zuul/driver/gerrit/gerritconnection.py +++ b/zuul/driver/gerrit/gerritconnection.py @@ -966,6 +966,8 @@ class GerritConnection(BaseConnection): # Good question. It's probably ref-updated, which, ah, # means it's merged. return True + if change.wip: + return False if change.missing_labels <= set(allow_needs): return True return False diff --git a/zuul/driver/gerrit/gerritmodel.py b/zuul/driver/gerrit/gerritmodel.py index b1ad85898..84d20d83b 100644 --- a/zuul/driver/gerrit/gerritmodel.py +++ b/zuul/driver/gerrit/gerritmodel.py @@ -32,6 +32,7 @@ class GerritChange(Change): def __init__(self, project): super(GerritChange, self).__init__(project) self.status = None + self.wip = None self.approvals = [] def update(self, data, connection): @@ -79,6 +80,7 @@ class GerritChange(Change): self.approvals = data['currentPatchSet'].get('approvals', []) self.open = data['open'] self.status = data['status'] + self.wip = data.get('wip', False) self.owner = data['owner'].get('username') self.message = data['commitMessage'] @@ -149,6 +151,7 @@ class GerritChange(Change): self.missing_labels.add(label_name) self.open = data['status'] == 'NEW' self.status = data['status'] + self.wip = data.get('work_in_progress', False) self.owner = data['owner'].get('username') self.message = current_revision['commit']['message'] |