Skip to content

Commit 75ad91e

Browse files
committed
fix
1 parent 24ce205 commit 75ad91e

File tree

15 files changed

+324
-127
lines changed

15 files changed

+324
-127
lines changed

models/packages/container/search.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func (opts *BlobSearchOptions) toConds() builder.Cond {
4444
cond = cond.And(builder.Eq{"package_version.lower_version": strings.ToLower(opts.Tag)})
4545
}
4646
if opts.IsManifest {
47-
cond = cond.And(builder.Eq{"package_file.lower_name": ManifestFilename})
47+
cond = cond.And(builder.Eq{"package_file.lower_name": container_module.ManifestFilename})
4848
}
4949
if opts.OnlyLead {
5050
cond = cond.And(builder.Eq{"package_file.is_lead": true})
@@ -235,7 +235,7 @@ func SearchImageTags(ctx context.Context, opts *ImageTagsSearchOptions) ([]*pack
235235
func SearchExpiredUploadedBlobs(ctx context.Context, olderThan time.Duration) ([]*packages.PackageFile, error) {
236236
var cond builder.Cond = builder.Eq{
237237
"package_version.is_internal": true,
238-
"package_version.lower_version": UploadVersion,
238+
"package_version.lower_version": container_module.UploadVersion,
239239
"package.type": packages.TypeContainer,
240240
}
241241
cond = cond.And(builder.Lt{"package_file.created_unix": time.Now().Add(-olderThan).Unix()})

modules/packages/nuget/metadata.go

Lines changed: 62 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,24 @@ type Package struct {
5757

5858
// Metadata represents the metadata of a Nuget package
5959
type Metadata struct {
60-
Description string `json:"description,omitempty"`
61-
ReleaseNotes string `json:"release_notes,omitempty"`
62-
Readme string `json:"readme,omitempty"`
63-
Authors string `json:"authors,omitempty"`
64-
ProjectURL string `json:"project_url,omitempty"`
65-
RepositoryURL string `json:"repository_url,omitempty"`
66-
RequireLicenseAcceptance bool `json:"require_license_acceptance"`
67-
Dependencies map[string][]Dependency `json:"dependencies,omitempty"`
60+
Authors string `json:"authors,omitempty"`
61+
Copyright string `json:"copyright,omitempty"`
62+
Description string `json:"description,omitempty"`
63+
DevelopmentDependency bool `json:"development_dependency,omitempty"`
64+
IconURL string `json:"icon_url,omitempty"`
65+
Language string `json:"language,omitempty"`
66+
LicenseURL string `json:"license_url,omitempty"`
67+
MinClientVersion string `json:"min_client_version,omitempty"`
68+
Owners string `json:"owners,omitempty"`
69+
ProjectURL string `json:"project_url,omitempty"`
70+
Readme string `json:"readme,omitempty"`
71+
ReleaseNotes string `json:"release_notes,omitempty"`
72+
RepositoryURL string `json:"repository_url,omitempty"`
73+
RequireLicenseAcceptance bool `json:"require_license_acceptance"`
74+
Tags string `json:"tags,omitempty"`
75+
Title string `json:"title,omitempty"`
76+
77+
Dependencies map[string][]Dependency `json:"dependencies,omitempty"`
6878
}
6979

7080
// Dependency represents a dependency of a Nuget package
@@ -74,24 +84,30 @@ type Dependency struct {
7484
}
7585

7686
// https://learn.microsoft.com/en-us/nuget/reference/nuspec
87+
// https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Core/NuGet.Packaging/compiler/resources/nuspec.xsd
7788
type nuspecPackage struct {
7889
Metadata struct {
79-
ID string `xml:"id"`
80-
Version string `xml:"version"`
81-
Authors string `xml:"authors"`
82-
RequireLicenseAcceptance bool `xml:"requireLicenseAcceptance"`
90+
// required fields
91+
Authors string `xml:"authors"`
92+
Description string `xml:"description"`
93+
ID string `xml:"id"`
94+
Version string `xml:"version"`
95+
96+
// optional fields
97+
Copyright string `xml:"copyright"`
98+
DevelopmentDependency bool `xml:"developmentDependency"`
99+
IconURL string `xml:"iconUrl"`
100+
Language string `xml:"language"`
101+
LicenseURL string `xml:"licenseUrl"`
102+
MinClientVersion string `xml:"minClientVersion,attr"`
103+
Owners string `xml:"owners"`
83104
ProjectURL string `xml:"projectUrl"`
84-
Description string `xml:"description"`
85-
ReleaseNotes string `xml:"releaseNotes"`
86105
Readme string `xml:"readme"`
87-
PackageTypes struct {
88-
PackageType []struct {
89-
Name string `xml:"name,attr"`
90-
} `xml:"packageType"`
91-
} `xml:"packageTypes"`
92-
Repository struct {
93-
URL string `xml:"url,attr"`
94-
} `xml:"repository"`
106+
ReleaseNotes string `xml:"releaseNotes"`
107+
RequireLicenseAcceptance bool `xml:"requireLicenseAcceptance"`
108+
Tags string `xml:"tags"`
109+
Title string `xml:"title"`
110+
95111
Dependencies struct {
96112
Dependency []struct {
97113
ID string `xml:"id,attr"`
@@ -107,6 +123,14 @@ type nuspecPackage struct {
107123
} `xml:"dependency"`
108124
} `xml:"group"`
109125
} `xml:"dependencies"`
126+
PackageTypes struct {
127+
PackageType []struct {
128+
Name string `xml:"name,attr"`
129+
} `xml:"packageType"`
130+
} `xml:"packageTypes"`
131+
Repository struct {
132+
URL string `xml:"url,attr"`
133+
} `xml:"repository"`
110134
} `xml:"metadata"`
111135
}
112136

@@ -167,13 +191,23 @@ func ParseNuspecMetaData(archive *zip.Reader, r io.Reader) (*Package, error) {
167191
}
168192

169193
m := &Metadata{
170-
Description: p.Metadata.Description,
171-
ReleaseNotes: p.Metadata.ReleaseNotes,
172194
Authors: p.Metadata.Authors,
195+
Copyright: p.Metadata.Copyright,
196+
Description: p.Metadata.Description,
197+
DevelopmentDependency: p.Metadata.DevelopmentDependency,
198+
IconURL: p.Metadata.IconURL,
199+
Language: p.Metadata.Language,
200+
LicenseURL: p.Metadata.LicenseURL,
201+
MinClientVersion: p.Metadata.MinClientVersion,
202+
Owners: p.Metadata.Owners,
173203
ProjectURL: p.Metadata.ProjectURL,
204+
ReleaseNotes: p.Metadata.ReleaseNotes,
174205
RepositoryURL: p.Metadata.Repository.URL,
175206
RequireLicenseAcceptance: p.Metadata.RequireLicenseAcceptance,
176-
Dependencies: make(map[string][]Dependency),
207+
Tags: p.Metadata.Tags,
208+
Title: p.Metadata.Title,
209+
210+
Dependencies: make(map[string][]Dependency),
177211
}
178212

179213
if p.Metadata.Readme != "" {
@@ -227,13 +261,13 @@ func ParseNuspecMetaData(archive *zip.Reader, r io.Reader) (*Package, error) {
227261
func toNormalizedVersion(v *version.Version) string {
228262
var buf bytes.Buffer
229263
segments := v.Segments64()
230-
fmt.Fprintf(&buf, "%d.%d.%d", segments[0], segments[1], segments[2])
264+
_, _ = fmt.Fprintf(&buf, "%d.%d.%d", segments[0], segments[1], segments[2])
231265
if len(segments) > 3 && segments[3] > 0 {
232-
fmt.Fprintf(&buf, ".%d", segments[3])
266+
_, _ = fmt.Fprintf(&buf, ".%d", segments[3])
233267
}
234268
pre := v.Prerelease()
235269
if pre != "" {
236-
fmt.Fprint(&buf, "-", pre)
270+
_, _ = fmt.Fprint(&buf, "-", pre)
237271
}
238272
return buf.String()
239273
}

modules/packages/nuget/metadata_test.go

Lines changed: 63 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,44 +12,62 @@ import (
1212
)
1313

1414
const (
15-
id = "System.Gitea"
16-
semver = "1.0.1"
17-
authors = "Gitea Authors"
18-
projectURL = "https://gitea.io"
19-
description = "Package Description"
20-
releaseNotes = "Package Release Notes"
21-
readme = "Readme"
22-
repositoryURL = "https://gitea.io/gitea/gitea"
23-
targetFramework = ".NETStandard2.1"
24-
dependencyID = "System.Text.Json"
25-
dependencyVersion = "5.0.0"
15+
authors = "Gitea Authors"
16+
copyright = "Package Copyright"
17+
dependencyID = "System.Text.Json"
18+
dependencyVersion = "5.0.0"
19+
developmentDependency = true
20+
description = "Package Description"
21+
iconURL = "https://gitea.io/favicon.png"
22+
id = "System.Gitea"
23+
language = "Package Language"
24+
licenseURL = "https://gitea.io/license"
25+
minClientVersion = "1.0.0.0"
26+
owners = "Package Owners"
27+
projectURL = "https://gitea.io"
28+
readme = "Readme"
29+
releaseNotes = "Package Release Notes"
30+
repositoryURL = "https://gitea.io/gitea/gitea"
31+
requireLicenseAcceptance = true
32+
tags = "tag_1 tag_2 tag_3"
33+
targetFramework = ".NETStandard2.1"
34+
title = "Package Title"
35+
versionStr = "1.0.1"
2636
)
2737

2838
const nuspecContent = `<?xml version="1.0" encoding="utf-8"?>
2939
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
30-
<metadata>
31-
<id>` + id + `</id>
32-
<version>` + semver + `</version>
33-
<authors>` + authors + `</authors>
34-
<requireLicenseAcceptance>true</requireLicenseAcceptance>
35-
<projectUrl>` + projectURL + `</projectUrl>
36-
<description>` + description + `</description>
37-
<releaseNotes>` + releaseNotes + `</releaseNotes>
38-
<repository url="` + repositoryURL + `" />
39-
<readme>README.md</readme>
40-
<dependencies>
41-
<group targetFramework="` + targetFramework + `">
42-
<dependency id="` + dependencyID + `" version="` + dependencyVersion + `" exclude="Build,Analyzers" />
43-
</group>
44-
</dependencies>
45-
</metadata>
40+
<metadata minClientVersion="` + minClientVersion + `">
41+
<authors>` + authors + `</authors>
42+
<copyright>` + copyright + `</copyright>
43+
<description>` + description + `</description>
44+
<developmentDependency>true</developmentDependency>
45+
<iconUrl>` + iconURL + `</iconUrl>
46+
<id>` + id + `</id>
47+
<language>` + language + `</language>
48+
<licenseUrl>` + licenseURL + `</licenseUrl>
49+
<owners>` + owners + `</owners>
50+
<projectUrl>` + projectURL + `</projectUrl>
51+
<readme>README.md</readme>
52+
<releaseNotes>` + releaseNotes + `</releaseNotes>
53+
<repository url="` + repositoryURL + `" />
54+
<requireLicenseAcceptance>true</requireLicenseAcceptance>
55+
<tags>` + tags + `</tags>
56+
<title>` + title + `</title>
57+
<version>` + versionStr + `</version>
58+
<dependencies>
59+
<group targetFramework="` + targetFramework + `">
60+
<dependency id="` + dependencyID + `" version="` + dependencyVersion + `" exclude="Build,Analyzers" />
61+
</group>
62+
</dependencies>
63+
</metadata>
4664
</package>`
4765

4866
const symbolsNuspecContent = `<?xml version="1.0" encoding="utf-8"?>
4967
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
5068
<metadata>
5169
<id>` + id + `</id>
52-
<version>` + semver + `</version>
70+
<version>` + versionStr + `</version>
5371
<description>` + description + `</description>
5472
<packageTypes>
5573
<packageType name="SymbolsPackage" />
@@ -140,14 +158,26 @@ func TestParsePackageMetaData(t *testing.T) {
140158
assert.NotNil(t, np)
141159
assert.Equal(t, DependencyPackage, np.PackageType)
142160

143-
assert.Equal(t, id, np.ID)
144-
assert.Equal(t, semver, np.Version)
145161
assert.Equal(t, authors, np.Metadata.Authors)
146-
assert.Equal(t, projectURL, np.Metadata.ProjectURL)
147162
assert.Equal(t, description, np.Metadata.Description)
148-
assert.Equal(t, releaseNotes, np.Metadata.ReleaseNotes)
163+
assert.Equal(t, id, np.ID)
164+
assert.Equal(t, versionStr, np.Version)
165+
166+
assert.Equal(t, copyright, np.Metadata.Copyright)
167+
assert.Equal(t, developmentDependency, np.Metadata.DevelopmentDependency)
168+
assert.Equal(t, iconURL, np.Metadata.IconURL)
169+
assert.Equal(t, language, np.Metadata.Language)
170+
assert.Equal(t, licenseURL, np.Metadata.LicenseURL)
171+
assert.Equal(t, minClientVersion, np.Metadata.MinClientVersion)
172+
assert.Equal(t, owners, np.Metadata.Owners)
173+
assert.Equal(t, projectURL, np.Metadata.ProjectURL)
149174
assert.Equal(t, readme, np.Metadata.Readme)
175+
assert.Equal(t, releaseNotes, np.Metadata.ReleaseNotes)
150176
assert.Equal(t, repositoryURL, np.Metadata.RepositoryURL)
177+
assert.Equal(t, requireLicenseAcceptance, np.Metadata.RequireLicenseAcceptance)
178+
assert.Equal(t, tags, np.Metadata.Tags)
179+
assert.Equal(t, title, np.Metadata.Title)
180+
151181
assert.Len(t, np.Metadata.Dependencies, 1)
152182
assert.Contains(t, np.Metadata.Dependencies, targetFramework)
153183
deps := np.Metadata.Dependencies[targetFramework]
@@ -180,7 +210,7 @@ func TestParsePackageMetaData(t *testing.T) {
180210
assert.Equal(t, SymbolsPackage, np.PackageType)
181211

182212
assert.Equal(t, id, np.ID)
183-
assert.Equal(t, semver, np.Version)
213+
assert.Equal(t, versionStr, np.Version)
184214
assert.Equal(t, description, np.Metadata.Description)
185215
assert.Empty(t, np.Metadata.Dependencies)
186216
})

modules/packages/nuget/symbol_extractor.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ type PortablePdbList []*PortablePdb
3434

3535
func (l PortablePdbList) Close() {
3636
for _, pdb := range l {
37-
pdb.Content.Close()
37+
_ = pdb.Content.Close()
3838
}
3939
}
4040

@@ -65,20 +65,20 @@ func ExtractPortablePdb(r io.ReaderAt, size int64) (PortablePdbList, error) {
6565

6666
buf, err := packages.CreateHashedBufferFromReader(f)
6767

68-
f.Close()
68+
_ = f.Close()
6969

7070
if err != nil {
7171
return err
7272
}
7373

7474
id, err := ParseDebugHeaderID(buf)
7575
if err != nil {
76-
buf.Close()
76+
_ = buf.Close()
7777
return fmt.Errorf("Invalid PDB file: %w", err)
7878
}
7979

8080
if _, err := buf.Seek(0, io.SeekStart); err != nil {
81-
buf.Close()
81+
_ = buf.Close()
8282
return err
8383
}
8484

modules/packages/nuget/symbol_extractor_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ func TestExtractPortablePdb(t *testing.T) {
2424
var buf bytes.Buffer
2525
archive := zip.NewWriter(&buf)
2626
w, _ := archive.Create(name)
27-
w.Write(content)
28-
archive.Close()
27+
_, _ = w.Write(content)
28+
_ = archive.Close()
2929
return buf.Bytes()
3030
}
3131

3232
t.Run("MissingPdbFiles", func(t *testing.T) {
3333
var buf bytes.Buffer
34-
zip.NewWriter(&buf).Close()
34+
_ = zip.NewWriter(&buf).Close()
3535

3636
pdbs, err := ExtractPortablePdb(bytes.NewReader(buf.Bytes()), int64(buf.Len()))
3737
assert.ErrorIs(t, err, ErrMissingPdbFiles)

routers/api/packages/container/blob.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ func getOrCreateUploadVersion(ctx context.Context, pi *packages_service.PackageI
130130
pv := &packages_model.PackageVersion{
131131
PackageID: p.ID,
132132
CreatorID: pi.Owner.ID,
133-
Version: container_model.UploadVersion,
134-
LowerVersion: container_model.UploadVersion,
133+
Version: container_module.UploadVersion,
134+
LowerVersion: container_module.UploadVersion,
135135
IsInternal: true,
136136
MetadataJSON: "null",
137137
}

routers/api/packages/container/manifest.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ func processOciImageManifest(ctx context.Context, mci *manifestCreationInfo, buf
151151
return err
152152
}
153153

154-
uploadVersion, err := packages_model.GetInternalVersionByNameAndVersion(ctx, mci.Owner.ID, packages_model.TypeContainer, mci.Image, container_model.UploadVersion)
154+
uploadVersion, err := packages_model.GetInternalVersionByNameAndVersion(ctx, mci.Owner.ID, packages_model.TypeContainer, mci.Image, container_module.UploadVersion)
155155
if err != nil && err != packages_model.ErrPackageNotExist {
156156
return err
157157
}
@@ -492,7 +492,7 @@ func createManifestBlob(ctx context.Context, mci *manifestCreationInfo, pv *pack
492492
pf, err := createFileFromBlobReference(ctx, pv, nil, &blobReference{
493493
Digest: digest.Digest(manifestDigest),
494494
MediaType: mci.MediaType,
495-
Name: container_model.ManifestFilename,
495+
Name: container_module.ManifestFilename,
496496
File: &packages_model.PackageFileDescriptor{Blob: pb},
497497
ExpectedSize: pb.Size,
498498
IsLead: true,
@@ -505,7 +505,7 @@ func createManifestBlob(ctx context.Context, mci *manifestCreationInfo, pv *pack
505505
OwnerID: mci.Owner.ID,
506506
PackageType: packages_model.TypeContainer,
507507
VersionID: pv.ID,
508-
Query: container_model.ManifestFilename,
508+
Query: container_module.ManifestFilename,
509509
})
510510
if err != nil {
511511
return nil, false, "", err

0 commit comments

Comments
 (0)