mirror of
https://github.com/kubescape/kubescape.git
synced 2026-03-05 11:10:32 +00:00
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package resourcehandler
|
|
|
|
import (
|
|
giturl "github.com/armosec/go-git-url"
|
|
logger "github.com/kubescape/go-logger"
|
|
"github.com/kubescape/go-logger/helpers"
|
|
"github.com/kubescape/k8s-interface/workloadinterface"
|
|
"github.com/kubescape/kubescape/v2/core/cautils"
|
|
)
|
|
|
|
func loadResourcesFromUrl(inputPatterns []string) (map[string][]workloadinterface.IMetadata, error) {
|
|
if len(inputPatterns) == 0 {
|
|
return nil, nil
|
|
}
|
|
g, err := giturl.NewGitAPI(inputPatterns[0])
|
|
if err != nil {
|
|
return nil, nil
|
|
}
|
|
|
|
files, errs := g.DownloadFilesWithExtension(append(cautils.YAML_PREFIX, cautils.JSON_PREFIX...))
|
|
if len(errs) > 0 {
|
|
for i, j := range errs {
|
|
logger.L().Error(i, helpers.Error(j))
|
|
}
|
|
}
|
|
|
|
if len(files) == 0 {
|
|
return nil, nil
|
|
}
|
|
|
|
// convert files to IMetadata
|
|
workloads := make(map[string][]workloadinterface.IMetadata, 0)
|
|
|
|
for i, j := range files {
|
|
w, e := cautils.ReadFile(j, cautils.GetFileFormat(i))
|
|
if e != nil || len(w) == 0 {
|
|
continue
|
|
}
|
|
if _, ok := workloads[i]; !ok {
|
|
workloads[i] = make([]workloadinterface.IMetadata, 0)
|
|
}
|
|
wSlice := workloads[i]
|
|
wSlice = append(wSlice, w...)
|
|
workloads[i] = wSlice
|
|
}
|
|
|
|
return workloads, nil
|
|
}
|