Skip to content

Commit a287545

Browse files
committed
fixed some lint stuff
1 parent ec60ee9 commit a287545

1 file changed

Lines changed: 32 additions & 27 deletions

File tree

  • vulnfeeds/cmd/converters/dsa-dla-dtsa

vulnfeeds/cmd/converters/dsa-dla-dtsa/main.go

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ func parseWebwmlFiles(advisories Advisories, webwmlRepoPath, wmlFileSubPath stri
369369
}
370370

371371
func generateVulnerabilities(advisories Advisories) ([]*osvschema.Vulnerability, error) {
372-
var vulnerabilities []*osvschema.Vulnerability
372+
vulnerabilities := make([]*osvschema.Vulnerability, 0, len(advisories))
373373
for dsaID, advisory := range advisories {
374374
if len(advisory.Affected) == 0 {
375375
slog.Info("Skipping because no affected versions", "dsaID", dsaID)
@@ -420,6 +420,7 @@ func generateVulnerabilities(advisories Advisories) ([]*osvschema.Vulnerability,
420420

421421
vulnerabilities = append(vulnerabilities, osv)
422422
}
423+
423424
return vulnerabilities, nil
424425
}
425426

@@ -454,10 +455,11 @@ func convertDebian(webwmlRepo, securityTrackerRepo string, advType AdvisoryType)
454455

455456
func cloneRepo(url, dest string) error {
456457
slog.Info("Cloning repository", "url", url, "dest", dest)
457-
//nolint:gosec // url and dest are safe
458+
458459
cmd := exec.Command("git", "clone", "--quiet", url, dest, "--depth=1")
459460
cmd.Stdout = os.Stdout
460461
cmd.Stderr = os.Stderr
462+
461463
return cmd.Run()
462464
}
463465

@@ -477,32 +479,35 @@ func main() {
477479
os.Exit(1)
478480
}
479481

480-
if *webwmlRepo == "" {
482+
if err := run(*webwmlRepo, *securityTrackerRepo, *outputDir, *outputBucket, *uploadToGCS, *doDeletions, *numWorkers); err != nil {
483+
slog.Error("Execution failed", "err", err)
484+
os.Exit(1)
485+
}
486+
}
487+
488+
func run(webwmlRepo, securityTrackerRepo, outputDir, outputBucket string, uploadToGCS, doDeletions bool, numWorkers int) error {
489+
if webwmlRepo == "" {
481490
tempDir, err := os.MkdirTemp("", "webwml-*")
482491
if err != nil {
483-
slog.Error("Failed to create temp dir for webwml", "err", err)
484-
os.Exit(1)
492+
return fmt.Errorf("failed to create temp dir for webwml: %w", err)
485493
}
486494
defer os.RemoveAll(tempDir)
487495
if err := cloneRepo("https://salsa.debian.org/webmaster-team/webwml.git", tempDir); err != nil {
488-
slog.Error("Failed to clone webwml", "err", err)
489-
os.Exit(1)
496+
return fmt.Errorf("failed to clone webwml: %w", err)
490497
}
491-
*webwmlRepo = tempDir
498+
webwmlRepo = tempDir
492499
}
493500

494-
if *securityTrackerRepo == "" {
501+
if securityTrackerRepo == "" {
495502
tempDir, err := os.MkdirTemp("", "security-tracker-*")
496503
if err != nil {
497-
slog.Error("Failed to create temp dir for security-tracker", "err", err)
498-
os.Exit(1)
504+
return fmt.Errorf("failed to create temp dir for security-tracker: %w", err)
499505
}
500506
defer os.RemoveAll(tempDir)
501507
if err := cloneRepo("https://salsa.debian.org/security-tracker-team/security-tracker.git", tempDir); err != nil {
502-
slog.Error("Failed to clone security-tracker", "err", err)
503-
os.Exit(1)
508+
return fmt.Errorf("failed to clone security-tracker: %w", err)
504509
}
505-
*securityTrackerRepo = tempDir
510+
securityTrackerRepo = tempDir
506511
}
507512

508513
advisoryTypes := []AdvisoryType{AdvisoryTypeDSA, AdvisoryTypeDLA, AdvisoryTypeDTSA}
@@ -511,44 +516,44 @@ func main() {
511516
for _, advType := range advisoryTypes {
512517
slog.Info("Converting advisories", "type", advType)
513518

514-
vulns, err := convertDebian(*webwmlRepo, *securityTrackerRepo, advType)
519+
vulns, err := convertDebian(webwmlRepo, securityTrackerRepo, advType)
515520
if err != nil {
516-
slog.Error("Error converting", "type", advType, "err", err)
517-
os.Exit(1)
521+
return fmt.Errorf("error converting type %s: %w", advType, err)
518522
}
519523

520524
allVulnerabilities = append(allVulnerabilities, vulns...)
521525

522-
if !*uploadToGCS {
523-
advOutputDir := filepath.Join(*outputDir, strings.ToLower(string(advType)))
526+
if !uploadToGCS {
527+
advOutputDir := filepath.Join(outputDir, strings.ToLower(string(advType)))
524528
if err := os.MkdirAll(advOutputDir, 0755); err != nil {
525-
slog.Error("Failed to create output dir", "dir", advOutputDir, "err", err)
526-
os.Exit(1)
529+
return fmt.Errorf("failed to create output dir %s: %w", advOutputDir, err)
527530
}
528531

529532
for _, vuln := range vulns {
530533
b, err := marshaler.Marshal(vuln)
531534
if err != nil {
532-
slog.Error("Failed to marshal vulnerability", "id", vuln.Id, "err", err)
535+
slog.Error("Failed to marshal vulnerability", "id", vuln.GetId(), "err", err)
533536
continue
534537
}
535538

536-
outPath := filepath.Join(advOutputDir, vuln.Id+".json")
539+
outPath := filepath.Join(advOutputDir, vuln.GetId()+".json")
537540
//nolint:gosec // 0644 is fine for public vulnerability data
538541
if err := os.WriteFile(outPath, b, 0644); err != nil {
539-
slog.Error("Failed to write vulnerability", "id", vuln.Id, "err", err)
542+
slog.Error("Failed to write vulnerability", "id", vuln.GetId(), "err", err)
540543
continue
541544
}
542545
slog.Info("Writing", "path", outPath)
543546
}
544547
}
545548
}
546549

547-
if *uploadToGCS {
548-
slog.Info("Uploading to GCS", "bucket", *outputBucket)
550+
if uploadToGCS {
551+
slog.Info("Uploading to GCS", "bucket", outputBucket)
549552
ctx := context.Background()
550-
upload.Upload(ctx, "debian-osv", *uploadToGCS, *outputBucket, "", *numWorkers, *outputDir, allVulnerabilities, *doDeletions)
553+
upload.Upload(ctx, "debian-osv", uploadToGCS, outputBucket, "", numWorkers, outputDir, allVulnerabilities, doDeletions)
551554
} else {
552555
slog.Info("Skipping GCS upload")
553556
}
557+
558+
return nil
554559
}

0 commit comments

Comments
 (0)