Skip to content

Commit 1510c73

Browse files
committedApr 15, 2020
Address feedbacks (second round)
Signed-off-by: Vu Dinh <[email protected]>
1 parent 85c26c9 commit 1510c73

File tree

11 files changed

+173
-210
lines changed

11 files changed

+173
-210
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
dependencies:
22
- type: olm.package
3-
packageName: test-operator
4-
version: ">0.2.0"
3+
packageName: testoperator
4+
version: "> 0.2.0"

‎pkg/api/registry.pb.go

+52-77
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎pkg/api/registry.proto

+3-6
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ service Registry {
1212
rpc GetChannelEntriesThatProvide(GetAllProvidersRequest) returns (stream ChannelEntry) {}
1313
rpc GetLatestChannelEntriesThatProvide(GetLatestProvidersRequest) returns (stream ChannelEntry) {}
1414
rpc GetDefaultBundleThatProvides(GetDefaultProviderRequest) returns (Bundle) {}
15-
rpc ListBundles(ListBundlesRequest) returns (stream Bundle) {}
15+
rpc ListBundles(ListBundlesRequest) returns (stream Bundle) {}
1616
}
1717

1818

@@ -40,10 +40,7 @@ message GroupVersionKind{
4040

4141
message Dependency{
4242
string type = 1;
43-
string name = 2;
44-
string group = 3;
45-
string version = 4;
46-
string kind = 5;
43+
string value = 2;
4744
}
4845

4946
message Bundle{
@@ -57,7 +54,7 @@ message Bundle{
5754
repeated GroupVersionKind requiredApis = 8;
5855
string version = 9;
5956
string skipRange = 10;
60-
repeated Dependency dependencies = 11;
57+
repeated Dependency dependencies = 11;
6158
}
6259

6360
message ChannelEntry{

‎pkg/registry/bundle.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ type Bundle struct {
3535
BundleImage string
3636
csv *ClusterServiceVersion
3737
crds []*v1beta1.CustomResourceDefinition
38-
Dependencies []Dependency
38+
Dependencies []*Dependency
3939
cacheStale bool
4040
}
4141

‎pkg/registry/populator.go

+44-11
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package registry
22

33
import (
44
"context"
5+
"encoding/json"
56
"errors"
67
"fmt"
78
"io/ioutil"
@@ -16,9 +17,9 @@ import (
1617
"github.com/operator-framework/operator-registry/pkg/image"
1718
)
1819

19-
const (
20-
DependenciesFileName = "dependencies.yaml"
21-
)
20+
type Dependencies struct {
21+
RawMessage []map[string]string `json:"dependencies" yaml:"dependencies"`
22+
}
2223

2324
// DirectoryPopulator loads an unpacked operator bundle from a directory into the database.
2425
type DirectoryPopulator struct {
@@ -62,13 +63,12 @@ func (i *DirectoryPopulator) Populate(mode Mode) error {
6263
log.Info("found annotations file searching for csv")
6364
continue
6465
}
65-
if f.Name() == DependenciesFileName {
66-
err = decodeFile(filepath.Join(metadata, f.Name()), dependenciesFile)
67-
if err != nil {
68-
log.Info("unable to parse dependencies.yaml file")
69-
} else {
70-
log.Info("found dependencies file searching for csv")
71-
}
66+
67+
err = parseDependenciesFile(filepath.Join(metadata, f.Name()), dependenciesFile)
68+
if err != nil || len(dependenciesFile.Dependencies) < 1 {
69+
continue
70+
} else {
71+
log.Info("found dependencies file searching for csv")
7272
}
7373
}
7474

@@ -112,7 +112,7 @@ func (i *DirectoryPopulator) loadManifests(manifests string, annotationsFile *An
112112
// set the bundleimage on the bundle
113113
bundle.BundleImage = i.to.String()
114114
// set the dependencies on the bundle
115-
bundle.Dependencies = dependenciesFile.Dependencies
115+
bundle.Dependencies = dependenciesFile.GetDependencies()
116116

117117
bundle.Name = csvName
118118
bundle.Package = annotationsFile.Annotations.PackageName
@@ -340,3 +340,36 @@ func decodeFile(path string, into interface{}) error {
340340

341341
return decoder.Decode(into)
342342
}
343+
344+
func parseDependenciesFile(path string, depFile *DependenciesFile) error {
345+
deps := Dependencies{}
346+
err := decodeFile(path, &deps)
347+
if err != nil || len(deps.RawMessage) == 0 {
348+
return fmt.Errorf("Unable to decode the dependencies file %s", path)
349+
}
350+
depList := []Dependency{}
351+
for _, v := range deps.RawMessage {
352+
// convert map to json
353+
jsonStr, _ := json.Marshal(v)
354+
fmt.Println(string(jsonStr))
355+
356+
// Check dependency type
357+
dep := Dependency{}
358+
err := json.Unmarshal(jsonStr, &dep)
359+
if err != nil {
360+
return err
361+
}
362+
363+
switch dep.GetType() {
364+
case "olm.gvk", "olm.package":
365+
dep.Value = string(jsonStr)
366+
default:
367+
return fmt.Errorf("Unsupported dependency type %s", dep.GetType())
368+
}
369+
depList = append(depList, dep)
370+
}
371+
372+
depFile.Dependencies = depList
373+
374+
return nil
375+
}

‎pkg/registry/populator_test.go

+10-19
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,8 @@ func TestQuerierForImage(t *testing.T) {
118118
SkipRange: "",
119119
Dependencies: []*api.Dependency{
120120
{
121-
Type: "olm.gvk",
122-
Group: "testapi.coreos.com",
123-
Kind: "testapi",
124-
Version: "v1",
121+
Type: "olm.gvk",
122+
Value: `{"group":"testapi.coreos.com","kind":"testapi","type":"olm.gvk","version":"v1"}`,
125123
},
126124
},
127125
ProvidedApis: []*api.GroupVersionKind{
@@ -351,15 +349,12 @@ func TestQuerierForDependencies(t *testing.T) {
351349

352350
expectedDependencies := []*api.Dependency{
353351
{
354-
Type: "olm.package",
355-
Name: "test-operator",
356-
Version: ">0.2.0",
352+
Type: "olm.package",
353+
Value: `{"packageName":"testoperator","type":"olm.package","version":"\u003e 0.2.0"}`,
357354
},
358355
{
359-
Type: "olm.gvk",
360-
Group: "testapi.coreos.com",
361-
Kind: "testapi",
362-
Version: "v1",
356+
Type: "olm.gvk",
357+
Value: `{"group":"testapi.coreos.com","kind":"testapi","type":"olm.gvk","version":"v1"}`,
363358
},
364359
}
365360

@@ -401,15 +396,12 @@ func TestListBundles(t *testing.T) {
401396

402397
expectedDependencies := []*api.Dependency{
403398
{
404-
Type: "olm.package",
405-
Name: "test-operator",
406-
Version: ">0.2.0",
399+
Type: "olm.package",
400+
Value: `{"packageName":"testoperator","type":"olm.package","version":"\u003e 0.2.0"}`,
407401
},
408402
{
409-
Type: "olm.gvk",
410-
Group: "testapi.coreos.com",
411-
Kind: "testapi",
412-
Version: "v1",
403+
Type: "olm.gvk",
404+
Value: `{"group":"testapi.coreos.com","kind":"testapi","type":"olm.gvk","version":"v1"}`,
413405
},
414406
}
415407

@@ -418,7 +410,6 @@ func TestListBundles(t *testing.T) {
418410
require.NoError(t, err)
419411
for _, b := range bundles {
420412
dep := b.Dependencies
421-
fmt.Printf("Dep: %v\n", dep)
422413
dependencies = append(dependencies, dep...)
423414
}
424415
require.ElementsMatch(t, expectedDependencies, dependencies)

‎pkg/registry/types.go

+19-32
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,11 @@ type Dependency struct {
126126
// dependency or `olm.gvk` for gvk based dependency. This field is required.
127127
Type string `json:"type" yaml:"type"`
128128

129-
// The name of dependency such as 'etcd'
130-
Name string `json:"packageName" yaml:"packageName"`
129+
// The value of the dependency (either GVKDependency or PackageDependency)
130+
Value string `json:"value" yaml:"value"`
131+
}
131132

133+
type GVKDependency struct {
132134
// The group of GVK based dependency
133135
Group string `json:"group" yaml:"group"`
134136

@@ -139,42 +141,27 @@ type Dependency struct {
139141
Version string `json:"version" yaml:"version"`
140142
}
141143

142-
// GetType returns the type of dependency
143-
func (e *Dependency) GetType() string {
144-
if e.Type != "" {
145-
return e.Type
146-
}
147-
return ""
148-
}
149-
150-
// GetName returns the package name of dependency
151-
func (e *Dependency) GetName() string {
152-
if e.Name != "" {
153-
return e.Name
154-
}
155-
return ""
156-
}
144+
type PackageDependency struct {
145+
// The name of dependency such as 'etcd'
146+
PackageName string `json:"packageName" yaml:"packageName"`
157147

158-
// GetGroup returns the group name of dependency
159-
func (e *Dependency) GetGroup() string {
160-
if e.Group != "" {
161-
return e.Group
162-
}
163-
return ""
148+
// The version of dependency in semver format
149+
Version string `json:"version" yaml:"version"`
164150
}
165151

166-
// GetKind returns the kind of dependency
167-
func (e *Dependency) GetKind() string {
168-
if e.Kind != "" {
169-
return e.Kind
152+
// GetDependencies returns the list of dependency
153+
func (d *DependenciesFile) GetDependencies() []*Dependency {
154+
var dependencies []*Dependency
155+
for _, item := range d.Dependencies {
156+
dependencies = append(dependencies, &item)
170157
}
171-
return ""
158+
return dependencies
172159
}
173160

174-
// GetVersion returns the version of dependency
175-
func (e *Dependency) GetVersion() string {
176-
if e.Version != "" {
177-
return e.Version
161+
// GetType returns the type of dependency
162+
func (e *Dependency) GetType() string {
163+
if e.Type != "" {
164+
return e.Type
178165
}
179166
return ""
180167
}

‎pkg/sqlite/load.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -755,7 +755,7 @@ func (s *SQLLoader) AddBundlePackageChannels(manifest registry.PackageManifest,
755755
}
756756

757757
func (s *SQLLoader) addDependencies(tx *sql.Tx, bundle *registry.Bundle) error {
758-
addDep, err := tx.Prepare("insert into dependencies(type, package_name, group_name, version, kind, operatorbundle_name, operatorbundle_version, operatorbundle_path) values(?, ?, ?, ?, ?, ?, ?, ?)")
758+
addDep, err := tx.Prepare("insert into dependencies(type, value, operatorbundle_name, operatorbundle_version, operatorbundle_path) values(?, ?, ?, ?, ?)")
759759
if err != nil {
760760
return err
761761
}
@@ -770,7 +770,7 @@ func (s *SQLLoader) addDependencies(tx *sql.Tx, bundle *registry.Bundle) error {
770770
return sql.NullString{String: s, Valid: s != ""}
771771
}
772772
for _, dep := range bundle.Dependencies {
773-
if _, err := addDep.Exec(dep.Type, dep.Name, dep.Group, dep.Version, dep.Kind, bundle.Name, sqlString(bundleVersion), sqlString(bundle.BundleImage)); err != nil {
773+
if _, err := addDep.Exec(dep.Type, dep.Value, bundle.Name, sqlString(bundleVersion), sqlString(bundle.BundleImage)); err != nil {
774774
return err
775775
}
776776
}

‎pkg/sqlite/migrations/008_dependencies.go

+14-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package migrations
33
import (
44
"context"
55
"database/sql"
6+
"encoding/json"
67

78
"github.com/operator-framework/operator-registry/pkg/registry"
89
)
@@ -20,10 +21,7 @@ var dependenciesMigration = &Migration{
2021
sql := `
2122
CREATE TABLE IF NOT EXISTS dependencies (
2223
type TEXT,
23-
package_name TEXT,
24-
group_name TEXT,
25-
version TEXT,
26-
kind TEXT,
24+
value TEXT,
2725
operatorbundle_name TEXT,
2826
operatorbundle_version TEXT,
2927
operatorbundle_path TEXT,
@@ -35,15 +33,25 @@ var dependenciesMigration = &Migration{
3533
return err
3634
}
3735

38-
insertRequired := `INSERT INTO dependencies(type, package_name, group_name, version, kind, operatorbundle_name, operatorbundle_version, operatorbundle_path) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`
36+
insertRequired := `INSERT INTO dependencies(type, value, operatorbundle_name, operatorbundle_version, operatorbundle_path) VALUES (?, ?, ?, ?, ?)`
3937

4038
bundleApis, err := getRequiredAPIs(ctx, tx)
4139
if err != nil {
4240
return err
4341
}
4442
for bundle, apis := range bundleApis {
4543
for required := range apis.required {
46-
_, err := tx.ExecContext(ctx, insertRequired, "olm.gvk", nil, required.Group, required.Version, required.Kind, bundle.CsvName, bundle.Version, bundle.BundlePath)
44+
valueMap := map[string]string{
45+
"type": "olm.gvk",
46+
"group": required.Group,
47+
"version": required.Version,
48+
"kind": required.Kind,
49+
}
50+
value, err := json.Marshal(valueMap)
51+
if err != nil {
52+
return err
53+
}
54+
_, err = tx.ExecContext(ctx, insertRequired, "olm.gvk", value, bundle.CsvName, bundle.Version, bundle.BundlePath)
4755
if err != nil {
4856
return err
4957
}

‎pkg/sqlite/migrations/008_dependencies_test.go

+11-22
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,18 @@ func TestDependenciesUp(t *testing.T) {
3131
err = migrator.Up(context.TODO(), migrations.Only(migrations.DependenciesMigrationKey))
3232
require.NoError(t, err)
3333

34-
depQuery := `SELECT DISTINCT type, package_name, group_name, version, kind FROM dependencies
34+
depQuery := `SELECT DISTINCT type, value FROM dependencies
3535
WHERE operatorbundle_name=? AND operatorbundle_version=? AND operatorbundle_path=?`
3636

3737
rows, err := db.Query(depQuery, "etcdoperator.v0.6.1", "0.6.1", "quay.io/image")
3838
require.NoError(t, err)
3939
defer rows.Close()
4040
rows.Next()
4141
var typeName sql.NullString
42-
var name sql.NullString
43-
var group sql.NullString
44-
var version sql.NullString
45-
var kind sql.NullString
46-
require.NoError(t, rows.Scan(&typeName, &name, &group, &version, &kind))
42+
var value sql.NullString
43+
require.NoError(t, rows.Scan(&typeName, &value))
4744
require.Equal(t, typeName.String, "olm.gvk")
48-
require.Equal(t, name.String, "")
49-
require.Equal(t, group.String, "test.coreos.com")
50-
require.Equal(t, version.String, "v1")
51-
require.Equal(t, kind.String, "testapi")
45+
require.Equal(t, value.String, `{"group":"test.coreos.com","kind":"testapi","type":"olm.gvk","version":"v1"}`)
5246
require.NoError(t, rows.Close())
5347
}
5448

@@ -67,35 +61,30 @@ func TestDependenciesDown(t *testing.T) {
6761
insert := "insert into operatorbundle(name, csv, bundle, bundlepath, version, skiprange, replaces, skips) values(?, ?, ?, ?, ?, ?, ?, ?)"
6862
_, err = db.Exec(insert, "etcdoperator.v0.6.1", testCSV, testBundle, "quay.io/image", "0.6.1", ">0.5.0 <0.6.1", "0.9.0", "0.9.1,0.9.2")
6963
require.NoError(t, err)
70-
_, err = db.Exec("insert into dependencies(type, package_name, group_name, version, kind, operatorbundle_name, operatorbundle_version, operatorbundle_path) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", "olm.package", "etcd-operator", "", "0.6.0", "", "etcdoperator.v0.6.1", "0.6.1", "quay.io/image")
64+
valueStr := `{"packageName":"etcd-operator","type":"olm.package","version":">0.6.0"}`
65+
_, err = db.Exec("insert into dependencies(type, value, operatorbundle_name, operatorbundle_version, operatorbundle_path) VALUES (?, ?, ?, ?, ?)", "olm.package", valueStr, "etcdoperator.v0.6.1", "0.6.1", "quay.io/image")
7166
require.NoError(t, err)
7267
require.NoError(t, tx.Commit())
7368

74-
depQuery := `SELECT DISTINCT type, package_name, group_name, version, kind FROM dependencies
69+
depQuery := `SELECT DISTINCT type, value FROM dependencies
7570
WHERE operatorbundle_name=? AND operatorbundle_version=? AND operatorbundle_path=?`
7671

7772
rows, err := db.Query(depQuery, "etcdoperator.v0.6.1", "0.6.1", "quay.io/image")
7873
require.NoError(t, err)
7974
defer rows.Close()
8075
rows.Next()
8176
var typeName sql.NullString
82-
var name sql.NullString
83-
var group sql.NullString
84-
var version sql.NullString
85-
var kind sql.NullString
86-
require.NoError(t, rows.Scan(&typeName, &name, &group, &version, &kind))
77+
var value sql.NullString
78+
require.NoError(t, rows.Scan(&typeName, &value))
8779
require.Equal(t, typeName.String, "olm.package")
88-
require.Equal(t, name.String, "etcd-operator")
89-
require.Equal(t, group.String, "")
90-
require.Equal(t, version.String, "0.6.0")
91-
require.Equal(t, kind.String, "")
80+
require.Equal(t, value.String, valueStr)
9281
require.NoError(t, rows.Close())
9382

9483
// run down migration
9584
err = migrator.Down(context.TODO(), migrations.Only(migrations.DependenciesMigrationKey))
9685
require.NoError(t, err)
9786

9887
// check that no dependencies were extracted.
99-
rows, err = db.Query(depQuery, "etcdoperator.v0.6.1", "0.6.1", "quay.io/image")
88+
rows, _ = db.Query(depQuery, "etcdoperator.v0.6.1", "0.6.1", "quay.io/image")
10089
require.False(t, rows.Next())
10190
}

‎pkg/sqlite/query.go

+15-32
Original file line numberDiff line numberDiff line change
@@ -783,14 +783,13 @@ func (s *SQLQuerier) GetCurrentCSVNameForChannel(ctx context.Context, pkgName, c
783783

784784
func (s *SQLQuerier) ListBundles(ctx context.Context) (bundles []*api.Bundle, err error) {
785785
query := `SELECT DISTINCT channel_entry.entry_id, operatorbundle.bundle, operatorbundle.bundlepath,
786-
MIN(channel_entry.depth), channel_entry.operatorbundle_name, channel_entry.package_name,
787-
channel_entry.channel_name, channel_entry.replaces, operatorbundle.version, operatorbundle.skiprange,
788-
dependencies.type, dependencies.package_name, dependencies.group_name, dependencies.version, dependencies.kind
786+
channel_entry.operatorbundle_name, channel_entry.package_name, channel_entry.channel_name, channel_entry.replaces,
787+
operatorbundle.version, operatorbundle.skiprange,
788+
dependencies.type, dependencies.value
789789
FROM channel_entry
790790
INNER JOIN operatorbundle ON operatorbundle.name = channel_entry.operatorbundle_name
791791
INNER JOIN dependencies ON dependencies.operatorbundle_name = channel_entry.operatorbundle_name
792-
INNER JOIN package ON package.name = channel_entry.package_name
793-
GROUP BY channel_entry.package_name, channel_entry.channel_name`
792+
INNER JOIN package ON package.name = channel_entry.package_name`
794793

795794
rows, err := s.db.QueryContext(ctx, query)
796795
if err != nil {
@@ -804,19 +803,15 @@ func (s *SQLQuerier) ListBundles(ctx context.Context) (bundles []*api.Bundle, er
804803
var entryID sql.NullInt64
805804
var bundle sql.NullString
806805
var bundlePath sql.NullString
807-
var minDepth sql.NullInt64
808806
var bundleName sql.NullString
809807
var pkgName sql.NullString
810808
var channelName sql.NullString
811809
var replaces sql.NullString
812810
var version sql.NullString
813811
var skipRange sql.NullString
814812
var depType sql.NullString
815-
var depPkgName sql.NullString
816-
var depGroup sql.NullString
817-
var depVersion sql.NullString
818-
var depKind sql.NullString
819-
if err := rows.Scan(&entryID, &bundle, &bundlePath, &minDepth, &bundleName, &pkgName, &channelName, &replaces, &version, &skipRange, &depType, &depPkgName, &depGroup, &depVersion, &depKind); err != nil {
813+
var depValue sql.NullString
814+
if err := rows.Scan(&entryID, &bundle, &bundlePath, &bundleName, &pkgName, &channelName, &replaces, &version, &skipRange, &depType, &depValue); err != nil {
820815
return nil, err
821816
}
822817

@@ -826,10 +821,7 @@ func (s *SQLQuerier) ListBundles(ctx context.Context) (bundles []*api.Bundle, er
826821
// Create new dependency object
827822
dep := &api.Dependency{}
828823
dep.Type = depType.String
829-
dep.Name = depPkgName.String
830-
dep.Group = depGroup.String
831-
dep.Version = depVersion.String
832-
dep.Kind = depKind.String
824+
dep.Value = depValue.String
833825

834826
// Add new dependency to the existing list
835827
existingDeps := bundleItem.Dependencies
@@ -863,10 +855,7 @@ func (s *SQLQuerier) ListBundles(ctx context.Context) (bundles []*api.Bundle, er
863855
dep := &api.Dependency{}
864856
dependencies := []*api.Dependency{}
865857
dep.Type = depType.String
866-
dep.Name = depPkgName.String
867-
dep.Group = depGroup.String
868-
dep.Version = depVersion.String
869-
dep.Kind = depKind.String
858+
dep.Value = depValue.String
870859
dependencies = append(dependencies, dep)
871860
out.Dependencies = dependencies
872861

@@ -889,7 +878,7 @@ func unique(deps []*api.Dependency) []*api.Dependency {
889878
keys := make(map[string]bool)
890879
list := []*api.Dependency{}
891880
for _, entry := range deps {
892-
depKey := fmt.Sprintf("%s/%s/%s/%s/%s", entry.Type, entry.Name, entry.Group, entry.Version, entry.Kind)
881+
depKey := fmt.Sprintf("%s/%s", entry.Type, entry.Value)
893882
if _, value := keys[depKey]; !value {
894883
keys[depKey] = true
895884
list = append(list, entry)
@@ -899,7 +888,7 @@ func unique(deps []*api.Dependency) []*api.Dependency {
899888
}
900889

901890
func (s *SQLQuerier) GetDependenciesForBundle(ctx context.Context, name, version, path string) (dependencies []*api.Dependency, err error) {
902-
depQuery := `SELECT DISTINCT dependencies.type, dependencies.package_name, dependencies.group_name, dependencies.version, dependencies.kind FROM dependencies
891+
depQuery := `SELECT DISTINCT dependencies.type, dependencies.value FROM dependencies
903892
WHERE dependencies.operatorbundle_name=? AND dependencies.operatorbundle_version=? AND dependencies.operatorbundle_path=?`
904893

905894
rows, err := s.db.QueryContext(ctx, depQuery, name, version, path)
@@ -909,23 +898,17 @@ func (s *SQLQuerier) GetDependenciesForBundle(ctx context.Context, name, version
909898
dependencies = []*api.Dependency{}
910899
for rows.Next() {
911900
var typeName sql.NullString
912-
var packageName sql.NullString
913-
var groupName sql.NullString
914-
var versionName sql.NullString
915-
var kindName sql.NullString
901+
var value sql.NullString
916902

917-
if err := rows.Scan(&typeName, &packageName, &groupName, &versionName, &kindName); err != nil {
903+
if err := rows.Scan(&typeName, &value); err != nil {
918904
return nil, err
919905
}
920-
if !typeName.Valid || !packageName.Valid || !groupName.Valid || !versionName.Valid || !kindName.Valid {
906+
if !typeName.Valid || !value.Valid {
921907
return nil, err
922908
}
923909
dependencies = append(dependencies, &api.Dependency{
924-
Type: typeName.String,
925-
Name: packageName.String,
926-
Group: groupName.String,
927-
Version: versionName.String,
928-
Kind: kindName.String,
910+
Type: typeName.String,
911+
Value: value.String,
929912
})
930913
}
931914
if err := rows.Close(); err != nil {

0 commit comments

Comments
 (0)
Please sign in to comment.