Skip to content

Commit

Permalink
Add comments
Browse files Browse the repository at this point in the history
  • Loading branch information
EyalDelarea committed Aug 29, 2024
1 parent 63f8125 commit 72c802c
Showing 1 changed file with 27 additions and 20 deletions.
47 changes: 27 additions & 20 deletions general/summary/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,11 @@ func GenerateSummaryMarkdown(c *cli.Context) error {
return saveMarkdownToFileSystem(finalMarkdown)
}

// The CLI generates summaries in sections, with each section as a separate Markdown file.
// This function merges all sections into a single Markdown file and saves it in the root of the
// command summary output directory.
func combineMarkdownFiles() (string, error) {
var combinedMarkdown strings.Builder
// Read each section content and append it to the final Markdown
for _, section := range markdownSections {
sectionContent, err := getSectionMarkdownContent(section)
if err != nil {
Expand Down Expand Up @@ -122,6 +124,7 @@ func getSectionMarkdownContent(section MarkdownSection) (string, error) {
return string(contentBytes), nil
}

// Initiate the desired command summary implementation and invoke its Markdown generation.
func invokeSectionMarkdownGeneration(section MarkdownSection) error {
switch section {
case Security:
Expand Down Expand Up @@ -154,29 +157,45 @@ func generateBuildInfoMarkdown() error {
return buildInfoSummary.GenerateMarkdown()
}

func generateUploadMarkdown() error {
if should, err := shouldGenerateUploadSummary(); err != nil || !should {
log.Debug("Skipping upload summary generation due build-info data to avoid duplications...")
return err
}
uploadSummary, err := commandsummary.NewUploadSummary()
if err != nil {
return fmt.Errorf("error generating upload markdown: %w", err)
}
return uploadSummary.GenerateMarkdown()
}

// mapScanResults maps the scan results saved during runtime into scan components.
func mapScanResults(commandSummary *commandsummary.CommandSummary) (err error) {
// Gets the saved scan results file paths.
indexedFiles, err := commandSummary.GetIndexedDataFilesPaths()
if err != nil {
return err
}
scanResultsMap := make(map[string]commandsummary.ScanResult)
securityJobSummary := &securityUtils.SecurityJobSummary{}
// Init scan result map
scanResultsMap := make(map[string]commandsummary.ScanResult)
// Set default not scanned component view
scanResultsMap[commandsummary.NonScannedResult] = securityJobSummary.GetNonScannedResult()
commandsummary.StaticMarkdownConfig.SetScanResultsMapping(scanResultsMap)
// Process each scan result file by its type and append to map
for index, keyValue := range indexedFiles {
for scannedName, filePath := range keyValue {
scanResultsMap, err = processScan(index, filePath, scannedName, securityJobSummary, scanResultsMap)
for scannedEntityName, scanResultDataFilePath := range keyValue {
scanResultsMap, err = processScan(index, scanResultDataFilePath, scannedEntityName, securityJobSummary, scanResultsMap)
if err != nil {
return
}
}
}
// Sets default non-scanned output
scanResultsMap[commandsummary.NonScannedResult] = securityJobSummary.GetNonScannedResult()
commandsummary.StaticMarkdownConfig.SetScanResultsMapping(scanResultsMap)
return nil
return
}

// Each scan result should be processed according to its index.
// To generate custom view for each scan type.
func processScan(index commandsummary.Index, filePath string, scannedName string, sec *securityUtils.SecurityJobSummary, scanResultsMap map[string]commandsummary.ScanResult) (map[string]commandsummary.ScanResult, error) {
var res commandsummary.ScanResult
var err error
Expand All @@ -195,18 +214,6 @@ func processScan(index commandsummary.Index, filePath string, scannedName string
return scanResultsMap, nil
}

func generateUploadMarkdown() error {
if should, err := shouldGenerateUploadSummary(); err != nil || !should {
log.Debug("Skipping upload summary generation due build-info data to avoid duplications...")
return err
}
uploadSummary, err := commandsummary.NewUploadSummary()
if err != nil {
return fmt.Errorf("error generating upload markdown: %w", err)
}
return uploadSummary.GenerateMarkdown()
}

// shouldGenerateUploadSummary checks if upload summary should be generated.
func shouldGenerateUploadSummary() (bool, error) {
buildInfoPath := filepath.Join(os.Getenv(coreutils.SummaryOutputDirPathEnv), JfrogCliSummaryDir, string(BuildInfo))
Expand Down

0 comments on commit 72c802c

Please sign in to comment.