2020-03-23 11:38:31 +02:00
// Code generated by piper's step-generator. DO NOT EDIT.
package cmd
import (
"fmt"
"os"
2020-05-14 13:46:40 +02:00
"path/filepath"
2020-03-23 11:38:31 +02:00
"time"
"github.com/SAP/jenkins-library/pkg/config"
"github.com/SAP/jenkins-library/pkg/log"
2020-05-14 13:46:40 +02:00
"github.com/SAP/jenkins-library/pkg/piperenv"
2021-05-17 12:14:04 +02:00
"github.com/SAP/jenkins-library/pkg/splunk"
2020-03-23 11:38:31 +02:00
"github.com/SAP/jenkins-library/pkg/telemetry"
"github.com/spf13/cobra"
)
type sonarExecuteScanOptions struct {
2020-04-08 12:55:46 +02:00
Instance string ` json:"instance,omitempty" `
2020-10-01 11:45:14 +02:00
ServerURL string ` json:"serverUrl,omitempty" `
2020-04-08 12:55:46 +02:00
Token string ` json:"token,omitempty" `
Organization string ` json:"organization,omitempty" `
2020-07-27 15:01:30 +02:00
CustomTLSCertificateLinks [ ] string ` json:"customTlsCertificateLinks,omitempty" `
2020-04-08 12:55:46 +02:00
SonarScannerDownloadURL string ` json:"sonarScannerDownloadUrl,omitempty" `
2021-05-05 09:02:19 +02:00
VersioningModel string ` json:"versioningModel,omitempty" `
Version string ` json:"version,omitempty" `
CustomScanVersion string ` json:"customScanVersion,omitempty" `
2020-09-11 13:39:17 +02:00
ProjectKey string ` json:"projectKey,omitempty" `
CoverageExclusions [ ] string ` json:"coverageExclusions,omitempty" `
InferJavaBinaries bool ` json:"inferJavaBinaries,omitempty" `
InferJavaLibraries bool ` json:"inferJavaLibraries,omitempty" `
2020-04-08 12:55:46 +02:00
Options [ ] string ` json:"options,omitempty" `
BranchName string ` json:"branchName,omitempty" `
2020-09-11 13:39:17 +02:00
InferBranchName bool ` json:"inferBranchName,omitempty" `
2020-04-08 12:55:46 +02:00
ChangeID string ` json:"changeId,omitempty" `
ChangeBranch string ` json:"changeBranch,omitempty" `
ChangeTarget string ` json:"changeTarget,omitempty" `
PullRequestProvider string ` json:"pullRequestProvider,omitempty" `
Owner string ` json:"owner,omitempty" `
Repository string ` json:"repository,omitempty" `
GithubToken string ` json:"githubToken,omitempty" `
DisableInlineComments bool ` json:"disableInlineComments,omitempty" `
LegacyPRHandling bool ` json:"legacyPRHandling,omitempty" `
GithubAPIURL string ` json:"githubApiUrl,omitempty" `
2020-09-11 13:39:17 +02:00
M2Path string ` json:"m2Path,omitempty" `
2020-03-23 11:38:31 +02:00
}
2020-05-14 13:46:40 +02:00
type sonarExecuteScanInflux struct {
step_data struct {
fields struct {
2020-10-13 16:37:48 +02:00
sonar bool
2020-05-14 13:46:40 +02:00
}
tags struct {
}
}
2021-02-24 16:44:23 +02:00
sonarqube_data struct {
fields struct {
blocker_issues int
critical_issues int
major_issues int
minor_issues int
info_issues int
}
tags struct {
}
}
2020-05-14 13:46:40 +02:00
}
func ( i * sonarExecuteScanInflux ) persist ( path , resourceName string ) {
measurementContent := [ ] struct {
measurement string
valType string
name string
2020-10-05 15:33:28 +02:00
value interface { }
2020-05-14 13:46:40 +02:00
} {
{ valType : config . InfluxField , measurement : "step_data" , name : "sonar" , value : i . step_data . fields . sonar } ,
2021-02-24 16:44:23 +02:00
{ valType : config . InfluxField , measurement : "sonarqube_data" , name : "blocker_issues" , value : i . sonarqube_data . fields . blocker_issues } ,
{ valType : config . InfluxField , measurement : "sonarqube_data" , name : "critical_issues" , value : i . sonarqube_data . fields . critical_issues } ,
{ valType : config . InfluxField , measurement : "sonarqube_data" , name : "major_issues" , value : i . sonarqube_data . fields . major_issues } ,
{ valType : config . InfluxField , measurement : "sonarqube_data" , name : "minor_issues" , value : i . sonarqube_data . fields . minor_issues } ,
{ valType : config . InfluxField , measurement : "sonarqube_data" , name : "info_issues" , value : i . sonarqube_data . fields . info_issues } ,
2020-05-14 13:46:40 +02:00
}
errCount := 0
for _ , metric := range measurementContent {
err := piperenv . SetResourceParameter ( path , resourceName , filepath . Join ( metric . measurement , fmt . Sprintf ( "%vs" , metric . valType ) , metric . name ) , metric . value )
if err != nil {
log . Entry ( ) . WithError ( err ) . Error ( "Error persisting influx environment." )
errCount ++
}
}
if errCount > 0 {
log . Entry ( ) . Fatal ( "failed to persist Influx environment" )
}
}
2020-03-23 11:38:31 +02:00
// SonarExecuteScanCommand Executes the Sonar scanner
func SonarExecuteScanCommand ( ) * cobra . Command {
2020-04-28 07:42:02 +02:00
const STEP_NAME = "sonarExecuteScan"
2020-03-23 11:38:31 +02:00
metadata := sonarExecuteScanMetadata ( )
var stepConfig sonarExecuteScanOptions
var startTime time . Time
2020-05-14 13:46:40 +02:00
var influx sonarExecuteScanInflux
2021-05-17 12:14:04 +02:00
var logCollector * log . CollectorHook
2020-03-23 11:38:31 +02:00
var createSonarExecuteScanCmd = & cobra . Command {
2020-04-28 07:42:02 +02:00
Use : STEP_NAME ,
2020-03-23 11:38:31 +02:00
Short : "Executes the Sonar scanner" ,
Long : ` The step executes the [sonar-scanner](https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner) cli command to scan the defined sources and publish the results to a SonarQube instance. ` ,
2020-06-23 18:05:21 +02:00
PreRunE : func ( cmd * cobra . Command , _ [ ] string ) error {
2020-03-23 11:38:31 +02:00
startTime = time . Now ( )
2020-04-28 07:42:02 +02:00
log . SetStepName ( STEP_NAME )
2020-03-23 11:38:31 +02:00
log . SetVerbose ( GeneralConfig . Verbose )
2020-04-28 07:42:02 +02:00
path , _ := os . Getwd ( )
fatalHook := & log . FatalHook { CorrelationID : GeneralConfig . CorrelationID , Path : path }
log . RegisterHook ( fatalHook )
err := PrepareConfig ( cmd , & metadata , STEP_NAME , & stepConfig , config . OpenPiperFile )
2020-04-16 14:37:45 +02:00
if err != nil {
2020-06-24 10:04:05 +02:00
log . SetErrorCategory ( log . ErrorConfiguration )
2020-04-16 14:37:45 +02:00
return err
}
log . RegisterSecret ( stepConfig . Token )
log . RegisterSecret ( stepConfig . GithubToken )
2020-05-05 08:36:24 +02:00
if len ( GeneralConfig . HookConfig . SentryConfig . Dsn ) > 0 {
sentryHook := log . NewSentryHook ( GeneralConfig . HookConfig . SentryConfig . Dsn , GeneralConfig . CorrelationID )
log . RegisterHook ( & sentryHook )
}
2021-05-17 12:14:04 +02:00
if len ( GeneralConfig . HookConfig . SplunkConfig . Dsn ) > 0 {
logCollector = & log . CollectorHook { CorrelationID : GeneralConfig . CorrelationID }
log . RegisterHook ( logCollector )
}
2020-04-16 14:37:45 +02:00
return nil
2020-03-23 11:38:31 +02:00
} ,
2020-06-23 18:05:21 +02:00
Run : func ( _ * cobra . Command , _ [ ] string ) {
2020-03-23 11:38:31 +02:00
telemetryData := telemetry . CustomData { }
telemetryData . ErrorCode = "1"
handler := func ( ) {
2020-10-26 15:20:04 +02:00
config . RemoveVaultSecretFiles ( )
2020-05-14 13:46:40 +02:00
influx . persist ( GeneralConfig . EnvRootPath , "influx" )
2020-03-23 11:38:31 +02:00
telemetryData . Duration = fmt . Sprintf ( "%v" , time . Since ( startTime ) . Milliseconds ( ) )
2020-09-29 13:49:40 +02:00
telemetryData . ErrorCategory = log . GetErrorCategory ( ) . String ( )
2020-03-23 11:38:31 +02:00
telemetry . Send ( & telemetryData )
2021-05-17 12:14:04 +02:00
if len ( GeneralConfig . HookConfig . SplunkConfig . Dsn ) > 0 {
splunk . Send ( & telemetryData , logCollector )
}
2020-03-23 11:38:31 +02:00
}
log . DeferExitHandler ( handler )
defer handler ( )
2020-04-28 07:42:02 +02:00
telemetry . Initialize ( GeneralConfig . NoTelemetry , STEP_NAME )
2021-05-17 12:14:04 +02:00
if len ( GeneralConfig . HookConfig . SplunkConfig . Dsn ) > 0 {
splunk . Initialize ( GeneralConfig . CorrelationID ,
GeneralConfig . HookConfig . SplunkConfig . Dsn ,
GeneralConfig . HookConfig . SplunkConfig . Token ,
GeneralConfig . HookConfig . SplunkConfig . Index ,
GeneralConfig . HookConfig . SplunkConfig . SendLogs )
}
2020-05-14 13:46:40 +02:00
sonarExecuteScan ( stepConfig , & telemetryData , & influx )
2020-03-23 11:38:31 +02:00
telemetryData . ErrorCode = "0"
2020-05-18 21:52:54 +02:00
log . Entry ( ) . Info ( "SUCCESS" )
2020-03-23 11:38:31 +02:00
} ,
}
addSonarExecuteScanFlags ( createSonarExecuteScanCmd , & stepConfig )
return createSonarExecuteScanCmd
}
func addSonarExecuteScanFlags ( cmd * cobra . Command , stepConfig * sonarExecuteScanOptions ) {
2020-10-01 11:45:14 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . Instance , "instance" , ` SonarCloud ` , "Jenkins only: The name of the SonarQube instance defined in the Jenkins settings. DEPRECATED: use serverUrl parameter instead" )
cmd . Flags ( ) . StringVar ( & stepConfig . ServerURL , "serverUrl" , os . Getenv ( "PIPER_serverUrl" ) , "The URL to the Sonar backend." )
2020-03-23 11:38:31 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . Token , "token" , os . Getenv ( "PIPER_token" ) , "Token used to authenticate with the Sonar Server." )
cmd . Flags ( ) . StringVar ( & stepConfig . Organization , "organization" , os . Getenv ( "PIPER_organization" ) , "SonarCloud.io only: Organization that the project will be assigned to in SonarCloud.io." )
2020-07-27 15:01:30 +02:00
cmd . Flags ( ) . StringSliceVar ( & stepConfig . CustomTLSCertificateLinks , "customTlsCertificateLinks" , [ ] string { } , "List of download links to custom TLS certificates. This is required to ensure trusted connections to instances with custom certificates." )
2020-10-13 14:30:57 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . SonarScannerDownloadURL , "sonarScannerDownloadUrl" , ` https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.5.0.2216-linux.zip ` , "URL to the sonar-scanner-cli archive." )
2021-05-05 09:02:19 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . VersioningModel , "versioningModel" , ` major ` , "The versioning model used for the version when reporting the results for the project." )
cmd . Flags ( ) . StringVar ( & stepConfig . Version , "version" , os . Getenv ( "PIPER_version" ) , "The project version that is reported to SonarQube." )
cmd . Flags ( ) . StringVar ( & stepConfig . CustomScanVersion , "customScanVersion" , os . Getenv ( "PIPER_customScanVersion" ) , "A custom version used along with the uploaded scan results." )
2020-09-11 13:39:17 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . ProjectKey , "projectKey" , os . Getenv ( "PIPER_projectKey" ) , "The project key identifies the project in SonarQube." )
cmd . Flags ( ) . StringSliceVar ( & stepConfig . CoverageExclusions , "coverageExclusions" , [ ] string { } , "A list of patterns that should be excluded from the coverage scan." )
cmd . Flags ( ) . BoolVar ( & stepConfig . InferJavaBinaries , "inferJavaBinaries" , false , "Find the location of generated Java class files in all modules and pass the option `sonar.java.binaries to the sonar tool." )
cmd . Flags ( ) . BoolVar ( & stepConfig . InferJavaLibraries , "inferJavaLibraries" , false , "If the parameter `m2Path` is configured for the step `mavenExecute` in the general section of the configuration, pass it as option `sonar.java.libraries` to the sonar tool." )
2020-04-08 12:55:46 +02:00
cmd . Flags ( ) . StringSliceVar ( & stepConfig . Options , "options" , [ ] string { } , "A list of options which are passed to the sonar-scanner." )
2021-06-09 09:38:52 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . BranchName , "branchName" , os . Getenv ( "PIPER_branchName" ) , "Non-Pull-Request only: Name of the SonarQube branch that should be used to report findings to. Automatically inferred from environment variables on supported orchestrators if `inferBranchName` is set to true." )
cmd . Flags ( ) . BoolVar ( & stepConfig . InferBranchName , "inferBranchName" , false , "Whether to infer the `branchName` parameter automatically based on the orchestrator-specific environment variable in runs of the pipeline." )
cmd . Flags ( ) . StringVar ( & stepConfig . ChangeID , "changeId" , os . Getenv ( "PIPER_changeId" ) , "Pull-Request only: The id of the pull-request. Automatically inferred from environment variables on supported orchestrators." )
cmd . Flags ( ) . StringVar ( & stepConfig . ChangeBranch , "changeBranch" , os . Getenv ( "PIPER_changeBranch" ) , "Pull-Request only: The name of the pull-request branch. Automatically inferred from environment variables on supported orchestrators." )
cmd . Flags ( ) . StringVar ( & stepConfig . ChangeTarget , "changeTarget" , os . Getenv ( "PIPER_changeTarget" ) , "Pull-Request only: The name of the base branch. Automatically inferred from environment variables on supported orchestrators." )
2020-05-25 19:48:59 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . PullRequestProvider , "pullRequestProvider" , ` GitHub ` , "Pull-Request only: The scm provider." )
2020-03-23 11:38:31 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . Owner , "owner" , os . Getenv ( "PIPER_owner" ) , "Pull-Request only: The owner of the scm repository." )
cmd . Flags ( ) . StringVar ( & stepConfig . Repository , "repository" , os . Getenv ( "PIPER_repository" ) , "Pull-Request only: The scm repository." )
cmd . Flags ( ) . StringVar ( & stepConfig . GithubToken , "githubToken" , os . Getenv ( "PIPER_githubToken" ) , "Pull-Request only: Token for Github to set status on the Pull-Request." )
cmd . Flags ( ) . BoolVar ( & stepConfig . DisableInlineComments , "disableInlineComments" , false , "Pull-Request only: Disables the pull-request decoration with inline comments. DEPRECATED: only supported in SonarQube < 7.2" )
cmd . Flags ( ) . BoolVar ( & stepConfig . LegacyPRHandling , "legacyPRHandling" , false , "Pull-Request only: Activates the pull-request handling using the [GitHub Plugin](https://docs.sonarqube.org/display/PLUG/GitHub+Plugin). DEPRECATED: only supported in SonarQube < 7.2" )
2020-09-11 13:39:17 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . GithubAPIURL , "githubApiUrl" , ` https://api.github.com ` , "Pull-Request only: The URL to the Github API. See [GitHub plugin docs](https://docs.sonarqube.org/display/PLUG/GitHub+Plugin#GitHubPlugin-Usage) DEPRECATED: only supported in SonarQube < 7.2" )
cmd . Flags ( ) . StringVar ( & stepConfig . M2Path , "m2Path" , os . Getenv ( "PIPER_m2Path" ) , "Path to the location of the local repository that should be used." )
2020-03-23 11:38:31 +02:00
}
// retrieve step metadata
func sonarExecuteScanMetadata ( ) config . StepData {
var theMetaData = config . StepData {
Metadata : config . StepMetadata {
2020-11-20 09:13:59 +02:00
Name : "sonarExecuteScan" ,
Aliases : [ ] config . Alias { } ,
Description : "Executes the Sonar scanner" ,
2020-03-23 11:38:31 +02:00
} ,
Spec : config . StepSpec {
Inputs : config . StepInputs {
2021-06-16 08:43:30 +02:00
Secrets : [ ] config . StepSecrets {
{ Name : "sonarTokenCredentialsId" , Description : "Jenkins 'Secret text' credentials ID containing the token used to authenticate with the Sonar Server." , Type : "jenkins" } ,
{ Name : "githubTokenCredentialsId" , Description : "Jenkins 'Secret text' credentials ID containing the token used to authenticate with the Github Server." , Type : "jenkins" } ,
} ,
2020-03-23 11:38:31 +02:00
Parameters : [ ] config . StepParameters {
2020-04-08 12:55:46 +02:00
{
Name : "instance" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : ` SonarCloud ` ,
2020-04-08 12:55:46 +02:00
} ,
2020-03-23 11:38:31 +02:00
{
2020-10-01 11:45:14 +02:00
Name : "serverUrl" ,
2020-03-23 11:38:31 +02:00
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
2020-10-01 11:45:14 +02:00
Aliases : [ ] config . Alias { { Name : "host" } , { Name : "sonarServerUrl" } } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_serverUrl" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
2020-09-16 14:50:09 +02:00
Name : "token" ,
ResourceRef : [ ] config . ResourceReference {
2020-10-13 14:14:47 +02:00
{
Name : "" ,
Paths : [ ] string { "$(vaultPath)/sonar" , "$(vaultBasePath)/$(vaultPipelineName)/sonar" , "$(vaultBasePath)/GROUP-SECRETS/sonar" } ,
Type : "vaultSecret" ,
} ,
2020-09-16 14:50:09 +02:00
{
Name : "sonarTokenCredentialsId" ,
Type : "secret" ,
} ,
} ,
Scope : [ ] string { "PARAMETERS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { { Name : "sonarToken" } } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_token" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
Name : "organization" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_organization" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
Name : "customTlsCertificateLinks" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
2020-07-27 15:01:30 +02:00
Type : "[]string" ,
2020-03-23 11:38:31 +02:00
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : [ ] string { } ,
2020-03-23 11:38:31 +02:00
} ,
{
Name : "sonarScannerDownloadUrl" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : ` https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.5.0.2216-linux.zip ` ,
2020-03-23 11:38:31 +02:00
} ,
{
2021-05-05 09:02:19 +02:00
Name : "versioningModel" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "STAGES" , "STEPS" , "PARAMETERS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : ` major ` ,
2021-05-05 09:02:19 +02:00
} ,
{
Name : "version" ,
2020-09-16 14:50:09 +02:00
ResourceRef : [ ] config . ResourceReference {
{
Name : "commonPipelineEnvironment" ,
Param : "artifactVersion" ,
} ,
} ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
2021-05-05 09:02:19 +02:00
Aliases : [ ] config . Alias { { Name : "projectVersion" } } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_version" ) ,
2021-05-05 09:02:19 +02:00
} ,
{
Name : "customScanVersion" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "STAGES" , "STEPS" , "PARAMETERS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_customScanVersion" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
2020-09-11 13:39:17 +02:00
Name : "projectKey" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_projectKey" ) ,
2020-09-11 13:39:17 +02:00
} ,
{
Name : "coverageExclusions" ,
2020-03-23 11:38:31 +02:00
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
2020-04-08 12:55:46 +02:00
Type : "[]string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : [ ] string { } ,
2020-04-08 12:55:46 +02:00
} ,
2020-09-11 13:39:17 +02:00
{
Name : "inferJavaBinaries" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "bool" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : false ,
2020-09-11 13:39:17 +02:00
} ,
{
Name : "inferJavaLibraries" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "bool" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : false ,
2020-09-11 13:39:17 +02:00
} ,
{
Name : "options" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "[]string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { { Name : "sonarProperties" } } ,
2021-06-16 08:43:30 +02:00
Default : [ ] string { } ,
2020-09-11 13:39:17 +02:00
} ,
2020-04-08 12:55:46 +02:00
{
Name : "branchName" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
2020-03-23 11:38:31 +02:00
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_branchName" ) ,
2020-03-23 11:38:31 +02:00
} ,
2020-09-11 13:39:17 +02:00
{
Name : "inferBranchName" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "bool" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : false ,
2020-09-11 13:39:17 +02:00
} ,
2020-03-23 11:38:31 +02:00
{
Name : "changeId" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_changeId" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
Name : "changeBranch" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_changeBranch" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
Name : "changeTarget" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_changeTarget" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
Name : "pullRequestProvider" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : ` GitHub ` ,
2020-03-23 11:38:31 +02:00
} ,
{
2020-09-16 14:50:09 +02:00
Name : "owner" ,
ResourceRef : [ ] config . ResourceReference {
{
Name : "commonPipelineEnvironment" ,
Param : "github/owner" ,
} ,
} ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { { Name : "githubOrg" } } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_owner" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
2020-09-16 14:50:09 +02:00
Name : "repository" ,
ResourceRef : [ ] config . ResourceReference {
{
Name : "commonPipelineEnvironment" ,
Param : "github/repository" ,
} ,
} ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { { Name : "githubRepo" } } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_repository" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
2020-09-16 14:50:09 +02:00
Name : "githubToken" ,
ResourceRef : [ ] config . ResourceReference {
{
Name : "githubTokenCredentialsId" ,
Type : "secret" ,
} ,
2020-12-22 18:57:11 +02:00
{
Name : "" ,
Paths : [ ] string { "$(vaultPath)/github" , "$(vaultBasePath)/$(vaultPipelineName)/github" , "$(vaultBasePath)/GROUP-SECRETS/github" } ,
Type : "vaultSecret" ,
} ,
2020-09-16 14:50:09 +02:00
} ,
Scope : [ ] string { "PARAMETERS" } ,
Type : "string" ,
Mandatory : false ,
2021-01-27 13:58:47 +02:00
Aliases : [ ] config . Alias { { Name : "access_token" } } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_githubToken" ) ,
2020-03-23 11:38:31 +02:00
} ,
{
Name : "disableInlineComments" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "bool" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : false ,
2020-03-23 11:38:31 +02:00
} ,
{
Name : "legacyPRHandling" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "bool" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : false ,
2020-03-23 11:38:31 +02:00
} ,
{
Name : "githubApiUrl" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : ` https://api.github.com ` ,
2020-03-23 11:38:31 +02:00
} ,
2020-09-11 13:39:17 +02:00
{
Name : "m2Path" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "STEPS" , "STAGES" , "PARAMETERS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { { Name : "maven/m2Path" } } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_m2Path" ) ,
2020-09-11 13:39:17 +02:00
} ,
2020-03-23 11:38:31 +02:00
} ,
} ,
2020-11-20 09:13:59 +02:00
Containers : [ ] config . Container {
{ Name : "sonar" , Image : "sonarsource/sonar-scanner-cli:4.5" } ,
} ,
Outputs : config . StepOutputs {
Resources : [ ] config . StepResources {
{
Name : "influx" ,
Type : "influx" ,
Parameters : [ ] map [ string ] interface { } {
{ "Name" : "step_data" } , { "fields" : [ ] map [ string ] string { { "name" : "sonar" } } } ,
2021-02-24 16:44:23 +02:00
{ "Name" : "sonarqube_data" } , { "fields" : [ ] map [ string ] string { { "name" : "blocker_issues" } , { "name" : "critical_issues" } , { "name" : "major_issues" } , { "name" : "minor_issues" } , { "name" : "info_issues" } } } ,
2020-11-20 09:13:59 +02:00
} ,
} ,
} ,
} ,
2020-03-23 11:38:31 +02:00
} ,
}
return theMetaData
}