diff --git a/jenkins_jobs/modules/project_multibranch.py b/jenkins_jobs/modules/project_multibranch.py index 2a7a38706..93c5bc380 100644 --- a/jenkins_jobs/modules/project_multibranch.py +++ b/jenkins_jobs/modules/project_multibranch.py @@ -569,6 +569,13 @@ def gerrit_scm(xml_parent, data): (like to disable SCM triggering or to override the pipeline durability) (optional) Refer to :func:`~property_strategies `. + :arg dict filter-checks: Enable the filtering by pending checks, allowing to + discover the changes that need validation only. This feature is using + the gerrit checks plugin. + (optional) + query-operator: Name of the query operator, supported values are: + 'SCHEME' or 'ID'. + query-string: Value of the query operator. Minimal Example: @@ -635,6 +642,20 @@ def gerrit_scm(xml_parent, data): if data.get("build-strategies", None): build_strategies(xml_parent, data) + # FilterChecks Trait + checks = data.get("filter-checks", None) + if checks: + checks_trait = XML.SubElement( + traits, "jenkins.plugins.gerrit.traits.FilterChecksTrait" + ) + checks_source_mapping = [ + ("query-operator", "queryOperator", None), + ("query-string", "queryString", None), + ] + helpers.convert_mapping_to_xml( + checks_trait, checks, checks_source_mapping, fail_required=True + ) + def git_scm(xml_parent, data): r"""Configure Git SCM diff --git a/tests/multibranch/fixtures/scm_gerrit_full.xml b/tests/multibranch/fixtures/scm_gerrit_full.xml index 55cc9c88e..025136735 100644 --- a/tests/multibranch/fixtures/scm_gerrit_full.xml +++ b/tests/multibranch/fixtures/scm_gerrit_full.xml @@ -47,6 +47,10 @@ + + SCHEME + jenkins + diff --git a/tests/multibranch/fixtures/scm_gerrit_full.yaml b/tests/multibranch/fixtures/scm_gerrit_full.yaml index 29fb7c868..1f325b6d8 100644 --- a/tests/multibranch/fixtures/scm_gerrit_full.yaml +++ b/tests/multibranch/fixtures/scm_gerrit_full.yaml @@ -11,6 +11,9 @@ scm: all-branches: - suppress-scm-triggering: true - pipeline-branch-durability-override: max-survivability + filter-checks: + query-operator: 'SCHEME' + query-string: 'jenkins' build-strategies: - tags: ignore-tags-newer-than: 1