MCPcopy
hub / github.com/harness/harness / GetPackageMetadata

Method GetPackageMetadata

registry/app/pkg/npm/local.go:151–187  ·  view source on GitHub ↗
(ctx context.Context, info npm.ArtifactInfo)

Source from the content-addressed store, hash-verified

149}
150
151func (c *localRegistry) GetPackageMetadata(ctx context.Context, info npm.ArtifactInfo) (npm2.PackageMetadata, error) {
152 packageMetadata := npm2.PackageMetadata{}
153 versions := make(map[string]*npm2.PackageMetadataVersion)
154 artifacts, err := c.artifactDao.GetByRegistryIDAndImage(ctx, info.RegistryID, info.Image)
155 if err != nil {
156 log.Ctx(ctx).Warn().Msgf("Failed to fetch artifact for image:[%s], Reg:[%s]",
157 info.BaseArtifactInfo().Image, info.BaseArtifactInfo().RegIdentifier)
158 return packageMetadata, usererror.ErrInternal
159 }
160
161 if len(*artifacts) == 0 {
162 return packageMetadata,
163 usererror.NotFound(fmt.Sprintf("no artifacts found for registry %s and image %s", info.Registry.Name, info.Image))
164 }
165 regURL := c.urlProvider.PackageURL(ctx, info.RootIdentifier+"/"+info.RegIdentifier, "npm")
166
167 for _, artifact := range *artifacts {
168 metadata := &npm2.NpmMetadata{}
169 err = json.Unmarshal(artifact.Metadata, metadata)
170 if err != nil {
171 return packageMetadata, err
172 }
173 if packageMetadata.Name == "" {
174 packageMetadata = metadata.PackageMetadata
175 }
176 for _, versionMetadata := range metadata.Versions {
177 versions[artifact.Version] = CreatePackageMetadataVersion(regURL, versionMetadata)
178 }
179 }
180 distTags, err := c.ListTags(ctx, info)
181 if !commons.IsEmpty(err) {
182 return npm2.PackageMetadata{}, err
183 }
184 packageMetadata.Versions = versions
185 packageMetadata.DistTags = distTags
186 return packageMetadata, nil
187}
188
189func (c *localRegistry) SearchPackage(ctx context.Context, info npm.ArtifactInfo,
190 limit int, offset int) (*npm2.PackageSearch, error) {

Callers

nothing calls this directly

Calls 9

ListTagsMethod · 0.95
NotFoundFunction · 0.92
IsEmptyFunction · 0.92
MsgfMethod · 0.80
WarnMethod · 0.65
BaseArtifactInfoMethod · 0.65
PackageURLMethod · 0.65

Tested by

no test coverage detected