Skip to content

Commit

Permalink
chore: bump k8s.io libs-0.30.0 & fix lint issues (#2040)
Browse files Browse the repository at this point in the history
* chore: bump k8s.io libs-0.30.0 fix lint issues

Signed-off-by: chenk <hen.keinan@gmail.com>

* chore: bump k8s.io libs-0.30.0 fix lint issues

Signed-off-by: chenk <hen.keinan@gmail.com>

---------

Signed-off-by: chenk <hen.keinan@gmail.com>
  • Loading branch information
chen-keinan authored Apr 24, 2024
1 parent 17d52b6 commit 1cbf7bd
Show file tree
Hide file tree
Showing 11 changed files with 57 additions and 58 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
uses: golangci/golangci-lint-action@v4.0.0
with:
args: --verbose
version: v1.54.2
version: v1.57.2
skip-pkg-cache: true
skip-build-cache: true
- name: Verify YAML code
Expand Down
26 changes: 12 additions & 14 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
module github.com/aquasecurity/trivy-operator

go 1.22

toolchain go1.22.0
go 1.22.0

require (
github.com/CycloneDX/cyclonedx-go v0.8.0
Expand All @@ -26,14 +24,14 @@ require (
go.uber.org/automaxprocs v1.5.3
go.uber.org/multierr v1.11.0
golang.org/x/net v0.24.0
k8s.io/api v0.29.3
k8s.io/apiextensions-apiserver v0.29.3
k8s.io/apimachinery v0.29.3
k8s.io/api v0.30.0
k8s.io/apiextensions-apiserver v0.30.0
k8s.io/apimachinery v0.30.0
k8s.io/cli-runtime v0.29.3
k8s.io/client-go v0.29.3
k8s.io/client-go v0.30.0
k8s.io/kubectl v0.29.3 // indirect
k8s.io/utils v0.0.0-20231127182322-b307cd553661
sigs.k8s.io/controller-runtime v0.17.3
sigs.k8s.io/controller-runtime v0.17.1-0.20240423173400-ed81fa696dea
sigs.k8s.io/yaml v1.4.0
)

Expand Down Expand Up @@ -287,7 +285,7 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
gotest.tools/v3 v3.5.0 // indirect
helm.sh/helm/v3 v3.14.2 // indirect
k8s.io/apiserver v0.29.3 // indirect
k8s.io/apiserver v0.30.0 // indirect
oras.land/oras-go v1.2.5 // indirect
sigs.k8s.io/kustomize/api v0.15.0 // indirect
sigs.k8s.io/kustomize/kyaml v0.15.0 // indirect
Expand All @@ -307,7 +305,7 @@ require (
github.com/dlclark/regexp2 v1.10.0 // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/evanphx/json-patch v5.7.0+incompatible // indirect
github.com/evanphx/json-patch/v5 v5.8.0 // indirect
github.com/evanphx/json-patch/v5 v5.9.0 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.5.0 // indirect
Expand Down Expand Up @@ -361,16 +359,16 @@ require (
golang.org/x/term v0.19.0 // indirect
golang.org/x/text v0.14.0
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.17.0 // indirect
golang.org/x/tools v0.18.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/protobuf v1.33.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
k8s.io/component-base v0.29.3 // indirect
k8s.io/klog/v2 v2.120.0 // indirect
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
k8s.io/component-base v0.30.0 // indirect
k8s.io/klog/v2 v2.120.1 // indirect
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
)
Expand Down
43 changes: 22 additions & 21 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -515,8 +515,8 @@ github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU
github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew=
github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI=
github.com/evanphx/json-patch v5.7.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch/v5 v5.8.0 h1:lRj6N9Nci7MvzrXuX6HFzU8XjmhPiXPlsKEy1u0KQro=
github.com/evanphx/json-patch/v5 v5.8.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg=
github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4=
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
Expand Down Expand Up @@ -1553,8 +1553,9 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc=
golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ=
golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
Expand Down Expand Up @@ -1830,24 +1831,24 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw=
k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80=
k8s.io/apiextensions-apiserver v0.29.3 h1:9HF+EtZaVpFjStakF4yVufnXGPRppWFEQ87qnO91YeI=
k8s.io/apiextensions-apiserver v0.29.3/go.mod h1:po0XiY5scnpJfFizNGo6puNU6Fq6D70UJY2Cb2KwAVc=
k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU=
k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU=
k8s.io/apiserver v0.29.3 h1:xR7ELlJ/BZSr2n4CnD3lfA4gzFivh0wwfNfz9L0WZcE=
k8s.io/apiserver v0.29.3/go.mod h1:hrvXlwfRulbMbBgmWRQlFru2b/JySDpmzvQwwk4GUOs=
k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA=
k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE=
k8s.io/apiextensions-apiserver v0.30.0 h1:jcZFKMqnICJfRxTgnC4E+Hpcq8UEhT8B2lhBcQ+6uAs=
k8s.io/apiextensions-apiserver v0.30.0/go.mod h1:N9ogQFGcrbWqAY9p2mUAL5mGxsLqwgtUce127VtRX5Y=
k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA=
k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
k8s.io/apiserver v0.30.0 h1:QCec+U72tMQ+9tR6A0sMBB5Vh6ImCEkoKkTDRABWq6M=
k8s.io/apiserver v0.30.0/go.mod h1:smOIBq8t0MbKZi7O7SyIpjPsiKJ8qa+llcFCluKyqiY=
k8s.io/cli-runtime v0.29.3 h1:r68rephmmytoywkw2MyJ+CxjpasJDQY7AGc3XY2iv1k=
k8s.io/cli-runtime v0.29.3/go.mod h1:aqVUsk86/RhaGJwDhHXH0jcdqBrgdF3bZWk4Z9D4mkM=
k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg=
k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0=
k8s.io/component-base v0.29.3 h1:Oq9/nddUxlnrCuuR2K/jp6aflVvc0uDvxMzAWxnGzAo=
k8s.io/component-base v0.29.3/go.mod h1:Yuj33XXjuOk2BAaHsIGHhCKZQAgYKhqIxIjIr2UXYio=
k8s.io/klog/v2 v2.120.0 h1:z+q5mfovBj1fKFxiRzsa2DsJLPIVMk/KFL81LMOfK+8=
k8s.io/klog/v2 v2.120.0/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780=
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ=
k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY=
k8s.io/component-base v0.30.0 h1:cj6bp38g0ainlfYtaOQuRELh5KSYjhKxM+io7AUIk4o=
k8s.io/component-base v0.30.0/go.mod h1:V9x/0ePFNaKeKYA3bOvIbrNoluTSG+fSJKjLdjOoeXQ=
k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=
k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
k8s.io/kubectl v0.29.3 h1:RuwyyIU42MAISRIePaa8Q7A3U74Q9P4MoJbDFz9o3us=
k8s.io/kubectl v0.29.3/go.mod h1:yCxfY1dbwgVdEt2zkJ6d5NNLOhhWgTyrqACIoFhpdd4=
k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI=
Expand Down Expand Up @@ -1877,8 +1878,8 @@ oras.land/oras-go v1.2.5/go.mod h1:PuAwRShRZCsZb7g8Ar3jKKQR/2A/qN+pkYxIOd/FAoo=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
sigs.k8s.io/controller-runtime v0.17.3 h1:65QmN7r3FWgTxDMz9fvGnO1kbf2nu+acg9p2R9oYYYk=
sigs.k8s.io/controller-runtime v0.17.3/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY=
sigs.k8s.io/controller-runtime v0.17.1-0.20240423173400-ed81fa696dea h1:HPUwAZG01m+ypHpxSDXX9RjUeGkIfX8AWiQhqQ60EhQ=
sigs.k8s.io/controller-runtime v0.17.1-0.20240423173400-ed81fa696dea/go.mod h1:tuAt1+wbVsXIT8lPtk5RURxqAnq7xkpv2Mhttslg7Hw=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
sigs.k8s.io/kustomize/api v0.15.0 h1:6Ca88kEOBVotHDw+y2IsIMYtg9Pvv7MKpW9JMyF/OH4=
Expand Down
4 changes: 2 additions & 2 deletions pkg/compliance/io.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,10 @@ func reportsToResults(checks []v1alpha1.Check, name string, namespace string) tt
id := check.ID
if !strings.HasPrefix(check.ID, "AVD-") {
if strings.HasPrefix(check.ID, "KSV") {
id = fmt.Sprintf("%s-%s-%s", "AVD", "KSV", strings.Replace(check.ID, "KSV", "0", -1))
id = fmt.Sprintf("%s-%s-%s", "AVD", "KSV", strings.ReplaceAll(check.ID, "KSV", "0"))
}
if strings.HasPrefix(check.ID, "KCV") {
id = fmt.Sprintf("%s-%s-%s", "AVD", "KCV", strings.Replace(check.ID, "KCV", "", -1))
id = fmt.Sprintf("%s-%s-%s", "AVD", "KCV", strings.ReplaceAll(check.ID, "KCV", ""))
}
}
misconfigResult := ttypes.Result{Target: fmt.Sprintf("%s/%s", namespace, name),
Expand Down
4 changes: 2 additions & 2 deletions pkg/configauditreport/io.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ type readWriter struct {
// NewReadWriter constructs a new ReadWriter which is using the client package
// provided by the controller-runtime libraries for interacting with the
// Kubernetes API server.
func NewReadWriter(ObjectResolver *kube.ObjectResolver) ReadWriter {
func NewReadWriter(objectResolver *kube.ObjectResolver) ReadWriter {
return &readWriter{
ObjectResolver: ObjectResolver,
ObjectResolver: objectResolver,
}
}

Expand Down
16 changes: 8 additions & 8 deletions pkg/metrics/collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,41 +41,41 @@ const (
vuln_id = "vuln_id"
vuln_title = "vuln_title"
vuln_score = "vuln_score"
//compliance
// compliance
title = "title"
description = "description"
status = "status"
//exposed secret
// exposed secret
secret_category = "secret_category"
secret_rule_id = "secret_rule_id"
secret_target = "secret_target"
secret_title = "secret_title"
//config audit
// config audit
config_audit_id = "config_audit_id"
config_audit_title = "config_audit_title"
////nolint:gosec
//nolint:gosec
config_audit_description = "config_audit_description"
config_audit_category = "config_audit_category"
config_audit_success = "config_audit_success"
//rbac assessment
// rbac assessment
rbac_assessment_id = "rbac_assessment_id"
rbac_assessment_title = "rbac_assessment_title"
rbac_assessment_description = "rbac_assessment_description"
rbac_assessment_category = "rbac_assessment_category"
rbac_assessment_success = "rbac_assessment_success"
//infra assessment
// infra assessment
infra_assessment_id = "infra_assessment_id"
infra_assessment_title = "infra_assessment_title"
infra_assessment_description = "infra_assessment_description"
infra_assessment_category = "infra_assessment_category"
infra_assessment_success = "infra_assessment_success"

//image infomation
// image infomation
image_os_family = "image_os_family"
image_os_name = "image_os_name"
image_os_eosl = "image_os_eosl"

//compliance
// compliance
compliance_id = "compliance_id"
compliance_name = "compliance_name"
)
Expand Down
4 changes: 2 additions & 2 deletions pkg/operator/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ func (r *ClusterController) reconcileClusterComponents(resourceKind kube.Kind) r
}
oldVal, ok := r.clusterCache.Load(key)
if ok && oldVal != nil {
//resource has not changed
// resource has not changed
if kube.ComputeHash(oldVal) == kube.ComputeHash(val) {
return ctrl.Result{}, nil
}
Expand Down Expand Up @@ -297,7 +297,7 @@ func (r *ClusterController) numOfCoreComponentPodsAndNodes(ctx context.Context)
if err != nil {
return 0, 0, err
}
corePodsCount = corePodsCount + len(pods.Items)
corePodsCount += len(pods.Items)
}

addonPods, err := r.clientset.CoreV1().Pods("").List(ctx, metav1.ListOptions{LabelSelector: trivyoperator.LabelAddon})
Expand Down
8 changes: 3 additions & 5 deletions pkg/plugins/trivy/image.go
Original file line number Diff line number Diff line change
Expand Up @@ -416,8 +416,6 @@ func GetPodSpecForClientServerMode(ctx trivyoperator.PluginContext, config Confi
Value: ignorePolicyMountPath,
})
}
// fmt.Sprintf("sbom-%s.json", imageName),
//createVolumeSbomFiles(&volumeMounts, &volumes, &registryServiceAccountAuthKey, &secret.Name)

region := CheckAwsEcrPrivateRegistry(container.Image)
if region != "" {
Expand Down Expand Up @@ -764,9 +762,9 @@ func getUniqueScanResultFileName(name string) string {
return fmt.Sprintf("result_%s.json", name)
}

func CheckAwsEcrPrivateRegistry(ImageUrl string) string {
if len(regexp.MustCompile(AWSECR_Image_Regex).FindAllStringSubmatch(ImageUrl, -1)) != 0 {
return regexp.MustCompile(AWSECR_Image_Regex).FindAllStringSubmatch(ImageUrl, -1)[0][1]
func CheckAwsEcrPrivateRegistry(imageURL string) string {
if len(regexp.MustCompile(AWSECR_Image_Regex).FindAllStringSubmatch(imageURL, -1)) != 0 {
return regexp.MustCompile(AWSECR_Image_Regex).FindAllStringSubmatch(imageURL, -1)[0][1]
}
return ""
}
Expand Down
3 changes: 2 additions & 1 deletion pkg/plugins/trivy/jobspec.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,8 @@ func getSecurityChecks(ctx trivyoperator.PluginContext) string {
}

func getContainers(spec corev1.PodSpec) []corev1.Container {
containers := append(spec.Containers, spec.InitContainers...)
containers := spec.Containers
containers = append(containers, spec.InitContainers...)

// ephemeral container are not the same type as Containers/InitContainers,
// then we add it in a different loop
Expand Down
1 change: 1 addition & 0 deletions pkg/utils/compressutil.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
func decompressBzip2(compressedBytes []byte) (io.Reader, error) {
bz2Reader := bzip2.NewReader(bytes.NewReader(compressedBytes))
uncompressedWriter := new(bytes.Buffer)
//nolint:gosec
_, err := io.Copy(uncompressedWriter, bz2Reader)
if err != nil {
return nil, err
Expand Down
4 changes: 2 additions & 2 deletions pkg/vulnerabilityreport/io.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,10 +202,10 @@ func GetCvssV3(findingCvss types.VendorCVSS) map[string]*CVSS {
return cvssV3
}

func GetScoreFromCVSS(CVSSs map[string]*CVSS) *float64 {
func GetScoreFromCVSS(cvsss map[string]*CVSS) *float64 {
var nvdScore, vendorScore *float64

for name, cvss := range CVSSs {
for name, cvss := range cvsss {
if name == "nvd" {
nvdScore = cvss.V3Score
} else {
Expand Down

0 comments on commit 1cbf7bd

Please sign in to comment.