MCPcopy Create free account
hub / github.com/XmirrorSecurity/OpenSCA-cli / taskReport

Function taskReport

main.go:215–289  ·  view source on GitHub ↗
(r opensca.TaskResult)

Source from the content-addressed store, hash-verified

213}
214
215func taskReport(r opensca.TaskResult) format.Report {
216
217 path := config.Conf().Path
218 optional := config.Conf().Optional
219
220 absPath, _ := filepath.Abs(path)
221 appName := filepath.Base(absPath)
222
223 logs.Info("prepare report")
224
225 report := format.Report{}
226 report.TaskInfo.ToolVersion = version
227 report.TaskInfo.AppName = appName
228 report.TaskInfo.Size = r.Size
229
230 if r.Error != nil {
231 report.TaskInfo.ErrorString = r.Error.Error()
232 }
233
234 // 合并检测结果
235 root := &model.DepGraph{}
236 if len(r.Deps) > 1 {
237 for _, dep := range r.Deps {
238 root.AppendChild(dep)
239 }
240 } else if len(r.Deps) == 1 {
241 root = r.Deps[0]
242 }
243 report.DepDetailGraph = detail.NewDepDetailGraph(root)
244
245 // 组件去重
246 if optional.Dedup {
247 logs.Info("remove dup component")
248 report.RemoveDedup()
249 }
250
251 // 去掉dev组件
252 if !optional.SaveDev {
253 logs.Info("remove dev component")
254 report.RemoveDev()
255 }
256
257 // 查询组件详情(漏洞/许可证)
258 err := detail.SearchDetail(report.DepDetailGraph)
259 if err != nil {
260 logs.Warnf("database origin error: %s", err.Error())
261 if report.TaskInfo.ErrorString != "" {
262 report.TaskInfo.ErrorString += "\n"
263 }
264 report.TaskInfo.ErrorString += err.Error()
265 }
266
267 // 仅保留漏洞组件
268 /*if optional.VulnOnly {
269 logs.Info("remove no-vuln component")
270 var deps []*detail.DepDetailGraph
271 report.ForEach(func(n *detail.DepDetailGraph) bool {
272 if len(n.Vulnerabilities) > 0 {

Callers 1

mainFunction · 0.85

Calls 9

AppendChildMethod · 0.95
ConfFunction · 0.92
InfoFunction · 0.92
NewDepDetailGraphFunction · 0.92
SearchDetailFunction · 0.92
WarnfFunction · 0.92
RemoveDedupMethod · 0.80
RemoveDevMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected