summaryrefslogtreecommitdiff
path: root/zuul/driver/gitlab/gitlabreporter.py
diff options
context:
space:
mode:
Diffstat (limited to 'zuul/driver/gitlab/gitlabreporter.py')
-rw-r--r--zuul/driver/gitlab/gitlabreporter.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/zuul/driver/gitlab/gitlabreporter.py b/zuul/driver/gitlab/gitlabreporter.py
index a38c8ac54..c3abf3dd8 100644
--- a/zuul/driver/gitlab/gitlabreporter.py
+++ b/zuul/driver/gitlab/gitlabreporter.py
@@ -21,6 +21,7 @@ from zuul.model import MERGER_MERGE_RESOLVE, MERGER_MERGE, MERGER_MAP, \
MERGER_SQUASH_MERGE
from zuul.lib.logutil import get_annotated_logger
from zuul.driver.gitlab.gitlabsource import GitlabSource
+from zuul.driver.util import scalar_or_list
from zuul.exceptions import MergeFailure
@@ -42,6 +43,12 @@ class GitlabReporter(BaseReporter):
self._create_comment = self.config.get('comment', True)
self._approval = self.config.get('approval', None)
self._merge = self.config.get('merge', False)
+ self._labels = self.config.get('label', [])
+ if not isinstance(self._labels, list):
+ self._labels = [self._labels]
+ self._unlabels = self.config.get('unlabel', [])
+ if not isinstance(self._unlabels, list):
+ self._unlabels = [self._unlabels]
def report(self, item):
"""Report on an event."""
@@ -57,6 +64,8 @@ class GitlabReporter(BaseReporter):
self.addMRComment(item)
if self._approval is not None:
self.setApproval(item)
+ if self._labels or self._unlabels:
+ self.setLabels(item)
if self._merge:
self.mergeMR(item)
if not item.change.is_merged:
@@ -83,6 +92,16 @@ class GitlabReporter(BaseReporter):
self.connection.approveMR(project, mr_number, patchset,
self._approval, event=item.event)
+ def setLabels(self, item):
+ log = get_annotated_logger(self.log, item.event)
+ project = item.change.project.name
+ mr_number = item.change.number
+ log.debug('Reporting change %s, params %s, labels: %s, unlabels: %s',
+ item.change, self.config, self._labels, self._unlabels)
+ self.connection.updateMRLabels(project, mr_number,
+ self._labels, self._unlabels,
+ zuul_event_id=item.event)
+
def mergeMR(self, item):
project = item.change.project.name
mr_number = item.change.number
@@ -120,5 +139,7 @@ def getSchema():
'comment': bool,
'approval': bool,
'merge': bool,
+ 'label': scalar_or_list(str),
+ 'unlabel': scalar_or_list(str),
})
return gitlab_reporter