@@ -92,7 +92,7 @@ func NewScanCommand(
92
92
93
93
tagsCmd := scanTagsSubCommand (scansWrapper )
94
94
95
- logsCmd := util . NewLogsCommand (logsWraper )
95
+ logsCmd := scanLogsSubCommand (logsWraper )
96
96
97
97
addFormatFlagToMultipleCommands (
98
98
[]* cobra.Command {listScansCmd , showScanCmd , workflowScanCmd },
@@ -106,6 +106,24 @@ func NewScanCommand(
106
106
return scanCmd
107
107
}
108
108
109
+ func scanLogsSubCommand (logsWrapper wrappers.LogsWrapper ) * cobra.Command {
110
+ logsCmd := & cobra.Command {
111
+ Use : "logs" ,
112
+ Short : "Download scan log for selected scan type" ,
113
+ Long : "Accepts a scan-id and scan type (sast, kics or sca) and downloads the related scan log" ,
114
+ Example : heredoc .Doc (`
115
+ $ cx scan logs --scan-id <scan Id> --scan-type <sast | sca | kics>
116
+ ` ),
117
+ RunE : runDownloadLogs (logsWrapper ),
118
+ }
119
+ logsCmd .PersistentFlags ().String (commonParams .ScanIDFlag , "" , "Scan ID to retrieve log for." )
120
+ logsCmd .PersistentFlags ().String (commonParams .ScanTypeFlag , "" , "Scan type to pull log for, ex: sast, kics or sca." )
121
+ markFlagAsRequired (logsCmd , commonParams .ScanIDFlag )
122
+ markFlagAsRequired (logsCmd , commonParams .ScanTypeFlag )
123
+
124
+ return logsCmd
125
+ }
126
+
109
127
func scanTagsSubCommand (scansWrapper wrappers.ScansWrapper ) * cobra.Command {
110
128
tagsCmd := & cobra.Command {
111
129
Use : "tags" ,
@@ -1089,6 +1107,19 @@ func runGetTagsCommand(scansWrapper wrappers.ScansWrapper) func(cmd *cobra.Comma
1089
1107
}
1090
1108
}
1091
1109
1110
+ func runDownloadLogs (logsWrapper wrappers.LogsWrapper ) func (* cobra.Command , []string ) error {
1111
+ return func (cmd * cobra.Command , _ []string ) error {
1112
+ scanID , _ := cmd .Flags ().GetString (commonParams .ScanIDFlag )
1113
+ scanType , _ := cmd .Flags ().GetString (commonParams .ScanTypeFlag )
1114
+ logText , err := logsWrapper .GetLog (scanID , scanType )
1115
+ if err != nil {
1116
+ return err
1117
+ }
1118
+ fmt .Print (logText )
1119
+ return nil
1120
+ }
1121
+ }
1122
+
1092
1123
type scanView struct {
1093
1124
ID string `format:"name:Scan ID"`
1094
1125
ProjectID string `format:"name:Project ID"`
0 commit comments