###############################################################
# WhiteSource Unified-Agent configuration file
###############################################################
# GENERAL SCAN MODE: Files and Package Managers
###############################################################
# Organization vitals
######################

apiKey=$WSS_API_KEY
#userKey is required if WhiteSource administrator has enabled "Enforce user level access" option
#userKey=
#requesterEmail=user@provider.com

projectName=
projectVersion=
projectToken=

productName=
productVersion=
productToken=

projectPerFolder=false
#projectPerFolderIncludes=
#projectPerFolderExcludes=

wss.connectionTimeoutMinutes=80

# Change the below URL to your WhiteSource server.
# Use the 'WhiteSource Server URL' which can be retrieved
# from your 'Profile' page on the 'Server URLs' panel.
# Then, add the '/agent' path to it.
wss.url=https://saas.whitesourcesoftware.com/agent
#wss.url=https://app.whitesourcesoftware.com/agent
#wss.url=https://app-eu.whitesourcesoftware.com/agent

############
# Policies #
############
checkPolicies=false
forceCheckAllDependencies=false
forceUpdate=false
forceUpdate.failBuildOnPolicyViolation=false
#updateInventory=false

###########
# General #
###########
#offline=true
#updateType=APPEND
#ignoreSourceFiles=true
#scanComment=
#failErrorLevel=ALL
#requireKnownSha1=false
log.files.level=Debug
log.level=debug

#generateProjectDetailsJson=true
#generateScanReport=true
#scanReportTimeoutMinutes=10
#scanReportFilenameFormat=

#analyzeFrameworks=true
#analyzeFrameworksReference=

#updateEmptyProject=false

########################################
# Package Manager Dependency resolvers #
########################################
resolveAllDependencies=true
#excludeDependenciesFromNodes=.*commons-io.*,.*maven-model

#npm.resolveDependencies=false
#npm.ignoreSourceFiles=false
#npm.includeDevDependencies=true
#npm.runPreStep=true
#npm.ignoreNpmLsErrors=true
#npm.ignoreScripts=true
#npm.yarnProject=true
#npm.accessToken=
npm.identifyByNameAndVersion=true
#npm.yarn.frozenLockfile=true
#npm.resolveMainPackageJsonOnly=true
#npm.removeDuplicateDependencies=false
#npm.resolveAdditionalDependencies=true

#bower.resolveDependencies=false
#bower.ignoreSourceFiles=true
#bower.runPreStep=true

#nuget.resolvePackagesConfigFiles=false
#nuget.resolveCsProjFiles=false
#nuget.resolveDependencies=false
#nuget.restoreDependencies=true
#nuget.preferredEnvironment=
#nuget.packagesDirectory=
#nuget.ignoreSourceFiles=false
#nuget.runPreStep=true
#nuget.resolveNuspecFiles=false

#python.resolveDependencies=false
#python.ignoreSourceFiles=false
#python.ignorePipInstallErrors=true
#python.installVirtualenv=true
#python.resolveHierarchyTree=false
#python.requirementsFileIncludes=requirements.txt
#python.resolveSetupPyFiles=true
#python.runPipenvPreStep=true
#python.pipenvDevDependencies=true
#python.IgnorePipenvInstallErrors=true

#maven.ignoredScopes=test provided
maven.resolveDependencies=true
#maven.ignoreSourceFiles=true
maven.aggregateModules=true
#maven.ignorePomModules=false
maven.runPreStep=false
maven.ignoreMvnTreeErrors=true
maven.environmentPath=/w/tools/hudson.tasks.Maven_MavenInstallation/mvn36/bin/
maven.m2RepositoryPath=/home/jenkins/
#maven.downloadMissingDependencies=false
maven.additionalArguments=-s=global-settings.xml

#gradle.ignoredScopes=
#gradle.resolveDependencies=false
#gradle.runAssembleCommand=false
#gradle.runPreStep=true
#gradle.ignoreSourceFiles=true
#gradle.aggregateModules=true
#gradle.preferredEnvironment=wrapper
#gradle.localRepositoryPath=
#gradle.wrapperPath=
#gradle.downloadMissingDependencies=false
#gradle.additionalArguments=
#gradle.includedScopes=

#paket.resolveDependencies=false
#paket.ignoredGroups=
#paket.ignoreSourceFiles=false
#paket.runPreStep=true
#paket.exePath=

#go.resolveDependencies=false
#go.collectDependenciesAtRuntime=true
#go.dependencyManager=
#go.ignoreSourceFiles=true
#go.glide.ignoreTestPackages=false
#go.gogradle.enableTaskAlias=true

