Skip to content

Commit 64aabd8

Browse files
marcorosamarcushollGooglom
authored
fix(credentialdiggerScan): get_discoveries and docker image (#4613)
* Improve logs of credentialdiggerScan step * 'Restore step' * Use dockerhub image for Credential Digger * Regenerate credentialdiggerScan * Update docker image tag * Fix report generation with exportAll * Update docker image for credentialdiggerScan * Regenerate credentialdiggerScan step with new docker image * Dont duplicate step name with log.Entry() * Refactor RepoURL according to #4639 --------- Co-authored-by: Marcus Holl <[email protected]> Co-authored-by: Googlom <[email protected]>
1 parent 4a4c13f commit 64aabd8

File tree

3 files changed

+27
-16
lines changed

3 files changed

+27
-16
lines changed

cmd/credentialdiggerScan.go

+25-14
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,19 @@ func credentialdiggerScan(config credentialdiggerScanOptions, telemetryData *tel
4545
provider, prov_err := orchestrator.GetOrchestratorConfigProvider(nil)
4646
if prov_err != nil {
4747
log.Entry().WithError(prov_err).Error(
48-
"credentialdiggerScan: unable to load orchestrator specific configuration.")
48+
"Unable to load orchestrator specific configuration.")
4949
}
5050
if config.Repository == "" {
5151
// Get current repository from orchestrator
52+
log.Entry().Debug("Repository URL not defined in step configuration. Try get it from orchestrators")
5253
repoUrlOrchestrator := provider.RepoURL()
5354
if repoUrlOrchestrator == "n/a" {
5455
// Jenkins configuration error
55-
log.Entry().WithError(errors.New(
56-
fmt.Sprintf("Unknown repository URL %s", repoUrlOrchestrator))).Error(
56+
configError := errors.New(fmt.Sprintf("Unknown repository URL %s", repoUrlOrchestrator))
57+
log.Entry().WithError(configError).Error(
5758
"Repository URL n/a. Please verify git plugin is installed.")
59+
// The repository to scan was not identified. Return an error
60+
return configError
5861
}
5962
config.Repository = repoUrlOrchestrator
6063
log.Entry().Debug("Use current repository: ", repoUrlOrchestrator)
@@ -69,7 +72,7 @@ func credentialdiggerScan(config credentialdiggerScanOptions, telemetryData *tel
6972
log.Entry().Info("Load rules")
7073
err := credentialdiggerAddRules(&config, telemetryData, utils)
7174
if err != nil {
72-
log.Entry().Error("credentialdiggerScan: Failed running credentialdigger add_rules")
75+
log.Entry().Error("Failed running credentialdigger add_rules")
7376
return err
7477
}
7578
log.Entry().Info("Rules added")
@@ -93,17 +96,21 @@ func credentialdiggerScan(config credentialdiggerScanOptions, telemetryData *tel
9396
}
9497
// err is an error exit number when there are findings
9598
if err == nil {
96-
log.Entry().Info("No discoveries found in this repo")
97-
// If there are no findings, there is no need to export an empty report
98-
return nil
99+
log.Entry().Info("No leaks found in this repo with scan")
100+
// Even if there are no leaks, the user may still want to export all
101+
// the discoveries (param exportAll set to true)
99102
}
100103

101104
// 3: Get discoveries
102105
err = credentialdiggerGetDiscoveries(&config, telemetryData, utils)
103106
if err != nil {
104-
// The exit number is the number of discoveries
107+
// The exit number is the number of discoveries exported
105108
// Therefore, this error is not relevant, if raised
106109
log.Entry().Warn("There are findings to review")
110+
} else {
111+
// There are no discoveries exported, so no need to generate the
112+
// artifact
113+
return nil
107114
}
108115

109116
// 4: Export report in workspace
@@ -149,7 +156,8 @@ func credentialdiggerAddRules(config *credentialdiggerScanOptions, telemetryData
149156
log.Entry().Debug("Use a local ruleset")
150157
// Use rules defined in stashed file
151158
if hasRulesFile(config.RulesFile, service) {
152-
log.Entry().WithField("file", config.RulesFile).Info("Use stashed rules file from repository")
159+
log.Entry().WithField("file", config.RulesFile).Info(
160+
"Use stashed rules file from repository")
153161
ruleFile = config.RulesFile
154162
} else {
155163
log.Entry().Info("Use standard pre-defined rules")
@@ -167,14 +175,15 @@ func credentialdiggerGetDiscoveries(config *credentialdiggerScanOptions, telemet
167175
// Export all the discoveries or export only new ones
168176
if !config.ExportAll {
169177
cmd_list = append(cmd_list, "--state", "new")
178+
} else {
179+
log.Entry().Info("Export all discoveries")
170180
}
171181
err := executeCredentialDiggerProcess(service, cmd_list)
172182
if err != nil {
173-
log.Entry().Error("credentialdiggerScan: Failed running credentialdigger get_discoveries")
174-
log.Entry().Error(err)
183+
log.Entry().Warn("Report generated")
175184
return err
176185
}
177-
log.Entry().Info("Scan complete")
186+
log.Entry().Info("Scan complete with no potential leaks")
178187
return nil
179188
}
180189

@@ -203,7 +212,8 @@ func credentialdiggerBuildCommonArgs(config *credentialdiggerScanOptions) []stri
203212
}
204213

205214
func credentialdiggerScanSnapshot(config *credentialdiggerScanOptions, telemetryData *telemetry.CustomData, service credentialdiggerUtils) error {
206-
log.Entry().Infof("Scan Snapshot %v from repo %v", config.Snapshot, config.Repository)
215+
log.Entry().Infof(
216+
"Scan Snapshot %v from repo %v", config.Snapshot, config.Repository)
207217
cmd_list := []string{"scan_snapshot",
208218
"--snapshot", config.Snapshot}
209219
cmd_list = append(cmd_list, credentialdiggerBuildCommonArgs(config)...)
@@ -218,7 +228,8 @@ func credentialdiggerScanSnapshot(config *credentialdiggerScanOptions, telemetry
218228
}
219229

220230
func credentialdiggerScanPR(config *credentialdiggerScanOptions, telemetryData *telemetry.CustomData, service credentialdiggerUtils) error {
221-
log.Entry().Infof("Scan PR %v from repo %v", config.PrNumber, config.Repository)
231+
log.Entry().Infof(
232+
"Scan PR %v from repo %v", config.PrNumber, config.Repository)
222233
cmd_list := []string{"scan_pr",
223234
"--pr", strconv.Itoa(config.PrNumber),
224235
"--api_endpoint", config.APIURL}

cmd/credentialdiggerScan_generated.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/metadata/credentialdiggerScan.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,4 @@ spec:
121121
- filePattern: "**/report*.csv"
122122
type: credentialdigger-report
123123
containers:
124-
- image: "credentialdigger.int.repositories.cloud.sap/credential_digger:4.9.2"
124+
- image: saposs/credentialdigger:4.14.0

0 commit comments

Comments
 (0)