Add support for whitesource plugin

* This plugin brings automatic open source management to Jenkins
users
* The plugin helps you manage the usage of open source libraries in
you projects.

Change-Id: I6e01338292038f460428b9ae1bbe8fdc6f97c430
This commit is contained in:
Will Soula 2015-07-22 08:44:02 -05:00
parent f9d6b9c791
commit 832e61224c
4 changed files with 75 additions and 0 deletions

View File

@ -5074,6 +5074,52 @@ def cloudformation(parser, xml_parent, data):
delete_stacks, region_dict)
def whitesource(parser, xml_parent, data):
"""yaml: whitesource
This plugin brings automatic open source management to Jenkins users.
Requires the Jenkins :jenkins-wiki:`Whitesource Plugin
<Whitesource+Plugin>`.
:arg str product-token: Product name or token to update (Default '')
:arg str version: Product version (Default '')
:arg str override-token: Override the api token from the global config
(Default '')
:arg str project-token: Token uniquely identifying the project to update
(Default '')
:arg list includes: list of libraries to include (Default '[]')
:arg list excludes: list of libraries to exclude (Default '[]')
:arg str policies: Whether to override the global settings. Valid values:
global, enable, disable (Default 'global')
Example:
.. literalinclude:: /../../tests/publishers/fixtures/whitesource001.yaml
:language: yaml
"""
policies = ['global', 'enable', 'disable']
policies_value = str(data.get('policies', 'global').lower())
if policies_value not in policies:
raise InvalidAttributeError('policies', policies_value, policies)
whitesource = XML.SubElement(xml_parent, 'org.whitesource.jenkins.'
'WhiteSourcePublisher')
XML.SubElement(whitesource, 'jobCheckPolicies').text = policies_value
XML.SubElement(whitesource, 'jobApiToken').text = data.get(
'override-token', '')
XML.SubElement(whitesource, 'product').text = data.get(
'product-token', '')
XML.SubElement(whitesource, 'productVersion').text = data.get(
'version', '')
XML.SubElement(whitesource, 'projectToken').text = data.get(
'project-token', '')
XML.SubElement(whitesource, 'libIncludes').text = ' '.join(
data.get('includes', []))
XML.SubElement(whitesource, 'libExcludes').text = ' '.join(
data.get('excludes', []))
XML.SubElement(whitesource, 'ignorePomModules').text = 'false'
class Publishers(jenkins_jobs.modules.base.Base):
sequence = 70

View File

@ -216,6 +216,7 @@ jenkins_jobs.publishers =
valgrind=jenkins_jobs.modules.publishers:valgrind
violations=jenkins_jobs.modules.publishers:violations
warnings=jenkins_jobs.modules.publishers:warnings
whitesource=jenkins_jobs.modules.publishers:whitesource
workspace-cleanup=jenkins_jobs.modules.publishers:workspace_cleanup
xml-summary=jenkins_jobs.modules.publishers:xml_summary
xunit=jenkins_jobs.modules.publishers:xunit

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<org.whitesource.jenkins.WhiteSourcePublisher>
<jobCheckPolicies>enable</jobCheckPolicies>
<jobApiToken>1231424523412</jobApiToken>
<product>abcdefghijklmnopqrstuvwxyzabcdef</product>
<productVersion>1.0.17</productVersion>
<projectToken>sd;fkljsdfkljasdfkj</projectToken>
<libIncludes>lib/*.jar test/lib/*.jar</libIncludes>
<libExcludes>lib/ant*.jar test/lib/ant*.jar</libExcludes>
<ignorePomModules>false</ignorePomModules>
</org.whitesource.jenkins.WhiteSourcePublisher>
</publishers>
</project>

View File

@ -0,0 +1,13 @@
publishers:
- whitesource:
product-token: abcdefghijklmnopqrstuvwxyzabcdef
version: 1.0.17
policies: enable
override-token: "1231424523412"
project-token: sd;fkljsdfkljasdfkj
includes:
- lib/*.jar
- test/lib/*.jar
excludes:
- lib/ant*.jar
- test/lib/ant*.jar