diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2025-02-28 08:29:21 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-28 16:29:21 +0000 |
commit | aca21549f285255f0d78f90f1f15f0c6f9396761 (patch) | |
tree | 42a44e7e585380cfe9cd50d582dbafc07cc03dd2 /routers/api/packages | |
parent | ae4a3d770813f37f092bdea8a2b3a0827fcc1b41 (diff) | |
download | gitea-aca21549f285255f0d78f90f1f15f0c6f9396761.tar.gz gitea-aca21549f285255f0d78f90f1f15f0c6f9396761.zip |
Add composor source field (#33502)
Fix #33066
Diffstat (limited to 'routers/api/packages')
-rw-r--r-- | routers/api/packages/composer/api.go | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/routers/api/packages/composer/api.go b/routers/api/packages/composer/api.go index a3bcf80417..a3ea2c2f9a 100644 --- a/routers/api/packages/composer/api.go +++ b/routers/api/packages/composer/api.go @@ -66,6 +66,7 @@ type PackageMetadataResponse struct { } // PackageVersionMetadata contains package metadata +// https://getcomposer.org/doc/05-repositories.md#package type PackageVersionMetadata struct { *composer_module.Metadata Name string `json:"name"` @@ -73,6 +74,7 @@ type PackageVersionMetadata struct { Type string `json:"type"` Created time.Time `json:"time"` Dist Dist `json:"dist"` + Source Source `json:"source"` } // Dist contains package download information @@ -82,6 +84,13 @@ type Dist struct { Checksum string `json:"shasum"` } +// Source contains package source information +type Source struct { + URL string `json:"url"` + Type string `json:"type"` + Reference string `json:"reference"` +} + func createPackageMetadataResponse(registryURL string, pds []*packages_model.PackageDescriptor) *PackageMetadataResponse { versions := make([]*PackageVersionMetadata, 0, len(pds)) @@ -94,7 +103,7 @@ func createPackageMetadataResponse(registryURL string, pds []*packages_model.Pac } } - versions = append(versions, &PackageVersionMetadata{ + pkg := PackageVersionMetadata{ Name: pd.Package.Name, Version: pd.Version.Version, Type: packageType, @@ -105,7 +114,16 @@ func createPackageMetadataResponse(registryURL string, pds []*packages_model.Pac URL: fmt.Sprintf("%s/files/%s/%s/%s", registryURL, url.PathEscape(pd.Package.LowerName), url.PathEscape(pd.Version.LowerVersion), url.PathEscape(pd.Files[0].File.LowerName)), Checksum: pd.Files[0].Blob.HashSHA1, }, - }) + } + if pd.Repository != nil { + pkg.Source = Source{ + URL: pd.Repository.HTMLURL(), + Type: "git", + Reference: pd.Version.Version, + } + } + + versions = append(versions, &pkg) } return &PackageMetadataResponse{ |