Add support for Config File Provider to Maven Project module

This patch adds some detection logic to the code to detect if the
settings file starts with:
    org.jenkinsci.plugins.configfiles.maven.MavenSettingsConfig
or in the case of global-settings starts with:
    org.jenkinsci.plugins.configfiles.maven.GlobalMavenSettingsConfig

If true, the module will configure for Config File Provider as the
settings files.

See:
https://wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Plugin

Change-Id: Iecadfd6265100720d1d0b08d3cf57a510999f89d
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
Reorganize tests/cmd

This commit reorganizes the 'cmd' tests by subcommand.

Previously the multipath test was using an actual fixture directory
which actually made the fixtures directory somewhat unusable by other
tests since with an upcoming change (get_plugins_version) fixtures
directories may also contain YAML that doesn't contain JJB data.

Change-Id: I4c3866e1e0769512b40e1790e40affedb13953a2
URL in Maven deploy is an optional field

Passing a blank URL will cause the build to fail with
ERROR: Failed to deploy artifacts/metadata: Cannot access with type
default using the available connector factories:
WagonRepositoryConnectorFactory

Change-Id: Iab142155542f69e8ff876e7b24fd4e460b670ae8
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
Add Mercurial plugin feature to jenkins-job-builder

Adds Mercurial plugin to jenkins-job-builder.
This allows you to use hg repositories in your Jenkins config
eg:
    scm:
      - hg:
         branch: feature
         url: ssh://hg@hg/repo
         modules:
           - module1
           - module2
         browser: hgweb
         browser-url: http://hg/repo

Follows up on change ids:
 I00aaa4bb7a67ee5038ed1eff79b5497866730d19
 I134c8af15f0d4dc895f7131c77085c198b701fa8

Change-Id: I628f7fbd11769b1d18551fcd2913777dbe8de5a2
Implements: blueprint jenkins-job-builder-mercurial
Allow multiple comment-added events in gerrit trig.

In order to be able to react on multiple verdict categories (for example
Verify +1, Review +2) with one job, we need multiple definitions of
trigger-on events of the same-kind (comment-added-event). This was not
possible with the previous structure of event definitions.

The new yaml structure definition also better reflects the XML structure.

Change-Id: Idec0f2b07479c0611497126e984c13adf543ffc0
Add support for Gerrit Trigger Comment Contains Expression

Change-Id: I229c7fc2fac540a6fe3209221ca01dcf6dd068df
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
Merge "adding support for the custom tools plugin"
Merge "add support to git for changelog against branch"
Merge "Add Mercurial plugin feature to jenkins-job-builder"
Merge "Allow multiple comment-added events in gerrit trig."
Merge "Add support for Gerrit Trigger Comment Contains Expression"
Merge "URL in Maven deploy is an optional field"
Merge "Reorganize tests/cmd"
Merge "Add support for Config File Provider to Maven Project module"
Add 'node' parameter to 'parameters'

This parameter defines a list of nodes where this job could potentially
be executed on. Nodes can be choosen from list of current available nodes.
Currently it trasforms to single-selection dropdown to choose a slave for execution.

Change-Id: I5379d20b94e3b33360ea8f842e3b4237b491addb
add support for pyton and tox matrix project axis

Change-Id: I89ffc04faed02fd72c934b44b6832bd1f11d8f2e
Signed-off-by: Kyle Rockman <kyle.rockman@mac.com>
hipchat bug fix

the current implementation of the hipchat notification types
 is buggy on updates because it never sets previously enabled
types back to false if they are not specified in the yaml anymore
but were once true.also room can be blank so it will use the default
room as configured in the master jenkins configuration
also standardize the notify-* arguments even if jenkins plugin
is bad about it

Change-Id: I02547fb6474b66a4f3d21ec3bf766334c66cf14c
Signed-off-by: Kyle Rockman <kyle.rockman@mac.com>
MMF HACKS

Change-Id: Ie28ef9f4877eb46337c667d73896eabe55f83dc0
Signed-off-by: Kyle Rockman <kyle.rockman@mac.com>
hipchat bug fix

the current implementation of the hipchat notification types
 is buggy on updates because it never sets previously enabled
types back to false if they are not specified in the yaml anymore
but were once true.also room can be blank so it will use the default
room as configured in the master jenkins configuration
also standardize the notify-* arguments even if jenkins plugin
is bad about it

Change-Id: I02547fb6474b66a4f3d21ec3bf766334c66cf14c
Signed-off-by: Kyle Rockman <kyle.rockman@mac.com>