#ruby.resolveDependencies=false
#ruby.ignoreSourceFiles=false
#ruby.installMissingGems=true
#ruby.runBundleInstall=true
#ruby.overwriteGemFile=true

#sbt.resolveDependencies=false
#sbt.ignoreSourceFiles=true
#sbt.aggregateModules=true
#sbt.runPreStep=true
#sbt.targetFolder=

#php.resolveDependencies=false
#php.runPreStep=true
#php.includeDevDependencies=true

#html.resolveDependencies=false

#cocoapods.resolveDependencies=false
#cocoapods.runPreStep=true
#cocoapods.ignoreSourceFiles=false

#hex.resolveDependencies=false
#hex.runPreStep=true
#hex.ignoreSourceFiles=false
#hex.aggregateModules=true

#ant.resolveDependencies=false
#ant.pathIdIncludes=.*
#ant.external.parameters=

#r.resolveDependencies=false
#r.runPreStep=true
#r.ignoreSourceFiles=false
#r.cranMirrorUrl=

#cargo.resolveDependencies=false
#cargo.runPreStep=true
#cargo.ignoreSourceFiles=false

###########################################################################################
# Includes/Excludes Glob patterns - Please use only one exclude line and one include line #
###########################################################################################
includes=**/*.c **/*.java **/*.cc **/*.cp **/*.cpp **/*.cxx **/*.c++ **/*.h **/*.hpp **/*.hxx **/*.go **/*.py **/*.js **/*.jar **/*.tgz **/*.deb **/*.gzip **/*.rpm **/*.tar.bz2 **/*.zip **/*.tar.gz **/*.egg **/*.whl

#includes=**/*.m **/*.mm  **/*.js **/*.php
#includes=**/*.jar
#includes=**/*.gem **/*.rb
#includes=**/*.dll **/*.cs **/*.nupkg
#includes=**/*.tgz **/*.deb **/*.gzip **/*.rpm **/*.tar.bz2
#includes=**/*.zip **/*.tar.gz **/*.egg **/*.whl **/*.py

#Exclude file extensions or specific directories by adding **/*.<extension> or **/<excluded_dir>/**
excludes=**/*sources.jar **/*javadoc.jar

case.sensitive.glob=false
followSymbolicLinks=true

######################
# Archive properties #
######################
#archiveExtractionDepth=4
#archiveIncludes=**/*.war **/*.ear
#archiveExcludes=**/*sources.jar

##############
# SCAN MODES #
##############

# Docker images
################
#docker.scanImages=true
#docker.includes=.*.*
#docker.excludes=
#docker.pull.enable=true
#docker.pull.images=.*.*
#docker.pull.maxImages=10
#docker.pull.tags=.*.*
#docker.pull.digest=
#docker.delete.force=true
#docker.login.sudo=false
#docker.projectNameFormat=default

#docker.aws.enable=true
#docker.aws.registryIds=

#docker.azure.enable=true
#docker.azure.userName=
#docker.azure.userPassword=
#docker.azure.registryNames=

#docker.artifactory.enable=true
#docker.artifactory.url=
#docker.artifactory.userName=
#docker.artifactory.userPassword=
#docker.artifactory.repositoriesNames=
#docker.artifactory.dockerAccessMethod=

#docker.hub.enabled=true
#docker.hub.userName=
#docker.hub.userPassword=
#docker.hub.organizationsNames=

# Docker containers
####################
#docker.scanContainers=true
#docker.containerIncludes=.*.*
#docker.containerExcludes=

# Linux package manager settings
################################
#scanPackageManager=true

# Serverless settings
######################
#serverless.provider=
#serverless.scanFunctions=true
#serverless.includes=
#serverless.excludes=
#serverless.region=
#serverless.maxFunctions=10

# Artifactory settings
########################
#artifactory.enableScan=true
#artifactory.url=
#artifactory.accessToken=
#artifactory.repoKeys=
#artifactory.userName=
#artifactory.userPassword=

##################
# Proxy settings #
##################
#proxy.host=
#proxy.port=
#proxy.user=
#proxy.pass=

################
# SCM settings #
################
#scm.type=
#scm.user=
#scm.pass=
#scm.ppk=
#scm.url=
#scm.branch=
#scm.tag=
#scm.npmInstall=
#scm.npmInstallTimeoutMinutes=
#scm.repositoriesFile=
