0
Fork 0
mirror of https://github.com/project-zot/zot.git synced 2024-12-16 21:56:37 -05:00

chore: fix dependabot alerts (#1312)

Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>
This commit is contained in:
Ramkumar Chinchani 2023-03-27 12:16:29 -07:00 committed by GitHub
parent e54c36db12
commit 917159143c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 150 additions and 95 deletions

View file

@ -12,7 +12,7 @@ jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@v7 - uses: actions/stale@v8
with: with:
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.' stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
stale-pr-message: 'This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days.' stale-pr-message: 'This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days.'

6
go.mod
View file

@ -3,7 +3,7 @@ module zotregistry.io/zot
go 1.19 go 1.19
require ( require (
github.com/99designs/gqlgen v0.17.25 github.com/99designs/gqlgen v0.17.27
github.com/Masterminds/semver v1.5.0 github.com/Masterminds/semver v1.5.0
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
github.com/apex/log v1.9.0 github.com/apex/log v1.9.0
@ -41,7 +41,7 @@ require (
github.com/spf13/cobra v1.6.1 github.com/spf13/cobra v1.6.1
github.com/spf13/viper v1.15.0 github.com/spf13/viper v1.15.0
github.com/stretchr/testify v1.8.2 github.com/stretchr/testify v1.8.2
github.com/swaggo/swag v1.8.10 github.com/swaggo/swag v1.8.11
github.com/vektah/gqlparser/v2 v2.5.1 github.com/vektah/gqlparser/v2 v2.5.1
go.etcd.io/bbolt v1.3.7 go.etcd.io/bbolt v1.3.7
golang.org/x/crypto v0.7.0 golang.org/x/crypto v0.7.0
@ -58,7 +58,7 @@ require (
github.com/opencontainers/distribution-spec/specs-go v0.0.0-20230117141039-067a0f5b0e25 github.com/opencontainers/distribution-spec/specs-go v0.0.0-20230117141039-067a0f5b0e25
github.com/sigstore/cosign v1.13.1 github.com/sigstore/cosign v1.13.1
github.com/swaggo/http-swagger v1.3.4 github.com/swaggo/http-swagger v1.3.4
oras.land/oras-go/v2 v2.0.0 oras.land/oras-go/v2 v2.0.2
) )
require ( require (

12
go.sum
View file

@ -216,8 +216,8 @@ contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcig
cuelang.org/go v0.4.3 h1:W3oBBjDTm7+IZfCKZAmC8uDG0eYfJL4Pp/xbbCMKaVo= cuelang.org/go v0.4.3 h1:W3oBBjDTm7+IZfCKZAmC8uDG0eYfJL4Pp/xbbCMKaVo=
cuelang.org/go v0.4.3/go.mod h1:7805vR9H+VoBNdWFdI7jyDR3QLUPp4+naHfbcgp55HI= cuelang.org/go v0.4.3/go.mod h1:7805vR9H+VoBNdWFdI7jyDR3QLUPp4+naHfbcgp55HI=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/99designs/gqlgen v0.17.25 h1:5CAocr5i+dqY0lUR+Xu0InU81Ax/g+xsxKwOU8Glqy0= github.com/99designs/gqlgen v0.17.27 h1:XPsaZiWY1lL2qqVYtBt37GzkyX7bBiVvda7k1buC/Ao=
github.com/99designs/gqlgen v0.17.25/go.mod h1:i4rEatMrzzu6RXaHydq1nmEPZkb3bKQsnxNRHS4DQB4= github.com/99designs/gqlgen v0.17.27/go.mod h1:i4rEatMrzzu6RXaHydq1nmEPZkb3bKQsnxNRHS4DQB4=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20210401092550-0a8691dafd0d/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= github.com/AdaLogics/go-fuzz-headers v0.0.0-20210401092550-0a8691dafd0d/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20211102141018-f7be0cbad29c h1:9K6I0yCgGSneuHCoIlJl0O09UjqqWduCwd+ZL1nHFWc= github.com/AdaLogics/go-fuzz-headers v0.0.0-20211102141018-f7be0cbad29c h1:9K6I0yCgGSneuHCoIlJl0O09UjqqWduCwd+ZL1nHFWc=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20211102141018-f7be0cbad29c/go.mod h1:WpB7kf89yJUETZxQnP1kgYPNwlT2jjdDYUCoxVggM3g= github.com/AdaLogics/go-fuzz-headers v0.0.0-20211102141018-f7be0cbad29c/go.mod h1:WpB7kf89yJUETZxQnP1kgYPNwlT2jjdDYUCoxVggM3g=
@ -2138,8 +2138,8 @@ github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe h1:K8pHPVoTgxFJt1lXuI
github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe/go.mod h1:lKJPbtWzJ9JhsTN1k1gZgleJWY/cqq0psdoMmaThG3w= github.com/swaggo/files v0.0.0-20220610200504-28940afbdbfe/go.mod h1:lKJPbtWzJ9JhsTN1k1gZgleJWY/cqq0psdoMmaThG3w=
github.com/swaggo/http-swagger v1.3.4 h1:q7t/XLx0n15H1Q9/tk3Y9L4n210XzJF5WtnDX64a5ww= github.com/swaggo/http-swagger v1.3.4 h1:q7t/XLx0n15H1Q9/tk3Y9L4n210XzJF5WtnDX64a5ww=
github.com/swaggo/http-swagger v1.3.4/go.mod h1:9dAh0unqMBAlbp1uE2Uc2mQTxNMU/ha4UbucIg1MFkQ= github.com/swaggo/http-swagger v1.3.4/go.mod h1:9dAh0unqMBAlbp1uE2Uc2mQTxNMU/ha4UbucIg1MFkQ=
github.com/swaggo/swag v1.8.10 h1:eExW4bFa52WOjqRzRD58bgWsWfdFJso50lpbeTcmTfo= github.com/swaggo/swag v1.8.11 h1:Fp1dNNtDvbCf+8kvehZbHQnlF6AxHGjmw6H/xAMrZfY=
github.com/swaggo/swag v1.8.10/go.mod h1:ezQVUUhly8dludpVk+/PuwJWvLLanB13ygV5Pr9enSk= github.com/swaggo/swag v1.8.11/go.mod h1:2GXgpNI9iy5OdsYWu8zXfRAGnOAPxYxTWTyM0XOTYZQ=
github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
@ -3354,8 +3354,8 @@ modernc.org/z v1.5.1 h1:RTNHdsrOpeoSeOF4FbzTo8gBYByaJ5xT7NgZ9ZqRiJM=
modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8=
oras.land/oras-go v1.2.0 h1:yoKosVIbsPoFMqAIFHTnrmOuafHal+J/r+I5bdbVWu4= oras.land/oras-go v1.2.0 h1:yoKosVIbsPoFMqAIFHTnrmOuafHal+J/r+I5bdbVWu4=
oras.land/oras-go v1.2.0/go.mod h1:pFNs7oHp2dYsYMSS82HaX5l4mpnGO7hbpPN6EWH2ltc= oras.land/oras-go v1.2.0/go.mod h1:pFNs7oHp2dYsYMSS82HaX5l4mpnGO7hbpPN6EWH2ltc=
oras.land/oras-go/v2 v2.0.0 h1:+LRAz92WF7AvYQsQjPEAIw3Xb2zPPhuydjpi4pIHmc0= oras.land/oras-go/v2 v2.0.2 h1:3aSQdJ7EUC0ft2e9PjJB9Jzastz5ojPA4LzZ3Q4YbUc=
oras.land/oras-go/v2 v2.0.0/go.mod h1:iVExH1NxrccIxjsiq17L91WCZ4KIw6jVQyCLsZsu1gc= oras.land/oras-go/v2 v2.0.2/go.mod h1:PWnWc/Kyyg7wUTUsDHshrsJkzuxXzreeMd6NrfdnFSo=
pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= 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/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=

View file

@ -9,6 +9,7 @@ import (
"fmt" "fmt"
"strconv" "strconv"
"sync" "sync"
"sync/atomic"
"time" "time"
"github.com/99designs/gqlgen/graphql" "github.com/99designs/gqlgen/graphql"
@ -5070,6 +5071,7 @@ func (ec *executionContext) _Query_CVEListForImage(ctx context.Context, field gr
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5132,6 +5134,7 @@ func (ec *executionContext) _Query_ImageListForCVE(ctx context.Context, field gr
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5192,6 +5195,7 @@ func (ec *executionContext) _Query_ImageListWithCVEFixed(ctx context.Context, fi
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5252,6 +5256,7 @@ func (ec *executionContext) _Query_ImageListForDigest(ctx context.Context, field
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5312,6 +5317,7 @@ func (ec *executionContext) _Query_RepoListWithNewestImage(ctx context.Context,
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5372,6 +5378,7 @@ func (ec *executionContext) _Query_ImageList(ctx context.Context, field graphql.
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5432,6 +5439,7 @@ func (ec *executionContext) _Query_ExpandedRepoInfo(ctx context.Context, field g
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5492,6 +5500,7 @@ func (ec *executionContext) _Query_GlobalSearch(ctx context.Context, field graph
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5556,6 +5565,7 @@ func (ec *executionContext) _Query_DerivedImageList(ctx context.Context, field g
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5616,6 +5626,7 @@ func (ec *executionContext) _Query_BaseImageList(ctx context.Context, field grap
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5676,6 +5687,7 @@ func (ec *executionContext) _Query_Image(ctx context.Context, field graphql.Coll
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5770,6 +5782,7 @@ func (ec *executionContext) _Query_Referrers(ctx context.Context, field graphql.
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
if !graphql.HasFieldError(ctx, fc) { if !graphql.HasFieldError(ctx, fc) {
@ -5836,6 +5849,7 @@ func (ec *executionContext) _Query___type(ctx context.Context, field graphql.Col
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
return graphql.Null return graphql.Null
@ -5909,6 +5923,7 @@ func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.C
}) })
if err != nil { if err != nil {
ec.Error(ctx, err) ec.Error(ctx, err)
return graphql.Null
} }
if resTmp == nil { if resTmp == nil {
return graphql.Null return graphql.Null
@ -9228,6 +9243,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
}) })
out := graphql.NewFieldSet(fields) out := graphql.NewFieldSet(fields)
var invalids uint32
for i, field := range fields { for i, field := range fields {
innerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{ innerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{
Object: field.Name, Object: field.Name,
@ -9247,6 +9263,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_CVEListForImage(ctx, field) res = ec._Query_CVEListForImage(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9267,6 +9286,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_ImageListForCVE(ctx, field) res = ec._Query_ImageListForCVE(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9287,6 +9309,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_ImageListWithCVEFixed(ctx, field) res = ec._Query_ImageListWithCVEFixed(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9307,6 +9332,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_ImageListForDigest(ctx, field) res = ec._Query_ImageListForDigest(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9327,6 +9355,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_RepoListWithNewestImage(ctx, field) res = ec._Query_RepoListWithNewestImage(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9347,6 +9378,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_ImageList(ctx, field) res = ec._Query_ImageList(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9367,6 +9401,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_ExpandedRepoInfo(ctx, field) res = ec._Query_ExpandedRepoInfo(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9387,6 +9424,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_GlobalSearch(ctx, field) res = ec._Query_GlobalSearch(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9407,6 +9447,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_DerivedImageList(ctx, field) res = ec._Query_DerivedImageList(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9427,6 +9470,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_BaseImageList(ctx, field) res = ec._Query_BaseImageList(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9447,6 +9493,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_Image(ctx, field) res = ec._Query_Image(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9467,6 +9516,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
}() }()
res = ec._Query_Referrers(ctx, field) res = ec._Query_Referrers(ctx, field)
if res == graphql.Null {
atomic.AddUint32(&invalids, 1)
}
return res return res
} }
@ -9494,6 +9546,9 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
} }
} }
out.Dispatch() out.Dispatch()
if invalids > 0 {
return graphql.Null
}
return out return out
} }

View file

@ -13,34 +13,34 @@ import (
// not available in other fields. // not available in other fields.
type Annotation struct { type Annotation struct {
// Custom key // Custom key
Key *string `json:"Key"` Key *string `json:"Key,omitempty"`
// Value associated with the custom key // Value associated with the custom key
Value *string `json:"Value"` Value *string `json:"Value,omitempty"`
} }
// Contains various details about the CVE (Common Vulnerabilities and Exposures) // Contains various details about the CVE (Common Vulnerabilities and Exposures)
// and a list of PackageInfo about the affected packages // and a list of PackageInfo about the affected packages
type Cve struct { type Cve struct {
// CVE ID // CVE ID
ID *string `json:"Id"` ID *string `json:"Id,omitempty"`
// A short title describing the CVE // A short title describing the CVE
Title *string `json:"Title"` Title *string `json:"Title,omitempty"`
// A detailed description of the CVE // A detailed description of the CVE
Description *string `json:"Description"` Description *string `json:"Description,omitempty"`
// The impact the CVE has, one of "UNKNOWN", "LOW", "MEDIUM", "HIGH", "CRITICAL" // The impact the CVE has, one of "UNKNOWN", "LOW", "MEDIUM", "HIGH", "CRITICAL"
Severity *string `json:"Severity"` Severity *string `json:"Severity,omitempty"`
// Information on the packages in which the CVE was found // Information on the packages in which the CVE was found
PackageList []*PackageInfo `json:"PackageList"` PackageList []*PackageInfo `json:"PackageList,omitempty"`
} }
// Contains the tag of the image and a list of CVEs // Contains the tag of the image and a list of CVEs
type CVEResultForImage struct { type CVEResultForImage struct {
// Tag affected by the CVEs // Tag affected by the CVEs
Tag *string `json:"Tag"` Tag *string `json:"Tag,omitempty"`
// List of CVE objects which afect this specific image:tag // List of CVE objects which afect this specific image:tag
CVEList []*Cve `json:"CVEList"` CVEList []*Cve `json:"CVEList,omitempty"`
// The CVE pagination information, see PageInfo object for more details // The CVE pagination information, see PageInfo object for more details
Page *PageInfo `json:"Page"` Page *PageInfo `json:"Page,omitempty"`
} }
// Apply various types of filters to the queries made for repositories and images // Apply various types of filters to the queries made for repositories and images
@ -49,144 +49,144 @@ type CVEResultForImage struct {
type Filter struct { type Filter struct {
// Only return images or repositories supporting the operating systems in the list // Only return images or repositories supporting the operating systems in the list
// Should be values listed in the Go Language document https://go.dev/doc/install/source#environment // Should be values listed in the Go Language document https://go.dev/doc/install/source#environment
Os []*string `json:"Os"` Os []*string `json:"Os,omitempty"`
// Only return images or repositories supporting the build architectures in the list // Only return images or repositories supporting the build architectures in the list
// Should be values listed in the Go Language document https://go.dev/doc/install/source#environment // Should be values listed in the Go Language document https://go.dev/doc/install/source#environment
Arch []*string `json:"Arch"` Arch []*string `json:"Arch,omitempty"`
// Only return images or repositories with at least one signature // Only return images or repositories with at least one signature
HasToBeSigned *bool `json:"HasToBeSigned"` HasToBeSigned *bool `json:"HasToBeSigned,omitempty"`
} }
// Search results, can contain images, repositories and layers // Search results, can contain images, repositories and layers
type GlobalSearchResult struct { type GlobalSearchResult struct {
// Pagination information // Pagination information
Page *PageInfo `json:"Page"` Page *PageInfo `json:"Page,omitempty"`
// List of images matching the search criteria // List of images matching the search criteria
Images []*ImageSummary `json:"Images"` Images []*ImageSummary `json:"Images,omitempty"`
// List of repositories matching the search criteria // List of repositories matching the search criteria
Repos []*RepoSummary `json:"Repos"` Repos []*RepoSummary `json:"Repos,omitempty"`
// List of layers matching the search criteria // List of layers matching the search criteria
// NOTE: the actual search logic for layers is not implemented at the moment // NOTE: the actual search logic for layers is not implemented at the moment
Layers []*LayerSummary `json:"Layers"` Layers []*LayerSummary `json:"Layers,omitempty"`
} }
// Information on how a layer was created // Information on how a layer was created
type HistoryDescription struct { type HistoryDescription struct {
// Created is the time when the layer was created. // Created is the time when the layer was created.
Created *time.Time `json:"Created"` Created *time.Time `json:"Created,omitempty"`
// CreatedBy is the command which created the layer. // CreatedBy is the command which created the layer.
CreatedBy *string `json:"CreatedBy"` CreatedBy *string `json:"CreatedBy,omitempty"`
// Author is the author of the build point. // Author is the author of the build point.
Author *string `json:"Author"` Author *string `json:"Author,omitempty"`
// Comment is a custom message set when creating the layer. // Comment is a custom message set when creating the layer.
Comment *string `json:"Comment"` Comment *string `json:"Comment,omitempty"`
// EmptyLayer is used to mark if the history item created a filesystem diff. // EmptyLayer is used to mark if the history item created a filesystem diff.
EmptyLayer *bool `json:"EmptyLayer"` EmptyLayer *bool `json:"EmptyLayer,omitempty"`
} }
// Details about a specific image, it is used by queries returning a list of images // Details about a specific image, it is used by queries returning a list of images
// We define an image as a pairing or a repository and a tag belonging to that repository // We define an image as a pairing or a repository and a tag belonging to that repository
type ImageSummary struct { type ImageSummary struct {
// Name of the repository where the image is found // Name of the repository where the image is found
RepoName *string `json:"RepoName"` RepoName *string `json:"RepoName,omitempty"`
// Tag identifying the image within the repository // Tag identifying the image within the repository
Tag *string `json:"Tag"` Tag *string `json:"Tag,omitempty"`
// The digest of the descriptor of this image // The digest of the descriptor of this image
Digest *string `json:"Digest"` Digest *string `json:"Digest,omitempty"`
// The media type of the descriptor of this image // The media type of the descriptor of this image
MediaType *string `json:"MediaType"` MediaType *string `json:"MediaType,omitempty"`
// List of manifests for all supported versions of the image for different operating systems and architectures // List of manifests for all supported versions of the image for different operating systems and architectures
Manifests []*ManifestSummary `json:"Manifests"` Manifests []*ManifestSummary `json:"Manifests,omitempty"`
// Total size of the files associated with all images (manifest, config, layers) // Total size of the files associated with all images (manifest, config, layers)
Size *string `json:"Size"` Size *string `json:"Size,omitempty"`
// Number of downloads of the manifest of this image // Number of downloads of the manifest of this image
DownloadCount *int `json:"DownloadCount"` DownloadCount *int `json:"DownloadCount,omitempty"`
// Timestamp of the last modification done to the image (from config or the last updated layer) // Timestamp of the last modification done to the image (from config or the last updated layer)
LastUpdated *time.Time `json:"LastUpdated"` LastUpdated *time.Time `json:"LastUpdated,omitempty"`
// Human-readable description of the software packaged in the image // Human-readable description of the software packaged in the image
Description *string `json:"Description"` Description *string `json:"Description,omitempty"`
// True if the image has a signature associated with it, false otherwise // True if the image has a signature associated with it, false otherwise
IsSigned *bool `json:"IsSigned"` IsSigned *bool `json:"IsSigned,omitempty"`
// License(s) under which contained software is distributed as an SPDX License Expression // License(s) under which contained software is distributed as an SPDX License Expression
Licenses *string `json:"Licenses"` Licenses *string `json:"Licenses,omitempty"`
// Labels associated with this image // Labels associated with this image
// NOTE: currently this field is unused // NOTE: currently this field is unused
Labels *string `json:"Labels"` Labels *string `json:"Labels,omitempty"`
// Human-readable title of the image // Human-readable title of the image
Title *string `json:"Title"` Title *string `json:"Title,omitempty"`
// URL to get source code for building the image // URL to get source code for building the image
Source *string `json:"Source"` Source *string `json:"Source,omitempty"`
// URL to get documentation on the image // URL to get documentation on the image
Documentation *string `json:"Documentation"` Documentation *string `json:"Documentation,omitempty"`
// Vendor associated with this image, the distributing entity, organization or individual // Vendor associated with this image, the distributing entity, organization or individual
Vendor *string `json:"Vendor"` Vendor *string `json:"Vendor,omitempty"`
// Contact details of the people or organization responsible for the image // Contact details of the people or organization responsible for the image
Authors *string `json:"Authors"` Authors *string `json:"Authors,omitempty"`
// Short summary of the identified CVEs // Short summary of the identified CVEs
Vulnerabilities *ImageVulnerabilitySummary `json:"Vulnerabilities"` Vulnerabilities *ImageVulnerabilitySummary `json:"Vulnerabilities,omitempty"`
// Information about objects that reference this image // Information about objects that reference this image
Referrers []*Referrer `json:"Referrers"` Referrers []*Referrer `json:"Referrers,omitempty"`
} }
// Contains summary of vulnerabilities found in a specific image // Contains summary of vulnerabilities found in a specific image
type ImageVulnerabilitySummary struct { type ImageVulnerabilitySummary struct {
// Maximum severity of all CVEs found in this image // Maximum severity of all CVEs found in this image
MaxSeverity *string `json:"MaxSeverity"` MaxSeverity *string `json:"MaxSeverity,omitempty"`
// Count of all CVEs found in this image // Count of all CVEs found in this image
Count *int `json:"Count"` Count *int `json:"Count,omitempty"`
} }
// Information about how/when a layer was built // Information about how/when a layer was built
type LayerHistory struct { type LayerHistory struct {
// Information specific to the layer such as size and digest. // Information specific to the layer such as size and digest.
Layer *LayerSummary `json:"Layer"` Layer *LayerSummary `json:"Layer,omitempty"`
// Additional information about how the layer was created. // Additional information about how the layer was created.
HistoryDescription *HistoryDescription `json:"HistoryDescription"` HistoryDescription *HistoryDescription `json:"HistoryDescription,omitempty"`
} }
// Contains details about a specific layer which is part of an image // Contains details about a specific layer which is part of an image
type LayerSummary struct { type LayerSummary struct {
// The size of the layer in bytes // The size of the layer in bytes
Size *string `json:"Size"` Size *string `json:"Size,omitempty"`
// Digest of the layer content // Digest of the layer content
Digest *string `json:"Digest"` Digest *string `json:"Digest,omitempty"`
} }
// Details about a specific version of an image for a certain operating system and architecture. // Details about a specific version of an image for a certain operating system and architecture.
type ManifestSummary struct { type ManifestSummary struct {
// Digest of the manifest file associated with this image // Digest of the manifest file associated with this image
Digest *string `json:"Digest"` Digest *string `json:"Digest,omitempty"`
// Digest of the config file associated with this image // Digest of the config file associated with this image
ConfigDigest *string `json:"ConfigDigest"` ConfigDigest *string `json:"ConfigDigest,omitempty"`
// Timestamp of the last update to an image inside this repository // Timestamp of the last update to an image inside this repository
LastUpdated *time.Time `json:"LastUpdated"` LastUpdated *time.Time `json:"LastUpdated,omitempty"`
// Total size of the files associated with this manifest (manifest, config, layers) // Total size of the files associated with this manifest (manifest, config, layers)
Size *string `json:"Size"` Size *string `json:"Size,omitempty"`
// True if the manifest has a signature associated with it, false otherwise // True if the manifest has a signature associated with it, false otherwise
IsSigned *bool `json:"IsSigned"` IsSigned *bool `json:"IsSigned,omitempty"`
// OS and architecture supported by this image // OS and architecture supported by this image
Platform *Platform `json:"Platform"` Platform *Platform `json:"Platform,omitempty"`
// Total numer of image manifest downloads from this repository // Total numer of image manifest downloads from this repository
DownloadCount *int `json:"DownloadCount"` DownloadCount *int `json:"DownloadCount,omitempty"`
// List of layers matching the search criteria // List of layers matching the search criteria
// NOTE: the actual search logic for layers is not implemented at the moment // NOTE: the actual search logic for layers is not implemented at the moment
Layers []*LayerSummary `json:"Layers"` Layers []*LayerSummary `json:"Layers,omitempty"`
// Information about the history of the specific image, see LayerHistory // Information about the history of the specific image, see LayerHistory
History []*LayerHistory `json:"History"` History []*LayerHistory `json:"History,omitempty"`
// Short summary of the identified CVEs // Short summary of the identified CVEs
Vulnerabilities *ImageVulnerabilitySummary `json:"Vulnerabilities"` Vulnerabilities *ImageVulnerabilitySummary `json:"Vulnerabilities,omitempty"`
// Information about objects that reference this image // Information about objects that reference this image
Referrers []*Referrer `json:"Referrers"` Referrers []*Referrer `json:"Referrers,omitempty"`
} }
// Contains the name of the package, the current installed version and the version where the CVE was fixed // Contains the name of the package, the current installed version and the version where the CVE was fixed
type PackageInfo struct { type PackageInfo struct {
// Name of the package affected by a CVE // Name of the package affected by a CVE
Name *string `json:"Name"` Name *string `json:"Name,omitempty"`
// Current version of the package, typically affected by the CVE // Current version of the package, typically affected by the CVE
InstalledVersion *string `json:"InstalledVersion"` InstalledVersion *string `json:"InstalledVersion,omitempty"`
// Minimum version of the package in which the CVE is fixed // Minimum version of the package in which the CVE is fixed
FixedVersion *string `json:"FixedVersion"` FixedVersion *string `json:"FixedVersion,omitempty"`
} }
// Information on current page returned by the API // Information on current page returned by the API
@ -202,18 +202,18 @@ type PageInfo struct {
type PageInput struct { type PageInput struct {
// The maximum amount of results to return for this page // The maximum amount of results to return for this page
// Negative values are not allowed // Negative values are not allowed
Limit *int `json:"limit"` Limit *int `json:"limit,omitempty"`
// The results page number you want to receive // The results page number you want to receive
// Negative values are not allowed // Negative values are not allowed
Offset *int `json:"offset"` Offset *int `json:"offset,omitempty"`
// The criteria used to sort the results on the page // The criteria used to sort the results on the page
SortBy *SortCriteria `json:"sortBy"` SortBy *SortCriteria `json:"sortBy,omitempty"`
} }
// Paginated list of ImageSummary objects // Paginated list of ImageSummary objects
type PaginatedImagesResult struct { type PaginatedImagesResult struct {
// Information on the returned page // Information on the returned page
Page *PageInfo `json:"Page"` Page *PageInfo `json:"Page,omitempty"`
// List of images // List of images
Results []*ImageSummary `json:"Results"` Results []*ImageSummary `json:"Results"`
} }
@ -221,7 +221,7 @@ type PaginatedImagesResult struct {
// Paginated list of RepoSummary objects // Paginated list of RepoSummary objects
type PaginatedReposResult struct { type PaginatedReposResult struct {
// Information on the returned page // Information on the returned page
Page *PageInfo `json:"Page"` Page *PageInfo `json:"Page,omitempty"`
// List of repositories // List of repositories
Results []*RepoSummary `json:"Results"` Results []*RepoSummary `json:"Results"`
} }
@ -230,24 +230,24 @@ type PaginatedReposResult struct {
type Platform struct { type Platform struct {
// The name of the operating system which the image is built to run on, // The name of the operating system which the image is built to run on,
// Should be values listed in the Go Language document https://go.dev/doc/install/source#environment // Should be values listed in the Go Language document https://go.dev/doc/install/source#environment
Os *string `json:"Os"` Os *string `json:"Os,omitempty"`
// The name of the compilation architecture which the image is built to run on, // The name of the compilation architecture which the image is built to run on,
// Should be values listed in the Go Language document https://go.dev/doc/install/source#environment // Should be values listed in the Go Language document https://go.dev/doc/install/source#environment
Arch *string `json:"Arch"` Arch *string `json:"Arch,omitempty"`
} }
// A referrer is an object which has a reference to a another object // A referrer is an object which has a reference to a another object
type Referrer struct { type Referrer struct {
// Referrer MediaType // Referrer MediaType
// See https://github.com/opencontainers/artifacts for more details // See https://github.com/opencontainers/artifacts for more details
MediaType *string `json:"MediaType"` MediaType *string `json:"MediaType,omitempty"`
// Referrer ArtifactType // Referrer ArtifactType
// See https://github.com/opencontainers/artifacts for more details // See https://github.com/opencontainers/artifacts for more details
ArtifactType *string `json:"ArtifactType"` ArtifactType *string `json:"ArtifactType,omitempty"`
// Total size of the referrer files in bytes // Total size of the referrer files in bytes
Size *int `json:"Size"` Size *int `json:"Size,omitempty"`
// Digest of the manifest file of the referrer // Digest of the manifest file of the referrer
Digest *string `json:"Digest"` Digest *string `json:"Digest,omitempty"`
// A list of annotations associated with this referrer // A list of annotations associated with this referrer
Annotations []*Annotation `json:"Annotations"` Annotations []*Annotation `json:"Annotations"`
} }
@ -255,34 +255,34 @@ type Referrer struct {
// Contains details about the repo: both general information on the repo, and the list of images // Contains details about the repo: both general information on the repo, and the list of images
type RepoInfo struct { type RepoInfo struct {
// List of images in the repo // List of images in the repo
Images []*ImageSummary `json:"Images"` Images []*ImageSummary `json:"Images,omitempty"`
// Details about the repository itself // Details about the repository itself
Summary *RepoSummary `json:"Summary"` Summary *RepoSummary `json:"Summary,omitempty"`
} }
// Details of a specific repo, it is used by queries returning a list of repos // Details of a specific repo, it is used by queries returning a list of repos
type RepoSummary struct { type RepoSummary struct {
// Name of the repository // Name of the repository
Name *string `json:"Name"` Name *string `json:"Name,omitempty"`
// Timestamp of the last update to an image inside this repository // Timestamp of the last update to an image inside this repository
LastUpdated *time.Time `json:"LastUpdated"` LastUpdated *time.Time `json:"LastUpdated,omitempty"`
// Total size of the files within this repository // Total size of the files within this repository
Size *string `json:"Size"` Size *string `json:"Size,omitempty"`
// List of platforms supported by this repository // List of platforms supported by this repository
Platforms []*Platform `json:"Platforms"` Platforms []*Platform `json:"Platforms,omitempty"`
// Vendors associated with this image, the distributing entities, organizations or individuals // Vendors associated with this image, the distributing entities, organizations or individuals
Vendors []*string `json:"Vendors"` Vendors []*string `json:"Vendors,omitempty"`
// Details of the newest image inside the repository // Details of the newest image inside the repository
// NOTE: not the image with the `latest` tag, the one with the most recent created timestamp // NOTE: not the image with the `latest` tag, the one with the most recent created timestamp
NewestImage *ImageSummary `json:"NewestImage"` NewestImage *ImageSummary `json:"NewestImage,omitempty"`
// Total numer of image manifest downloads from this repository // Total numer of image manifest downloads from this repository
DownloadCount *int `json:"DownloadCount"` DownloadCount *int `json:"DownloadCount,omitempty"`
// Number of stars attributed to this repository by users // Number of stars attributed to this repository by users
StarCount *int `json:"StarCount"` StarCount *int `json:"StarCount,omitempty"`
// True if the repository is bookmarked by the current user, false otherwise // True if the repository is bookmarked by the current user, false otherwise
IsBookmarked *bool `json:"IsBookmarked"` IsBookmarked *bool `json:"IsBookmarked,omitempty"`
// True if the repository is stared by the current user, fale otherwise // True if the repository is stared by the current user, fale otherwise
IsStarred *bool `json:"IsStarred"` IsStarred *bool `json:"IsStarred,omitempty"`
} }
// All sort criteria usable with pagination, some of these criteria applies only // All sort criteria usable with pagination, some of these criteria applies only

View file

@ -2,7 +2,7 @@ package search
// This file will be automatically regenerated based on the schema, any resolver implementations // This file will be automatically regenerated based on the schema, any resolver implementations
// will be copied through when generating and any unknown code will be moved to the end. // will be copied through when generating and any unknown code will be moved to the end.
// Code generated by github.com/99designs/gqlgen version v0.17.25 // Code generated by github.com/99designs/gqlgen version v0.17.27
import ( import (
"context" "context"