0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-07-26 11:04:27 -04:00

Made it so that Tags and the License display is Visual Studio.

This commit is contained in:
Scion 2025-07-02 21:03:32 -07:00
parent 343d9127c0
commit 71f2ed2d7b

View File

@ -53,16 +53,23 @@ type RegistrationIndexPageItem struct {
// https://docs.microsoft.com/en-us/nuget/api/registration-base-url-resource#catalog-entry // https://docs.microsoft.com/en-us/nuget/api/registration-base-url-resource#catalog-entry
type CatalogEntry struct { type CatalogEntry struct {
CatalogLeafURL string `json:"@id"` CatalogLeafURL string `json:"@id"`
PackageContentURL string `json:"packageContent"`
ID string `json:"id"`
Version string `json:"version"`
Description string `json:"description"`
ReleaseNotes string `json:"releaseNotes"`
Authors string `json:"authors"` Authors string `json:"authors"`
RequireLicenseAcceptance bool `json:"requireLicenseAcceptance"` Copyright string `json:"copyright"`
ProjectURL string `json:"projectUrl"`
IconURL string `json:"iconUrl"`
DependencyGroups []*PackageDependencyGroup `json:"dependencyGroups"` DependencyGroups []*PackageDependencyGroup `json:"dependencyGroups"`
Description string `json:"description"`
IconURL string `json:"iconUrl"`
ID string `json:"id"`
IsPrerelease bool `json:"isPrerelease"`
Language string `json:"language"`
LicenseURL string `json:"licenseUrl"`
PackageContentURL string `json:"packageContent"`
ProjectURL string `json:"projectUrl"`
RequireLicenseAcceptance bool `json:"requireLicenseAcceptance"`
Summary string `json:"summary"`
Tags string `json:"tags"`
Version string `json:"version"`
ReleaseNotes string `json:"releaseNotes"`
Published time.Time `json:"published"`
} }
// https://docs.microsoft.com/en-us/nuget/api/registration-base-url-resource#package-dependency-group // https://docs.microsoft.com/en-us/nuget/api/registration-base-url-resource#package-dependency-group
@ -111,16 +118,23 @@ func createRegistrationIndexPageItem(l *linkBuilder, pd *packages_model.PackageD
PackageContentURL: l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version), PackageContentURL: l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version),
CatalogEntry: &CatalogEntry{ CatalogEntry: &CatalogEntry{
CatalogLeafURL: l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version), CatalogLeafURL: l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version),
PackageContentURL: l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version),
ID: pd.Package.Name,
Version: pd.Version.Version,
Description: metadata.Description,
ReleaseNotes: metadata.ReleaseNotes,
Authors: metadata.Authors, Authors: metadata.Authors,
RequireLicenseAcceptance: metadata.RequireLicenseAcceptance, Copyright: metadata.Copyright,
ProjectURL: metadata.ProjectURL,
IconURL: metadata.IconURL,
DependencyGroups: createDependencyGroups(pd), DependencyGroups: createDependencyGroups(pd),
Description: metadata.Description,
IconURL: metadata.IconURL,
ID: pd.Package.Name,
IsPrerelease: pd.Version.IsPrerelease(),
Language: metadata.Language,
LicenseURL: metadata.LicenseURL,
PackageContentURL: l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version),
ProjectURL: metadata.ProjectURL,
RequireLicenseAcceptance: metadata.RequireLicenseAcceptance,
Summary: metadata.Summary,
Tags: metadata.Tags,
Version: pd.Version.Version,
ReleaseNotes: metadata.ReleaseNotes,
Published: pd.Version.CreatedUnix.AsLocalTime(),
}, },
} }
} }
@ -150,20 +164,40 @@ func createDependencyGroups(pd *packages_model.PackageDescriptor) []*PackageDepe
type RegistrationLeafResponse struct { type RegistrationLeafResponse struct {
RegistrationLeafURL string `json:"@id"` RegistrationLeafURL string `json:"@id"`
Type []string `json:"@type"` Type []string `json:"@type"`
Listed bool `json:"listed"`
PackageContentURL string `json:"packageContent"` PackageContentURL string `json:"packageContent"`
Published time.Time `json:"published"`
RegistrationIndexURL string `json:"registration"` RegistrationIndexURL string `json:"registration"`
CatalogEntry CatalogEntry `json:"catalogEntry"`
} }
func createRegistrationLeafResponse(l *linkBuilder, pd *packages_model.PackageDescriptor) *RegistrationLeafResponse { func createRegistrationLeafResponse(l *linkBuilder, pd *packages_model.PackageDescriptor) *RegistrationLeafResponse {
registrationLeafURL := l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version)
packageDownloadURL := l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version)
metadata := pd.Metadata.(*nuget_module.Metadata)
return &RegistrationLeafResponse{ return &RegistrationLeafResponse{
Type: []string{"Package", "http://schema.nuget.org/catalog#Permalink"}, RegistrationLeafURL: registrationLeafURL,
Listed: true,
Published: pd.Version.CreatedUnix.AsLocalTime(),
RegistrationLeafURL: l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version),
PackageContentURL: l.GetPackageDownloadURL(pd.Package.Name, pd.Version.Version),
RegistrationIndexURL: l.GetRegistrationIndexURL(pd.Package.Name), RegistrationIndexURL: l.GetRegistrationIndexURL(pd.Package.Name),
PackageContentURL: packageDownloadURL,
Type: []string{"Package", "http://schema.nuget.org/catalog#Permalink"},
CatalogEntry: CatalogEntry{
CatalogLeafURL: registrationLeafURL,
Authors: metadata.Authors,
Copyright: metadata.Copyright,
DependencyGroups: createDependencyGroups(pd),
Description: metadata.Description,
IconURL: metadata.IconURL,
ID: pd.Package.Name,
IsPrerelease: pd.Version.IsPrerelease(),
Language: metadata.Language,
LicenseURL: metadata.LicenseURL,
PackageContentURL: packageDownloadURL,
ProjectURL: metadata.ProjectURL,
RequireLicenseAcceptance: metadata.RequireLicenseAcceptance,
Summary: metadata.Summary,
Tags: metadata.Tags,
Version: pd.Version.Version,
ReleaseNotes: metadata.ReleaseNotes,
Published: pd.Version.CreatedUnix.AsLocalTime(),
},
} }
} }
@ -193,6 +227,7 @@ type SearchResultResponse struct {
type SearchResult struct { type SearchResult struct {
Authors string `json:"authors"` Authors string `json:"authors"`
Copyright string `json:"copyright"` Copyright string `json:"copyright"`
DependencyGroups []*PackageDependencyGroup `json:"dependencyGroups"`
Description string `json:"description"` Description string `json:"description"`
IconURL string `json:"iconUrl"` IconURL string `json:"iconUrl"`
ID string `json:"id"` ID string `json:"id"`
@ -204,6 +239,7 @@ type SearchResult struct {
Summary string `json:"summary"` Summary string `json:"summary"`
Tags string `json:"tags"` Tags string `json:"tags"`
Title string `json:"title"` Title string `json:"title"`
TotalDownloads int64 `json:"totalDownloads"`
Version string `json:"version"` Version string `json:"version"`
Versions []*SearchResultVersion `json:"versions"` Versions []*SearchResultVersion `json:"versions"`
RegistrationIndexURL string `json:"registration"` RegistrationIndexURL string `json:"registration"`
@ -242,11 +278,12 @@ func createSearchResultResponse(l *linkBuilder, totalHits int64, pds []*packages
func createSearchResult(l *linkBuilder, pds []*packages_model.PackageDescriptor) *SearchResult { func createSearchResult(l *linkBuilder, pds []*packages_model.PackageDescriptor) *SearchResult {
latest := pds[0] latest := pds[0]
versions := make([]*SearchResultVersion, 0, len(pds)) versions := make([]*SearchResultVersion, 0, len(pds))
totalDownloads := int64(0)
for _, pd := range pds { for _, pd := range pds {
if latest.SemVer.LessThan(pd.SemVer) { if latest.SemVer.LessThan(pd.SemVer) {
latest = pd latest = pd
} }
totalDownloads += pd.Version.DownloadCount
versions = append(versions, &SearchResultVersion{ versions = append(versions, &SearchResultVersion{
RegistrationLeafURL: l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version), RegistrationLeafURL: l.GetRegistrationLeafURL(pd.Package.Name, pd.Version.Version),
Version: pd.Version.Version, Version: pd.Version.Version,
@ -259,6 +296,7 @@ func createSearchResult(l *linkBuilder, pds []*packages_model.PackageDescriptor)
Authors: metadata.Authors, Authors: metadata.Authors,
Copyright: metadata.Copyright, Copyright: metadata.Copyright,
Description: metadata.Description, Description: metadata.Description,
DependencyGroups: createDependencyGroups(latest),
IconURL: metadata.IconURL, IconURL: metadata.IconURL,
ID: latest.Package.Name, ID: latest.Package.Name,
IsPrerelease: latest.Version.IsPrerelease(), IsPrerelease: latest.Version.IsPrerelease(),
@ -269,6 +307,7 @@ func createSearchResult(l *linkBuilder, pds []*packages_model.PackageDescriptor)
Summary: metadata.Summary, Summary: metadata.Summary,
Tags: metadata.Tags, Tags: metadata.Tags,
Title: metadata.Title, Title: metadata.Title,
TotalDownloads: totalDownloads,
Version: latest.Version.Version, Version: latest.Version.Version,
Versions: versions, Versions: versions,
RegistrationIndexURL: l.GetRegistrationIndexURL(latest.Package.Name), RegistrationIndexURL: l.GetRegistrationIndexURL(latest.Package.Name),