Merge pull request #8 from saitho/feature/branch-configuration

Pass branch name to Sonar
This commit is contained in:
Rogan 2019-11-21 18:54:26 +08:00 committed by GitHub
commit 8738de3efa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 20 deletions

View File

@ -60,6 +60,7 @@ Safety first, the host and token are stored in Drone Secrets.
* DEBUG: Display INFO logs + more details at DEBUG level.
* TRACE: Display DEBUG logs + the timings of all ElasticSearch queries and Web API calls executed by the SonarQube Scanner.
* `showProfiling`: Display logs to see where the analyzer spends time. Default value `false`
* `branchAnalysis`: Pass currently analysed branch to SonarQube. (Must not be active for initial scan!) Default value `false`
# Notes

Binary file not shown.

26
main.go
View File

@ -43,6 +43,11 @@ func main() {
Usage: "Project version",
EnvVar: "DRONE_BUILD_NUMBER",
},
cli.StringFlag{
Name: "branch",
Usage: "Project branch",
EnvVar: "DRONE_BRANCH",
},
cli.StringFlag{
Name: "timeout",
Usage: "Web request timeout",
@ -77,6 +82,11 @@ func main() {
Value: "false",
EnvVar: "PLUGIN_SHOWPROFILING",
},
cli.BoolFlag{
Name: "branchAnalysis",
Usage: "execute branchAnalysis",
EnvVar: "PLUGIN_BRANCHANALYSIS",
},
}
app.Run(os.Args)
@ -90,13 +100,15 @@ func run(c *cli.Context) {
Host: c.String("host"),
Token: c.String("token"),
Version: c.String("ver"),
Timeout: c.String("timeout"),
Sources: c.String("sources"),
Inclusions: c.String("inclusions"),
Exclusions: c.String("exclusions"),
Level: c.String("level"),
showProfiling: c.String("showProfiling"),
Version: c.String("ver"),
Branch: c.String("branch"),
Timeout: c.String("timeout"),
Sources: c.String("sources"),
Inclusions: c.String("inclusions"),
Exclusions: c.String("exclusions"),
Level: c.String("level"),
showProfiling: c.String("showProfiling"),
branchAnalysis: c.Bool("branchAnalysis"),
},
}

View File

@ -1,25 +1,27 @@
package main
import (
"strings"
"fmt"
"os/exec"
"strings"
)
type (
Config struct {
Key string
Name string
Host string
Token string
Key string
Name string
Host string
Token string
Version string
Sources string
Timeout string
Inclusions string
Exclusions string
Level string
showProfiling string
Version string
Branch string
Sources string
Timeout string
Inclusions string
Exclusions string
Level string
showProfiling string
branchAnalysis bool
}
Plugin struct {
Config Config
@ -41,8 +43,12 @@ func (p Plugin) Exec() error {
"-Dsonar.log.level=" + p.Config.Level,
"-Dsonar.showProfiling=" + p.Config.showProfiling,
"-Dsonar.scm.provider=git",
}
if p.Config.branchAnalysis {
args = append(args, "-Dsonar.branch.name="+p.Config.Branch)
}
cmd := exec.Command("sonar-scanner", args...)
// fmt.Printf("==> Executing: %s\n", strings.Join(cmd.Args, " "))
output, err := cmd.CombinedOutput()