summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jenkins_jobs/modules/helpers.py21
-rw-r--r--jenkins_jobs/modules/project_multibranch.py183
-rwxr-xr-xjenkins_jobs/modules/publishers.py29
-rw-r--r--jenkins_jobs/modules/triggers.py133
-rw-r--r--tests/jsonparser/fixtures/complete001.xml10
-rw-r--r--tests/multibranch/fixtures/multibranch_defaults_id_mode.xml (renamed from tests/multibranch/fixtures/multibranch_defaults.xml)3
-rw-r--r--tests/multibranch/fixtures/multibranch_defaults_id_mode.yaml9
-rw-r--r--tests/multibranch/fixtures/multibranch_defaults_path_mode.xml63
-rw-r--r--tests/multibranch/fixtures/multibranch_defaults_path_mode.yaml (renamed from tests/multibranch/fixtures/multibranch_defaults.yaml)0
-rw-r--r--tests/multibranch/fixtures/scm_github_full.xml5
-rw-r--r--tests/multibranch/fixtures/scm_github_full.yaml3
-rw-r--r--tests/multibranch/fixtures/scm_github_no_origin_pr_discovery.xml59
-rw-r--r--tests/multibranch/fixtures/scm_github_no_origin_pr_discovery.yaml7
-rw-r--r--tests/publishers/fixtures/join-trigger002.xml22
-rw-r--r--tests/publishers/fixtures/join-trigger002.yaml8
-rw-r--r--tests/triggers/fixtures/gerrit001.xml9
-rw-r--r--tests/triggers/fixtures/gerrit002.xml9
-rw-r--r--tests/triggers/fixtures/gerrit003.xml9
-rw-r--r--tests/triggers/fixtures/gerrit004.xml9
-rw-r--r--tests/triggers/fixtures/gerrit004.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit005.xml10
-rw-r--r--tests/triggers/fixtures/gerrit006.xml9
-rw-r--r--tests/triggers/fixtures/gerrit007.xml9
-rw-r--r--tests/triggers/fixtures/gerrit008.xml9
-rw-r--r--tests/triggers/fixtures/gerrit009.xml9
-rw-r--r--tests/triggers/fixtures/gerrit010.xml9
-rw-r--r--tests/triggers/fixtures/gerrit011-name-and-email-parameter-mode-base64.xml37
-rw-r--r--tests/triggers/fixtures/gerrit011-name-and-email-parameter-mode-base64.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit012-name-and-email-parameter-mode-none.xml37
-rw-r--r--tests/triggers/fixtures/gerrit012-name-and-email-parameter-mode-none.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit013-name-and-email-parameter-mode-plain.xml37
-rw-r--r--tests/triggers/fixtures/gerrit013-name-and-email-parameter-mode-plain.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit014-commit-message-parameter-mode-base64.xml37
-rw-r--r--tests/triggers/fixtures/gerrit014-commit-message-parameter-mode-base64.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit015-commit-message-parameter-mode-plain.xml37
-rw-r--r--tests/triggers/fixtures/gerrit015-commit-message-parameter-mode-plain.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit016-commit-message-parameter-mode-none.xml37
-rw-r--r--tests/triggers/fixtures/gerrit016-commit-message-parameter-mode-none.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit017-change-subject-parameter-mode-base64.xml37
-rw-r--r--tests/triggers/fixtures/gerrit017-change-subject-parameter-mode-base64.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit018-change-subject-parameter-mode-plain.xml37
-rw-r--r--tests/triggers/fixtures/gerrit018-change-subject-parameter-mode-plain.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit019-change-subject-parameter-mode-none.xml37
-rw-r--r--tests/triggers/fixtures/gerrit019-change-subject-parameter-mode-none.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit020-comment-text-parameter-mode-base64.xml37
-rw-r--r--tests/triggers/fixtures/gerrit020-comment-text-parameter-mode-base64.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit021-comment-text-parameter-mode-plain.xml37
-rw-r--r--tests/triggers/fixtures/gerrit021-comment-text-parameter-mode-plain.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit022-comment-text-parameter-mode-none.xml37
-rw-r--r--tests/triggers/fixtures/gerrit022-comment-text-parameter-mode-none.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.plugins_info.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.xml35
-rw-r--r--tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.plugins_info.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.xml37
-rw-r--r--tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.plugins_info.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.xml35
-rw-r--r--tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.plugins_info.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.xml37
-rw-r--r--tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.plugins_info.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.xml36
-rw-r--r--tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.yaml3
-rw-r--r--tests/triggers/fixtures/gerrit028-trigger-simple-triggers.xml64
-rw-r--r--tests/triggers/fixtures/gerrit028-trigger-simple-triggers.yaml25
-rw-r--r--tests/yamlparser/fixtures/complete001.xml10
68 files changed, 1336 insertions, 102 deletions
diff --git a/jenkins_jobs/modules/helpers.py b/jenkins_jobs/modules/helpers.py
index 10945c71..258b13cb 100644
--- a/jenkins_jobs/modules/helpers.py
+++ b/jenkins_jobs/modules/helpers.py
@@ -19,6 +19,7 @@ import xml.etree.ElementTree as XML
from jenkins_jobs.errors import InvalidAttributeError
from jenkins_jobs.errors import JenkinsJobsException
from jenkins_jobs.errors import MissingAttributeError
+from jenkins_jobs.modules import hudson_model
def build_trends_publisher(plugin_name, xml_element, data):
@@ -613,6 +614,26 @@ def trigger_project(tconfigs, project_def, param_order=None):
)
+def trigger_threshold(
+ parent_element, element_name, threshold_name, supported_thresholds=None
+):
+ """Generate a resultThreshold XML element for build/join triggers"""
+ element = XML.SubElement(parent_element, element_name)
+
+ try:
+ threshold = hudson_model.THRESHOLDS[threshold_name.upper()]
+ except KeyError:
+ if not supported_thresholds:
+ supported_thresholds = hudson_model.THRESHOLDS.keys()
+ raise JenkinsJobsException(
+ "threshold must be one of %s" % ", ".join(supported_thresholds)
+ )
+ XML.SubElement(element, "name").text = threshold["name"]
+ XML.SubElement(element, "ordinal").text = threshold["ordinal"]
+ XML.SubElement(element, "color").text = threshold["color"]
+ return element
+
+
def convert_mapping_to_xml(parent, data, mapping, fail_required=True):
"""Convert mapping to XML
diff --git a/jenkins_jobs/modules/project_multibranch.py b/jenkins_jobs/modules/project_multibranch.py
index 93b5f380..49b5f8e3 100644
--- a/jenkins_jobs/modules/project_multibranch.py
+++ b/jenkins_jobs/modules/project_multibranch.py
@@ -60,10 +60,18 @@ Plugins required:
(default '-1, forever')
* **script-path** (`str`): Path to Jenkinsfile, relative to workspace.
(default 'Jenkinsfile')
+ * **script-id** (`str`): Script id from the global Jenkins script store
+ provided by the config-file provider plugin. Mutually exclusive with
+ **script-path** option.
+ * **sandbox** (`bool`): This option is strongly recommended if the
+ Jenkinsfile is using load to evaluate a groovy source file from an
+ SCM repository. Usable only with **script-id** option. (default 'false')
Job examples:
-.. literalinclude:: /../../tests/multibranch/fixtures/multibranch_defaults.yaml
+.. literalinclude:: /../../tests/multibranch/fixtures/multibranch_defaults_id_mode.yaml
+
+.. literalinclude:: /../../tests/multibranch/fixtures/multibranch_defaults_path_mode.yaml
.. literalinclude:: /../../tests/multibranch/fixtures/multi_scm_full.yaml
@@ -85,8 +93,39 @@ logger = logging.getLogger(str(__name__))
class WorkflowMultiBranch(jenkins_jobs.modules.base.Base):
sequence = 0
multibranch_path = "org.jenkinsci.plugins.workflow.multibranch"
+ multibranch_defaults_path = "org.jenkinsci.pipeline.workflow.multibranch"
jenkins_class = "".join([multibranch_path, ".WorkflowMultiBranchProject"])
- jenkins_factory_class = "".join([multibranch_path, ".WorkflowBranchProjectFactory"])
+ jenkins_factory = {
+ "script_path": {
+ "class": "".join([multibranch_path, ".WorkflowBranchProjectFactory"])
+ },
+ "script_id": {
+ "class": "".join(
+ [
+ multibranch_defaults_path,
+ ".defaults.PipelineBranchDefaultsProjectFactory",
+ ]
+ ),
+ "plugin": "pipeline-multibranch-defaults",
+ },
+ }
+
+ @staticmethod
+ def _factory_opts_check(data):
+
+ sandbox = data.get("sandbox", None)
+ script_id = data.get("script-id", None)
+ script_path = data.get("script-path", None)
+
+ if script_id and script_path:
+ error_msg = "script-id and script-path are mutually exclusive options"
+ raise JenkinsJobsException(error_msg)
+ elif not script_id and sandbox:
+ error_msg = (
+ "Sandbox mode is applicable only for multibranch with defaults"
+ "project type used with script-id option"
+ )
+ raise JenkinsJobsException(error_msg)
def root_xml(self, data):
xml_parent = XML.Element(self.jenkins_class)
@@ -268,28 +307,50 @@ class WorkflowMultiBranch(jenkins_jobs.modules.base.Base):
# Factory #
###########
- factory = XML.SubElement(
- xml_parent, "factory", {"class": self.jenkins_factory_class}
- )
+ self._factory_opts_check(data)
+
+ if data.get("script-id"):
+ mode = "script_id"
+ fopts_map = (
+ ("script-id", "scriptId", None),
+ ("sandbox", "useSandbox", None),
+ )
+ else:
+ mode = "script_path"
+ fopts_map = (("script-path", "scriptPath", "Jenkinsfile"),)
+
+ factory = XML.SubElement(xml_parent, "factory", self.jenkins_factory[mode])
XML.SubElement(
factory, "owner", {"class": self.jenkins_class, "reference": "../.."}
)
- XML.SubElement(factory, "scriptPath").text = data.get(
- "script-path", "Jenkinsfile"
- )
+
+ # multibranch default
+
+ helpers.convert_mapping_to_xml(factory, data, fopts_map, fail_required=False)
return xml_parent
class WorkflowMultiBranchDefaults(WorkflowMultiBranch):
- jenkins_class = (
- "org.jenkinsci.plugins.pipeline.multibranch"
- ".defaults.PipelineMultiBranchDefaultsProject"
- )
- jenkins_factory_class = (
- "org.jenkinsci.plugins.pipeline.multibranch"
- ".defaults.PipelineBranchDefaultsProjectFactory"
+ multibranch_path = "org.jenkinsci.plugins.workflow.multibranch"
+ multibranch_defaults_path = "org.jenkinsci.plugins.pipeline.multibranch"
+ jenkins_class = "".join(
+ [multibranch_defaults_path, ".defaults.PipelineMultiBranchDefaultsProject"]
)
+ jenkins_factory = {
+ "script_path": {
+ "class": "".join([multibranch_path, ".WorkflowBranchProjectFactory"]),
+ "plugin": "workflow-multibranch",
+ },
+ "script_id": {
+ "class": "".join(
+ [
+ multibranch_defaults_path,
+ ".defaults.PipelineBranchDefaultsProjectFactory",
+ ]
+ )
+ },
+ }
def bitbucket_scm(xml_parent, data):
@@ -804,7 +865,7 @@ def github_scm(xml_parent, data):
(default 'contributors')
:arg str discover-pr-origin: Discovers pull requests where the origin
repository is the same as the target repository.
- Valid options: merge-current, current, both. (default 'merge-current')
+ Valid options: merge-current, current, both, false. (default 'merge-current')
:arg bool discover-tags: Discovers tags on the repository.
(default false)
:arg list build-strategies: Provides control over whether to build a branch
@@ -946,18 +1007,19 @@ def github_scm(xml_parent, data):
XML.SubElement(dprf, "trust").attrib["class"] = trust_map[trust]
dpro_strategy = data.get("discover-pr-origin", "merge-current")
- dpro = XML.SubElement(
- traits, "".join([github_path_dscore, ".OriginPullRequestDiscoveryTrait"])
- )
- dpro_strategy_map = {"merge-current": "1", "current": "2", "both": "3"}
- if dpro_strategy not in dpro_strategy_map:
- raise InvalidAttributeError(
- "discover-pr-origin", dpro_strategy, dpro_strategy_map.keys()
+ if dpro_strategy:
+ dpro = XML.SubElement(
+ traits, "".join([github_path_dscore, ".OriginPullRequestDiscoveryTrait"])
)
- dpro_mapping = [
- ("discover-pr-origin", "strategyId", "merge-current", dpro_strategy_map)
- ]
- helpers.convert_mapping_to_xml(dpro, data, dpro_mapping, fail_required=True)
+ dpro_strategy_map = {"merge-current": "1", "current": "2", "both": "3"}
+ if dpro_strategy not in dpro_strategy_map:
+ raise InvalidAttributeError(
+ "discover-pr-origin", dpro_strategy, dpro_strategy_map.keys()
+ )
+ dpro_mapping = [
+ ("discover-pr-origin", "strategyId", "merge-current", dpro_strategy_map)
+ ]
+ helpers.convert_mapping_to_xml(dpro, data, dpro_mapping, fail_required=True)
if data.get("head-filter-regex", None):
rshf = XML.SubElement(traits, "jenkins.scm.impl.trait.RegexSCMHeadFilterTrait")
@@ -1193,7 +1255,27 @@ def property_strategies(xml_parent, data):
max-survivability (optional)
Requires the :jenkins-plugins:`Pipeline Multibranch Plugin
<workflow-multibranch>`
-
+ * **trigger-build-on-pr-comment** (str): The comment body to
+ trigger a new build for a PR job when it is received. This
+ is compiled as a case insensitive regular expression, so
+ use ``".*"`` to trigger a build on any comment whatsoever.
+ (optional)
+ Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
+ <github-pr-comment-build>`
+ * **trigger-build-on-pr-review** (bool): This property will
+ cause a job for a pull request ``(PR-*)`` to be triggered
+ immediately when a review is made on the PR in GitHub.
+ This has no effect on jobs that are not for pull requests.
+ (optional)
+ Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
+ <github-pr-comment-build>`
+ * **trigger-build-on-pr-update** (bool): This property will
+ cause a job for a pull request ``(PR-*)`` to be triggered
+ immediately when the PR title or description is edited in
+ GitHub. This has no effect on jobs that are not for pull
+ requests. (optional)
+ Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
+ <github-pr-comment-build>`
* **named-branches** (dict): Named branches get different properties.
Comprised of a list of defaults and a list of property strategy
exceptions for use with specific branches.
@@ -1210,6 +1292,27 @@ def property_strategies(xml_parent, data):
max-survivability (optional)
Requires the :jenkins-plugins:`Pipeline Multibranch Plugin
<workflow-multibranch>`
+ * **trigger-build-on-pr-comment** (str): The comment body to
+ trigger a new build for a PR job when it is received. This
+ is compiled as a case insensitive regular expression, so
+ use ``".*"`` to trigger a build on any comment whatsoever.
+ (optional)
+ Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
+ <github-pr-comment-build>`
+ * **trigger-build-on-pr-review** (bool): This property will
+ cause a job for a pull request ``(PR-*)`` to be triggered
+ immediately when a review is made on the PR in GitHub.
+ This has no effect on jobs that are not for pull requests.
+ (optional)
+ Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
+ <github-pr-comment-build>`
+ * **trigger-build-on-pr-update** (bool): This property will
+ cause a job for a pull request ``(PR-*)`` to be triggered
+ immediately when the PR title or description is edited in
+ GitHub. This has no effect on jobs that are not for pull
+ requests. (optional)
+ Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
+ <github-pr-comment-build>`
* **exceptions** (list): A list of branch names and the property
strategies to be used on that branch, instead of any listed
@@ -1375,6 +1478,7 @@ def apply_property_strategies(props_elem, props_list):
basic_property_strategies = "jenkins.branch"
workflow_multibranch = "org.jenkinsci.plugins.workflow.multibranch"
+ pr_comment_build = "com.adobe.jenkins.github__pr__comment__build"
# Valid options for the pipeline branch durability override.
pbdo_map = collections.OrderedDict(
[
@@ -1384,6 +1488,13 @@ def apply_property_strategies(props_elem, props_list):
]
)
+ pcb_bool_opts = collections.OrderedDict(
+ [
+ ("trigger-build-on-pr-review", ".TriggerPRReviewBranchProperty"),
+ ("trigger-build-on-pr-update", ".TriggerPRUpdateBranchProperty"),
+ ]
+ )
+
for dbs_list in props_list:
if dbs_list.get("suppress-scm-triggering", False):
@@ -1404,3 +1515,19 @@ def apply_property_strategies(props_elem, props_list):
{"plugin": "workflow-multibranch"},
)
XML.SubElement(pbdo_elem, "hint").text = pbdo_map.get(pbdo_val)
+
+ tbopc_val = dbs_list.get("trigger-build-on-pr-comment", None)
+ if tbopc_val:
+ tbopc_elem = XML.SubElement(
+ props_elem,
+ "".join([pr_comment_build, ".TriggerPRCommentBranchProperty"]),
+ {"plugin": "github-pr-comment-build"},
+ )
+ XML.SubElement(tbopc_elem, "commentBody").text = tbopc_val
+ for opt in pcb_bool_opts:
+ if dbs_list.get(opt, False):
+ XML.SubElement(
+ props_elem,
+ "".join([pr_comment_build, pcb_bool_opts.get(opt)]),
+ {"plugin": "github-pr-comment-build"},
+ )
diff --git a/jenkins_jobs/modules/publishers.py b/jenkins_jobs/modules/publishers.py
index 68b93e73..48bb420c 100755
--- a/jenkins_jobs/modules/publishers.py
+++ b/jenkins_jobs/modules/publishers.py
@@ -608,20 +608,12 @@ def trigger(registry, xml_parent, data):
tconfig = XML.SubElement(xml_parent, "hudson.tasks.BuildTrigger")
childProjects = XML.SubElement(tconfig, "childProjects")
childProjects.text = data["project"]
- tthreshold = XML.SubElement(tconfig, "threshold")
threshold = data.get("threshold", "SUCCESS")
supported_thresholds = ["SUCCESS", "UNSTABLE", "FAILURE"]
- if threshold not in supported_thresholds:
- raise JenkinsJobsException(
- "threshold must be one of %s" % ", ".join(supported_thresholds)
- )
- tname = XML.SubElement(tthreshold, "name")
- tname.text = hudson_model.THRESHOLDS[threshold]["name"]
- tordinal = XML.SubElement(tthreshold, "ordinal")
- tordinal.text = hudson_model.THRESHOLDS[threshold]["ordinal"]
- tcolor = XML.SubElement(tthreshold, "color")
- tcolor.text = hudson_model.THRESHOLDS[threshold]["color"]
+ helpers.trigger_threshold(
+ tconfig, "threshold", threshold, supported_thresholds=supported_thresholds
+ )
def clone_workspace(registry, xml_parent, data):
@@ -3501,11 +3493,13 @@ def join_trigger(registry, xml_parent, data):
Trigger a job after all the immediate downstream jobs have completed.
Requires the Jenkins :jenkins-plugins:`Join Plugin <join>`.
- :arg bool even-if-unstable: if true jobs will trigger even if some
- downstream jobs are marked as unstable (default false)
:arg list projects: list of projects to trigger
:arg list publishers: list of triggers from publishers module that
defines projects that need to be triggered
+ :arg str threshold: result threshold to trigger jobs (optional).
+ Valid values are "success", "unstable", "failure", and "aborted".
+ :arg bool even-if-unstable: if true jobs will trigger even if some
+ downstream jobs are marked as unstable (default false) (DEPRECATED)
Example:
@@ -3523,8 +3517,13 @@ def join_trigger(registry, xml_parent, data):
for edited_node in create_publishers(registry, pub):
publishers.append(edited_node)
- unstable = str(data.get("even-if-unstable", "false")).lower()
- XML.SubElement(jointrigger, "evenIfDownstreamUnstable").text = unstable
+ unstable = str(data.get("even-if-unstable", "")).lower()
+ if unstable:
+ XML.SubElement(jointrigger, "evenIfDownstreamUnstable").text = unstable
+
+ threshold = data.get("threshold", "")
+ if threshold:
+ helpers.trigger_threshold(jointrigger, "resultThreshold", threshold)
def jabber(registry, xml_parent, data):
diff --git a/jenkins_jobs/modules/triggers.py b/jenkins_jobs/modules/triggers.py
index 2f89b5c6..d6b2d7bb 100644
--- a/jenkins_jobs/modules/triggers.py
+++ b/jenkins_jobs/modules/triggers.py
@@ -154,8 +154,9 @@ def build_gerrit_triggers(xml_parent, data):
"draft-published-event": "PluginDraftPublishedEvent",
"patchset-uploaded-event": "PluginPatchsetCreatedEvent",
"patchset-created-event": "PluginPatchsetCreatedEvent",
- "ref-updated-event": "PluginRefUpdatedEvent",
"private-state-changed-event": "PluginPrivateStateChangedEvent",
+ "ref-updated-event": "PluginRefUpdatedEvent",
+ "topic-changed-event": "PluginTopicChangedEvent",
"wip-state-changed-event": "PluginWipStateChangedEvent",
}
tag_namespace = (
@@ -240,6 +241,67 @@ def build_gerrit_skip_votes(xml_parent, data):
XML.SubElement(skip_vote_node, tag_name).text = str(setting).lower()
+def build_gerrit_parameter_modes(xml_parent, data, plugin_ver):
+ if plugin_ver < pkg_resources.parse_version("2.18.0"):
+ for parameter_name in (
+ "commit-message",
+ "name-and-email",
+ "change-subject",
+ "comment-text",
+ ):
+ parameter_mode = "{}-parameter-mode".format(parameter_name)
+ if parameter_mode in data:
+ logger.warning(
+ "Gerrit Trigger property '{}' is not supported in this "
+ "plugin version".format(parameter_mode)
+ )
+
+ deprecated_mappings = (
+ ("no-name-and-email", "noNameAndEmailParameters", False),
+ ("readable-message", "readableMessage", False),
+ )
+ helpers.convert_mapping_to_xml(
+ xml_parent, data, deprecated_mappings, fail_required=True
+ )
+ else: # version >= 2.18.0
+ readable_message = data.get("readable-message")
+ if readable_message is not None:
+ logger.warning("Gerrit Trigger property 'readable-message' is deprecated")
+ no_name_and_email = data.get("no-name-and-email")
+ if no_name_and_email is not None:
+ logger.warning("Gerrit Trigger property 'no-name-and-email' is deprecated")
+ allowed_parameter_modes = ["NONE", "PLAIN", "BASE64"]
+ new_mappings = (
+ (
+ "commit-message-parameter-mode",
+ "commitMessageParameterMode",
+ "BASE64" if readable_message is not True else "PLAIN",
+ allowed_parameter_modes,
+ ),
+ (
+ "name-and-email-parameter-mode",
+ "nameAndEmailParameterMode",
+ "PLAIN" if no_name_and_email is not True else "NONE",
+ allowed_parameter_modes,
+ ),
+ (
+ "change-subject-parameter-mode",
+ "changeSubjectParameterMode",
+ "PLAIN",
+ allowed_parameter_modes,
+ ),
+ (
+ "comment-text-parameter-mode",
+ "commentTextParameterMode",
+ "BASE64",
+ allowed_parameter_modes,
+ ),
+ )
+ helpers.convert_mapping_to_xml(
+ xml_parent, data, new_mappings, fail_required=True
+ )
+
+
def gerrit(registry, xml_parent, data):
"""yaml: gerrit
@@ -288,6 +350,8 @@ def gerrit(registry, xml_parent, data):
* **draft-published-event** -- Trigger on draft published event.
* **ref-updated-event** -- Trigger on ref-updated.
Gerrit Trigger Plugin version >= 2.29.0
+ * **topic-changed-event** -- Trigger on topic-changed.
+ Gerrit Trigger Plugin version >= 2.26.0
* **private-state-changed-event** -- Trigger on private state changed event.
* **wip-state-changed-event** -- Trigger on wip state changed event.
Gerrit Trigger Plugin version >= 2.8.0
@@ -450,10 +514,42 @@ def gerrit(registry, xml_parent, data):
parameters (default true)
:arg bool no-name-and-email: Do not pass compound 'name and email'
parameters (default false)
+
+ .. deprecated:: 3.5.0 Please use `name-and-email-parameter-mode`
+ parameter.
+
:arg bool readable-message: If parameters regarding multiline text,
e.g. commit message, should be as human readable or not. If false,
those parameters are Base64 encoded to keep environment variables
clean. (default false)
+
+ .. deprecated:: 3.5.0 Please use `commit-message-parameter-mode`
+ parameter.
+
+ :arg str name-and-email-parameter-mode: The parameter mode for the compound
+ "name and email" parameters (like GERRIT_PATCHSET_UPLOADER or
+ GERRIT_CHANGE_OWNER). This can either be 'NONE' to avoid passing the
+ parameter all together, 'PLAIN' to pass the parameter in human readable
+ form, or 'BASE64' to pass the parameter in base64 encoded form (default
+ 'PLAIN'). Requires Gerrit Trigger Plugin version >= 2.18.0.
+ :arg str commit-message-parameter-mode: The parameter mode for the
+ GERRIT_CHANGE_COMMIT_MESSAGE parameter. This can either be 'NONE' to
+ avoid passing the parameter all together, 'PLAIN' to pass the parameter
+ in human readable form, or 'BASE64' to pass the parameter in base64
+ encoded form (default 'BASE64'). Requires Gerrit Trigger Plugin version
+ >= 2.18.0.
+ :arg str change-subject-parameter-mode: The parameter mode for the
+ GERRIT_CHANGE_SUBJECT parameter. This can either be 'NONE' to avoid
+ passing the parameter all together, 'PLAIN' to pass the parameter in
+ human readable form, or 'BASE64' to pass the parameter in base64
+ encoded form (default 'PLAIN'). Requires Gerrit Trigger Plugin version
+ >= 2.18.0.
+ :arg str comment-text-parameter-mode: The parameter mode for the
+ GERRIT_EVENT_COMMENT_TEXT parameter. This can either be 'NONE' to avoid
+ passing the parameter all together, 'PLAIN' to pass the parameter in
+ human readable form, or 'BASE64' to pass the parameter in base64
+ encoded form (default 'BASE64'). Requires Gerrit Trigger Plugin version
+ >= 2.18.0.
:arg str dependency-jobs: All jobs on which this job depends. If a commit
should trigger both a dependency and this job, the dependency will be
built first. Use commas to separate job names. Beware of cyclic
@@ -469,7 +565,14 @@ def gerrit(registry, xml_parent, data):
trigger configuration will be fetched from there on a regular interval
:arg bool trigger-for-unreviewed-patches: trigger patchset-created events
for changes that were uploaded while connection to Gerrit was down
- (default false). Requires Gerrit Trigger Plugin version >= 2.11.0
+ (default false). Requires Gerrit Trigger Plugin version >= 2.11.0.
+
+ .. deprecated:: 3.5.0 Supported for Gerrit Trigger Plugin versions
+ < 2.14.0. See
+ `Missed Events Playback Feature <https://plugins.jenkins.io/
+ gerrit-trigger#missed-events-playback-feature-available-from-
+ v-2-14-0>`_.
+
:arg str custom-url: Custom URL for a message sent to Gerrit. Build
details URL will be used if empty. (default '')
:arg str server-name: Name of the server to trigger on, or ''__ANY__'' to
@@ -503,6 +606,11 @@ def gerrit(registry, xml_parent, data):
gerrit_handle_legacy_configuration(data)
+ plugin_info = registry.get_plugin_info("Gerrit Trigger")
+ plugin_ver = pkg_resources.parse_version(
+ plugin_info.get("version", str(sys.maxsize))
+ )
+
projects = data.get("projects", [])
gtrig = XML.SubElement(
xml_parent,
@@ -607,11 +715,10 @@ def gerrit(registry, xml_parent, data):
("silent", "silentMode", False),
("silent-start", "silentStartMode", False),
("escape-quotes", "escapeQuotes", True),
- ("no-name-and-email", "noNameAndEmailParameters", False),
- ("readable-message", "readableMessage", False),
("dependency-jobs", "dependencyJobsNames", ""),
]
helpers.convert_mapping_to_xml(gtrig, data, general_mappings, fail_required=True)
+ build_gerrit_parameter_modes(gtrig, data, plugin_ver)
notification_levels = ["NONE", "OWNER", "OWNER_REVIEWERS", "ALL", "SERVER_DEFAULT"]
notification_level = data.get("notification-level", "SERVER_DEFAULT")
if notification_level not in notification_levels:
@@ -624,16 +731,26 @@ def gerrit(registry, xml_parent, data):
XML.SubElement(gtrig, "notificationLevel").text = notification_level
XML.SubElement(gtrig, "dynamicTriggerConfiguration").text = str(
data.get("dynamic-trigger-enabled", False)
- )
+ ).lower()
XML.SubElement(gtrig, "triggerConfigURL").text = str(
data.get("dynamic-trigger-url", "")
)
+ if data.get("dynamic-trigger-enabled", False) is False:
+ XML.SubElement(gtrig, "dynamicGerritProjects").set("class", "empty-list")
XML.SubElement(gtrig, "triggerInformationAction").text = str(
data.get("trigger-information-action", "")
)
- XML.SubElement(gtrig, "allowTriggeringUnreviewedPatches").text = str(
- data.get("trigger-for-unreviewed-patches", False)
- ).lower()
+ if (plugin_ver >= pkg_resources.parse_version("2.11.0")) and (
+ plugin_ver < pkg_resources.parse_version("2.14.0")
+ ):
+ XML.SubElement(gtrig, "allowTriggeringUnreviewedPatches").text = str(
+ data.get("trigger-for-unreviewed-patches", False)
+ ).lower()
+ elif "trigger-for-unreviewed-patches" in data:
+ logger.warning(
+ "Gerrit Trigger property 'trigger-for-unreviewed-patches' is not "
+ "supported in this plugin version"
+ )
build_gerrit_triggers(gtrig, data)
override = str(data.get("override-votes", False)).lower()
if override == "true":
diff --git a/tests/jsonparser/fixtures/complete001.xml b/tests/jsonparser/fixtures/complete001.xml
index 355fac1a..17a54f72 100644
--- a/tests/jsonparser/fixtures/complete001.xml
+++ b/tests/jsonparser/fixtures/complete001.xml
@@ -68,14 +68,16 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>true</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>False</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
<triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>false</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent/>
</triggerOnEvents>
diff --git a/tests/multibranch/fixtures/multibranch_defaults.xml b/tests/multibranch/fixtures/multibranch_defaults_id_mode.xml
index 94859b22..8136ab90 100644
--- a/tests/multibranch/fixtures/multibranch_defaults.xml
+++ b/tests/multibranch/fixtures/multibranch_defaults_id_mode.xml
@@ -58,6 +58,7 @@
</sources>
<factory class="org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineBranchDefaultsProjectFactory">
<owner class="org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject" reference="../.."/>
- <scriptPath>Jenkinsfile</scriptPath>
+ <scriptId>my-pipeline</scriptId>
+ <useSandbox>true</useSandbox>
</factory>
</org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject>
diff --git a/tests/multibranch/fixtures/multibranch_defaults_id_mode.yaml b/tests/multibranch/fixtures/multibranch_defaults_id_mode.yaml
new file mode 100644
index 00000000..b7b52f1a
--- /dev/null
+++ b/tests/multibranch/fixtures/multibranch_defaults_id_mode.yaml
@@ -0,0 +1,9 @@
+name: 'demo-multibranch-defaults'
+project-type: multibranch-defaults
+script-id: my-pipeline
+sandbox: true
+scm:
+ - github:
+ repo: 'foo'
+ repo-owner: 'johndoe'
+ credentials-id: 'secret'
diff --git a/tests/multibranch/fixtures/multibranch_defaults_path_mode.xml b/tests/multibranch/fixtures/multibranch_defaults_path_mode.xml
new file mode 100644
index 00000000..c8a0070e
--- /dev/null
+++ b/tests/multibranch/fixtures/multibranch_defaults_path_mode.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject plugin="workflow-multibranch">
+ <properties/>
+ <views>
+ <hudson.model.AllView>
+ <name>All</name>
+ <filterExecutors>false</filterExecutors>
+ <filterQueue>false</filterQueue>
+ <properties class="hudson.model.View$PropertyList"/>
+ <owner class="org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject" reference="../../.."/>
+ </hudson.model.AllView>
+ </views>
+ <viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
+ <folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api">
+ <owner class="org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject" reference="../.."/>
+ </folderViews>
+ <healthMetrics>
+ <com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder">
+ <nonRecursive>false</nonRecursive>
+ </com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
+ </healthMetrics>
+ <icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api">
+ <owner class="org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject" reference="../.."/>
+ </icon>
+ <orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder">
+ <pruneDeadBranches>true</pruneDeadBranches>
+ <daysToKeep>-1</daysToKeep>
+ <numToKeep>-1</numToKeep>
+ </orphanedItemStrategy>
+ <triggers/>
+ <sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api">
+ <data>
+ <jenkins.branch.BranchSource>
+ <source class="org.jenkinsci.plugins.github_branch_source.GitHubSCMSource" plugin="github-branch-source">
+ <id>gh-johndoe-foo</id>
+ <repoOwner>johndoe</repoOwner>
+ <repository>foo</repository>
+ <credentialsId>secret</credentialsId>
+ <traits>
+ <org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
+ <strategyId>1</strategyId>
+ </org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
+ <org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
+ <strategyId>1</strategyId>
+ <trust class="org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustContributors"/>
+ </org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
+ <org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
+ <strategyId>1</strategyId>
+ </org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
+ <jenkins.plugins.git.traits.WipeWorkspaceTrait>
+ <extension class="hudson.plugins.git.extensions.impl.WipeWorkspace"/>
+ </jenkins.plugins.git.traits.WipeWorkspaceTrait>
+ </traits>
+ </source>
+ </jenkins.branch.BranchSource>
+ </data>
+ <owner class="org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject" reference="../.."/>
+ </sources>
+ <factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory" plugin="workflow-multibranch">
+ <owner class="org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject" reference="../.."/>
+ <scriptPath>Jenkinsfile</scriptPath>
+ </factory>
+</org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject>
diff --git a/tests/multibranch/fixtures/multibranch_defaults.yaml b/tests/multibranch/fixtures/multibranch_defaults_path_mode.yaml
index 51e41beb..51e41beb 100644
--- a/tests/multibranch/fixtures/multibranch_defaults.yaml
+++ b/tests/multibranch/fixtures/multibranch_defaults_path_mode.yaml
diff --git a/tests/multibranch/fixtures/scm_github_full.xml b/tests/multibranch/fixtures/scm_github_full.xml
index 2d914b2b..6a52b72a 100644
--- a/tests/multibranch/fixtures/scm_github_full.xml
+++ b/tests/multibranch/fixtures/scm_github_full.xml
@@ -107,6 +107,11 @@
<org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty plugin="workflow-multibranch">
<hint>MAX_SURVIVABILITY</hint>
</org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty>
+ <com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty plugin="github-pr-comment-build">
+ <commentBody>Ci build!</commentBody>
+ </com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty>
+ <com.adobe.jenkins.github__pr__comment__build.TriggerPRReviewBranchProperty plugin="github-pr-comment-build"/>
+ <com.adobe.jenkins.github__pr__comment__build.TriggerPRUpdateBranchProperty plugin="github-pr-comment-build"/>
</a>
</properties>
</strategy>
diff --git a/tests/multibranch/fixtures/scm_github_full.yaml b/tests/multibranch/fixtures/scm_github_full.yaml
index 42350c67..591e0fd8 100644
--- a/tests/multibranch/fixtures/scm_github_full.yaml
+++ b/tests/multibranch/fixtures/scm_github_full.yaml
@@ -20,6 +20,9 @@ scm:
all-branches:
- suppress-scm-triggering: true
- pipeline-branch-durability-override: max-survivability
+ - trigger-build-on-pr-comment: "Ci build!"
+ - trigger-build-on-pr-review: true
+ - trigger-build-on-pr-update: true
build-strategies:
- tags:
ignore-tags-newer-than: 1
diff --git a/tests/multibranch/fixtures/scm_github_no_origin_pr_discovery.xml b/tests/multibranch/fixtures/scm_github_no_origin_pr_discovery.xml
new file mode 100644
index 00000000..d700a816
--- /dev/null
+++ b/tests/multibranch/fixtures/scm_github_no_origin_pr_discovery.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch">
+ <properties/>
+ <views>
+ <hudson.model.AllView>
+ <name>All</name>
+ <filterExecutors>false</filterExecutors>
+ <filterQueue>false</filterQueue>
+ <properties class="hudson.model.View$PropertyList"/>
+ <owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../../.."/>
+ </hudson.model.AllView>
+ </views>
+ <viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
+ <folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api">
+ <owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
+ </folderViews>
+ <healthMetrics>
+ <com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder">
+ <nonRecursive>false</nonRecursive>
+ </com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
+ </healthMetrics>
+ <icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api">
+ <owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
+ </icon>
+ <orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder">
+ <pruneDeadBranches>true</pruneDeadBranches>
+ <daysToKeep>-1</daysToKeep>
+ <numToKeep>-1</numToKeep>
+ </orphanedItemStrategy>
+ <triggers/>
+ <sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api">
+ <data>
+ <jenkins.branch.BranchSource>
+ <source class="org.jenkinsci.plugins.github_branch_source.GitHubSCMSource" plugin="github-branch-source">
+ <id>gh-johndoe-foo</id>
+ <repoOwner>johndoe</repoOwner>
+ <repository>foo</repository>
+ <traits>
+ <org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
+ <strategyId>1</strategyId>
+ </org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
+ <org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
+ <strategyId>1</strategyId>
+ <trust class="org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustContributors"/>
+ </org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
+ <jenkins.plugins.git.traits.WipeWorkspaceTrait>
+ <extension class="hudson.plugins.git.extensions.impl.WipeWorkspace"/>
+ </jenkins.plugins.git.traits.WipeWorkspaceTrait>
+ </traits>
+ </source>
+ </jenkins.branch.BranchSource>
+ </data>
+ <owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
+ </sources>
+ <factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
+ <owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
+ <scriptPath>Jenkinsfile</scriptPath>
+ </factory>
+</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
diff --git a/tests/multibranch/fixtures/scm_github_no_origin_pr_discovery.yaml b/tests/multibranch/fixtures/scm_github_no_origin_pr_discovery.yaml
new file mode 100644
index 00000000..7852137e
--- /dev/null
+++ b/tests/multibranch/fixtures/scm_github_no_origin_pr_discovery.yaml
@@ -0,0 +1,7 @@
+name: 'demo-multibranch-github-no-fork-prs'
+project-type: multibranch
+scm:
+ - github:
+ repo: 'foo'
+ repo-owner: 'johndoe'
+ discover-pr-origin: no
diff --git a/tests/publishers/fixtures/join-trigger002.xml b/tests/publishers/fixtures/join-trigger002.xml
new file mode 100644
index 00000000..9df79716
--- /dev/null
+++ b/tests/publishers/fixtures/join-trigger002.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <publishers>
+ <hudson.tasks.BuildTrigger>
+ <childProjects>project-1,project-2</childProjects>
+ <threshold>
+ <name>FAILURE</name>
+ <ordinal>2</ordinal>
+ <color>RED</color>
+ </threshold>
+ </hudson.tasks.BuildTrigger>
+ <join.JoinTrigger>
+ <joinProjects>cleanup</joinProjects>
+ <joinPublishers/>
+ <resultThreshold>
+ <name>FAILURE</name>
+ <ordinal>2</ordinal>
+ <color>RED</color>
+ </resultThreshold>
+ </join.JoinTrigger>
+ </publishers>
+</project>
diff --git a/tests/publishers/fixtures/join-trigger002.yaml b/tests/publishers/fixtures/join-trigger002.yaml
new file mode 100644
index 00000000..80940e47
--- /dev/null
+++ b/tests/publishers/fixtures/join-trigger002.yaml
@@ -0,0 +1,8 @@
+publishers:
+ - trigger:
+ project: project-1,project-2
+ threshold: failure
+ - join-trigger:
+ projects:
+ - cleanup
+ threshold: failure
diff --git a/tests/triggers/fixtures/gerrit001.xml b/tests/triggers/fixtures/gerrit001.xml
index 5a30fcb3..00774f20 100644
--- a/tests/triggers/fixtures/gerrit001.xml
+++ b/tests/triggers/fixtures/gerrit001.xml
@@ -31,14 +31,15 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>false</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>True</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>true</dynamicTriggerConfiguration>
<triggerConfigURL>http://myhost/mytrigger</triggerConfigURL>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>false</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
<verdictCategory>APRV</verdictCategory>
diff --git a/tests/triggers/fixtures/gerrit002.xml b/tests/triggers/fixtures/gerrit002.xml
index d42eb2bb..f18e4fd7 100644
--- a/tests/triggers/fixtures/gerrit002.xml
+++ b/tests/triggers/fixtures/gerrit002.xml
@@ -35,14 +35,15 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>false</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>True</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>true</dynamicTriggerConfiguration>
<triggerConfigURL>http://myhost/mytrigger</triggerConfigURL>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>false</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
<verdictCategory>APRV</verdictCategory>
diff --git a/tests/triggers/fixtures/gerrit003.xml b/tests/triggers/fixtures/gerrit003.xml
index 55ef0e6f..32d55b85 100644
--- a/tests/triggers/fixtures/gerrit003.xml
+++ b/tests/triggers/fixtures/gerrit003.xml
@@ -52,14 +52,15 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>false</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>True</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>true</dynamicTriggerConfiguration>
<triggerConfigURL>http://myhost/mytrigger</triggerConfigURL>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>false</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
<verdictCategory>APRV</verdictCategory>
diff --git a/tests/triggers/fixtures/gerrit004.xml b/tests/triggers/fixtures/gerrit004.xml
index 4afca1cd..b7c5dd8b 100644
--- a/tests/triggers/fixtures/gerrit004.xml
+++ b/tests/triggers/fixtures/gerrit004.xml
@@ -41,14 +41,15 @@
<silentMode>false</silentMode>
<silentStartMode>true</silentStartMode>
<escapeQuotes>false</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames>job1, job2</dependencyJobsNames>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel>ALL</notificationLevel>
- <dynamicTriggerConfiguration>True</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>true</dynamicTriggerConfiguration>
<triggerConfigURL>http://myhost/mytrigger</triggerConfigURL>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>true</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent>
<excludeDrafts>true</excludeDrafts>
diff --git a/tests/triggers/fixtures/gerrit004.yaml b/tests/triggers/fixtures/gerrit004.yaml
index df64b592..d890d57f 100644
--- a/tests/triggers/fixtures/gerrit004.yaml
+++ b/tests/triggers/fixtures/gerrit004.yaml
@@ -32,11 +32,10 @@ triggers:
silent: false
silent-start: true
escape-quotes: false
- no-name-and-email: false
dependency-jobs: 'job1, job2'
+ name-and-email-parameter-mode: PLAIN
notification-level: ALL
dynamic-trigger-enabled: true
dynamic-trigger-url: http://myhost/mytrigger
- trigger-for-unreviewed-patches: true
server-name: my-server
failure-message-file: path/to/filename
diff --git a/tests/triggers/fixtures/gerrit005.xml b/tests/triggers/fixtures/gerrit005.xml
index bb719e43..05a179da 100644
--- a/tests/triggers/fixtures/gerrit005.xml
+++ b/tests/triggers/fixtures/gerrit005.xml
@@ -31,14 +31,16 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>true</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>False</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
<triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>false</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
<verdictCategory>APRV</verdictCategory>
diff --git a/tests/triggers/fixtures/gerrit006.xml b/tests/triggers/fixtures/gerrit006.xml
index 30a9e5c3..26ecccee 100644
--- a/tests/triggers/fixtures/gerrit006.xml
+++ b/tests/triggers/fixtures/gerrit006.xml
@@ -31,14 +31,15 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>false</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>true</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>PLAIN</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>True</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>true</dynamicTriggerConfiguration>
<triggerConfigURL>http://myhost/mytrigger</triggerConfigURL>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>false</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedContainsEvent>
<commentAddedCommentContains>recheck</commentAddedCommentContains>
diff --git a/tests/triggers/fixtures/gerrit007.xml b/tests/triggers/fixtures/gerrit007.xml
index 821186ea..8c673fd0 100644
--- a/tests/triggers/fixtures/gerrit007.xml
+++ b/tests/triggers/fixtures/gerrit007.xml
@@ -41,14 +41,15 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>false</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>True</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>true</dynamicTriggerConfiguration>
<triggerConfigURL>http://myhost/mytrigger</triggerConfigURL>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>true</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent/>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
diff --git a/tests/triggers/fixtures/gerrit008.xml b/tests/triggers/fixtures/gerrit008.xml
index d1761489..2639bd70 100644
--- a/tests/triggers/fixtures/gerrit008.xml
+++ b/tests/triggers/fixtures/gerrit008.xml
@@ -47,14 +47,15 @@
<silentMode>false</silentMode>
<silentStartMode>true</silentStartMode>
<escapeQuotes>false</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames>job1, job2</dependencyJobsNames>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel>ALL</notificationLevel>
- <dynamicTriggerConfiguration>True</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>true</dynamicTriggerConfiguration>
<triggerConfigURL>http://myhost/mytrigger</triggerConfigURL>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>true</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent>
<excludeDrafts>true</excludeDrafts>
diff --git a/tests/triggers/fixtures/gerrit009.xml b/tests/triggers/fixtures/gerrit009.xml
index 8abc6e43..cc87f5e2 100644
--- a/tests/triggers/fixtures/gerrit009.xml
+++ b/tests/triggers/fixtures/gerrit009.xml
@@ -13,14 +13,15 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>true</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>True</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>true</dynamicTriggerConfiguration>
<triggerConfigURL>http://myhost/mytrigger</triggerConfigURL>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>false</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
<verdictCategory>APRV</verdictCategory>
diff --git a/tests/triggers/fixtures/gerrit010.xml b/tests/triggers/fixtures/gerrit010.xml
index c9cc2499..78d66b4a 100644
--- a/tests/triggers/fixtures/gerrit010.xml
+++ b/tests/triggers/fixtures/gerrit010.xml
@@ -31,14 +31,15 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>false</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>True</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>true</dynamicTriggerConfiguration>
<triggerConfigURL>http://myhost/mytrigger</triggerConfigURL>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>false</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
<verdictCategory>APRV</verdictCategory>
diff --git a/tests/triggers/fixtures/gerrit011-name-and-email-parameter-mode-base64.xml b/tests/triggers/fixtures/gerrit011-name-and-email-parameter-mode-base64.xml
new file mode 100644
index 00000000..a52b428e
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit011-name-and-email-parameter-mode-base64.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>BASE64</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit011-name-and-email-parameter-mode-base64.yaml b/tests/triggers/fixtures/gerrit011-name-and-email-parameter-mode-base64.yaml
new file mode 100644
index 00000000..052da2cf
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit011-name-and-email-parameter-mode-base64.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ name-and-email-parameter-mode: BASE64
diff --git a/tests/triggers/fixtures/gerrit012-name-and-email-parameter-mode-none.xml b/tests/triggers/fixtures/gerrit012-name-and-email-parameter-mode-none.xml
new file mode 100644
index 00000000..3e5af26f
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit012-name-and-email-parameter-mode-none.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>NONE</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit012-name-and-email-parameter-mode-none.yaml b/tests/triggers/fixtures/gerrit012-name-and-email-parameter-mode-none.yaml
new file mode 100644
index 00000000..1f589cd6
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit012-name-and-email-parameter-mode-none.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ name-and-email-parameter-mode: NONE
diff --git a/tests/triggers/fixtures/gerrit013-name-and-email-parameter-mode-plain.xml b/tests/triggers/fixtures/gerrit013-name-and-email-parameter-mode-plain.xml
new file mode 100644
index 00000000..168ecdb6
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit013-name-and-email-parameter-mode-plain.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit013-name-and-email-parameter-mode-plain.yaml b/tests/triggers/fixtures/gerrit013-name-and-email-parameter-mode-plain.yaml
new file mode 100644
index 00000000..f10f5dfe
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit013-name-and-email-parameter-mode-plain.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ name-and-email-parameter-mode: PLAIN
diff --git a/tests/triggers/fixtures/gerrit014-commit-message-parameter-mode-base64.xml b/tests/triggers/fixtures/gerrit014-commit-message-parameter-mode-base64.xml
new file mode 100644
index 00000000..168ecdb6
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit014-commit-message-parameter-mode-base64.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit014-commit-message-parameter-mode-base64.yaml b/tests/triggers/fixtures/gerrit014-commit-message-parameter-mode-base64.yaml
new file mode 100644
index 00000000..afc29a4b
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit014-commit-message-parameter-mode-base64.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ commit-message-parameter-mode: BASE64
diff --git a/tests/triggers/fixtures/gerrit015-commit-message-parameter-mode-plain.xml b/tests/triggers/fixtures/gerrit015-commit-message-parameter-mode-plain.xml
new file mode 100644
index 00000000..aca3e5b3
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit015-commit-message-parameter-mode-plain.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>PLAIN</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit015-commit-message-parameter-mode-plain.yaml b/tests/triggers/fixtures/gerrit015-commit-message-parameter-mode-plain.yaml
new file mode 100644
index 00000000..b3f8df2f
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit015-commit-message-parameter-mode-plain.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ commit-message-parameter-mode: PLAIN
diff --git a/tests/triggers/fixtures/gerrit016-commit-message-parameter-mode-none.xml b/tests/triggers/fixtures/gerrit016-commit-message-parameter-mode-none.xml
new file mode 100644
index 00000000..585b758a
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit016-commit-message-parameter-mode-none.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>NONE</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit016-commit-message-parameter-mode-none.yaml b/tests/triggers/fixtures/gerrit016-commit-message-parameter-mode-none.yaml
new file mode 100644
index 00000000..fb903541
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit016-commit-message-parameter-mode-none.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ commit-message-parameter-mode: NONE
diff --git a/tests/triggers/fixtures/gerrit017-change-subject-parameter-mode-base64.xml b/tests/triggers/fixtures/gerrit017-change-subject-parameter-mode-base64.xml
new file mode 100644
index 00000000..afb1fc2e
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit017-change-subject-parameter-mode-base64.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>BASE64</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit017-change-subject-parameter-mode-base64.yaml b/tests/triggers/fixtures/gerrit017-change-subject-parameter-mode-base64.yaml
new file mode 100644
index 00000000..89f9649f
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit017-change-subject-parameter-mode-base64.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ change-subject-parameter-mode: BASE64
diff --git a/tests/triggers/fixtures/gerrit018-change-subject-parameter-mode-plain.xml b/tests/triggers/fixtures/gerrit018-change-subject-parameter-mode-plain.xml
new file mode 100644
index 00000000..168ecdb6
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit018-change-subject-parameter-mode-plain.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit018-change-subject-parameter-mode-plain.yaml b/tests/triggers/fixtures/gerrit018-change-subject-parameter-mode-plain.yaml
new file mode 100644
index 00000000..4db9e31c
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit018-change-subject-parameter-mode-plain.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ change-subject-parameter-mode: PLAIN
diff --git a/tests/triggers/fixtures/gerrit019-change-subject-parameter-mode-none.xml b/tests/triggers/fixtures/gerrit019-change-subject-parameter-mode-none.xml
new file mode 100644
index 00000000..06483bd2
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit019-change-subject-parameter-mode-none.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>NONE</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit019-change-subject-parameter-mode-none.yaml b/tests/triggers/fixtures/gerrit019-change-subject-parameter-mode-none.yaml
new file mode 100644
index 00000000..876f7aaa
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit019-change-subject-parameter-mode-none.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ change-subject-parameter-mode: NONE
diff --git a/tests/triggers/fixtures/gerrit020-comment-text-parameter-mode-base64.xml b/tests/triggers/fixtures/gerrit020-comment-text-parameter-mode-base64.xml
new file mode 100644
index 00000000..168ecdb6
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit020-comment-text-parameter-mode-base64.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit020-comment-text-parameter-mode-base64.yaml b/tests/triggers/fixtures/gerrit020-comment-text-parameter-mode-base64.yaml
new file mode 100644
index 00000000..097c0648
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit020-comment-text-parameter-mode-base64.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ comment-text-parameter-mode: BASE64
diff --git a/tests/triggers/fixtures/gerrit021-comment-text-parameter-mode-plain.xml b/tests/triggers/fixtures/gerrit021-comment-text-parameter-mode-plain.xml
new file mode 100644
index 00000000..25b079f3
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit021-comment-text-parameter-mode-plain.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>PLAIN</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit021-comment-text-parameter-mode-plain.yaml b/tests/triggers/fixtures/gerrit021-comment-text-parameter-mode-plain.yaml
new file mode 100644
index 00000000..37ac319d
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit021-comment-text-parameter-mode-plain.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ comment-text-parameter-mode: PLAIN
diff --git a/tests/triggers/fixtures/gerrit022-comment-text-parameter-mode-none.xml b/tests/triggers/fixtures/gerrit022-comment-text-parameter-mode-none.xml
new file mode 100644
index 00000000..22a02bd2
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit022-comment-text-parameter-mode-none.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>NONE</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit022-comment-text-parameter-mode-none.yaml b/tests/triggers/fixtures/gerrit022-comment-text-parameter-mode-none.yaml
new file mode 100644
index 00000000..867ee90b
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit022-comment-text-parameter-mode-none.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ comment-text-parameter-mode: NONE
diff --git a/tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.plugins_info.yaml b/tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.plugins_info.yaml
new file mode 100644
index 00000000..a19595b4
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.plugins_info.yaml
@@ -0,0 +1,3 @@
+- longName: 'Gerrit Trigger'
+ shortName: 'gerrit-trigger'
+ version: '2.17.0'
diff --git a/tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.xml b/tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.xml
new file mode 100644
index 00000000..ecd8a3a7
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <noNameAndEmailParameters>true</noNameAndEmailParameters>
+ <readableMessage>false</readableMessage>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.yaml b/tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.yaml
new file mode 100644
index 00000000..cd08b8c9
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit023-no-name-and-email-lt-2.18.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ no-name-and-email: true
diff --git a/tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.plugins_info.yaml b/tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.plugins_info.yaml
new file mode 100644
index 00000000..7515655f
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.plugins_info.yaml
@@ -0,0 +1,3 @@
+- longName: 'Gerrit Trigger'
+ shortName: 'gerrit-trigger'
+ version: '2.18.0'
diff --git a/tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.xml b/tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.xml
new file mode 100644
index 00000000..3e5af26f
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>NONE</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.yaml b/tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.yaml
new file mode 100644
index 00000000..cd08b8c9
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit024-no-name-and-email-ge-2.18.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ no-name-and-email: true
diff --git a/tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.plugins_info.yaml b/tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.plugins_info.yaml
new file mode 100644
index 00000000..a19595b4
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.plugins_info.yaml
@@ -0,0 +1,3 @@
+- longName: 'Gerrit Trigger'
+ shortName: 'gerrit-trigger'
+ version: '2.17.0'
diff --git a/tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.xml b/tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.xml
new file mode 100644
index 00000000..c7af0d18
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <noNameAndEmailParameters>false</noNameAndEmailParameters>
+ <readableMessage>true</readableMessage>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.yaml b/tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.yaml
new file mode 100644
index 00000000..6fb173e8
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit025-readable-message-lt-2.18.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ readable-message: true
diff --git a/tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.plugins_info.yaml b/tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.plugins_info.yaml
new file mode 100644
index 00000000..7515655f
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.plugins_info.yaml
@@ -0,0 +1,3 @@
+- longName: 'Gerrit Trigger'
+ shortName: 'gerrit-trigger'
+ version: '2.18.0'
diff --git a/tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.xml b/tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.xml
new file mode 100644
index 00000000..aca3e5b3
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>PLAIN</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.yaml b/tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.yaml
new file mode 100644
index 00000000..6fb173e8
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit026-readable-message-ge-2.18.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ readable-message: true
diff --git a/tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.plugins_info.yaml b/tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.plugins_info.yaml
new file mode 100644
index 00000000..c4e8764f
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.plugins_info.yaml
@@ -0,0 +1,3 @@
+- longName: 'Gerrit Trigger'
+ shortName: 'gerrit-trigger'
+ version: '2.13.0'
diff --git a/tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.xml b/tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.xml
new file mode 100644
index 00000000..8b26014c
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <noNameAndEmailParameters>false</noNameAndEmailParameters>
+ <readableMessage>false</readableMessage>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <allowTriggeringUnreviewedPatches>true</allowTriggeringUnreviewedPatches>
+ <triggerOnEvents/>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.yaml b/tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.yaml
new file mode 100644
index 00000000..4b1238ff
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit027-trigger-for-unreviewed-patches.yaml
@@ -0,0 +1,3 @@
+triggers:
+ - gerrit:
+ trigger-for-unreviewed-patches: true
diff --git a/tests/triggers/fixtures/gerrit028-trigger-simple-triggers.xml b/tests/triggers/fixtures/gerrit028-trigger-simple-triggers.xml
new file mode 100644
index 00000000..b5dfea0b
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit028-trigger-simple-triggers.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ <spec/>
+ <gerritProjects/>
+ <skipVote>
+ <onSuccessful>false</onSuccessful>
+ <onFailed>false</onFailed>
+ <onUnstable>false</onUnstable>
+ <onNotBuilt>false</onNotBuilt>
+ </skipVote>
+ <silentMode>false</silentMode>
+ <silentStartMode>false</silentStartMode>
+ <escapeQuotes>true</escapeQuotes>
+ <dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
+ <notificationLevel/>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
+ <triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
+ <triggerInformationAction/>
+ <triggerOnEvents>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginChangeAbandonedEvent/>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginChangeMergedEvent/>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginChangeRestoredEvent/>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
+ <verdictCategory>Code-Review</verdictCategory>
+ <commentAddedTriggerApprovalValue>lorem</commentAddedTriggerApprovalValue>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
+ <verdictCategory>Verified</verdictCategory>
+ <commentAddedTriggerApprovalValue>ipsum</commentAddedTriggerApprovalValue>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedEvent>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedContainsEvent>
+ <commentAddedCommentContains>dolor</commentAddedCommentContains>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginCommentAddedContainsEvent>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginDraftPublishedEvent/>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent>
+ <excludeDrafts>true</excludeDrafts>
+ <excludeTrivialRebase>false</excludeTrivialRebase>
+ <excludeNoCodeChange>true</excludeNoCodeChange>
+ <excludePrivateState>false</excludePrivateState>
+ <excludeWipState>true</excludeWipState>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPrivateStateChangedEvent/>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginRefUpdatedEvent/>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginTopicChangedEvent/>
+ <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginWipStateChangedEvent/>
+ </triggerOnEvents>
+ <buildStartMessage/>
+ <buildFailureMessage/>
+ <buildSuccessfulMessage/>
+ <buildUnstableMessage/>
+ <buildNotBuiltMessage/>
+ <buildUnsuccessfulFilepath/>
+ <customUrl/>
+ <serverName>__ANY__</serverName>
+ </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/gerrit028-trigger-simple-triggers.yaml b/tests/triggers/fixtures/gerrit028-trigger-simple-triggers.yaml
new file mode 100644
index 00000000..0fd18c0a
--- /dev/null
+++ b/tests/triggers/fixtures/gerrit028-trigger-simple-triggers.yaml
@@ -0,0 +1,25 @@
+triggers:
+ - gerrit:
+ trigger-on:
+ - change-abandoned-event
+ - change-merged-event
+ - change-restored-event
+ - comment-added-event:
+ approval-category: Code-Review
+ approval-value: lorem
+ - comment-added-event:
+ approval-category: Verified
+ approval-value: ipsum
+ - comment-added-contains-event:
+ comment-contains-value: dolor
+ - draft-published-event
+ - patchset-created-event:
+ exclude-drafts: true
+ exclude-no-code-change: true
+ exclude-private: false
+ exclude-trivial-rebase: false
+ exclude-wip: true
+ - private-state-changed-event
+ - ref-updated-event
+ - topic-changed-event
+ - wip-state-changed-event
diff --git a/tests/yamlparser/fixtures/complete001.xml b/tests/yamlparser/fixtures/complete001.xml
index 546fd5e6..ef15abeb 100644
--- a/tests/yamlparser/fixtures/complete001.xml
+++ b/tests/yamlparser/fixtures/complete001.xml
@@ -69,14 +69,16 @@
<silentMode>false</silentMode>
<silentStartMode>false</silentStartMode>
<escapeQuotes>true</escapeQuotes>
- <noNameAndEmailParameters>false</noNameAndEmailParameters>
- <readableMessage>false</readableMessage>
<dependencyJobsNames/>
+ <commitMessageParameterMode>BASE64</commitMessageParameterMode>
+ <nameAndEmailParameterMode>PLAIN</nameAndEmailParameterMode>
+ <changeSubjectParameterMode>PLAIN</changeSubjectParameterMode>
+ <commentTextParameterMode>BASE64</commentTextParameterMode>
<notificationLevel/>
- <dynamicTriggerConfiguration>False</dynamicTriggerConfiguration>
+ <dynamicTriggerConfiguration>false</dynamicTriggerConfiguration>
<triggerConfigURL/>
+ <dynamicGerritProjects class="empty-list"/>
<triggerInformationAction/>
- <allowTriggeringUnreviewedPatches>false</allowTriggeringUnreviewedPatches>
<triggerOnEvents>
<com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent/>
</triggerOnEvents>