Fix incorrect relative/absolute URL usages (#29531)
Add two "HTMLURL" methods for PackageDescriptor. And rename "FullWebLink" to "VersionWebLink" (cherry picked from commit bf6502a8f7a2e9a2b64b43b7733316d863c9a768)
This commit is contained in:
		
					parent
					
						
							
								47a913d40d
							
						
					
				
			
			
				commit
				
					
						12441d7c5c
					
				
			
		
					 4 changed files with 17 additions and 6 deletions
				
			
		|  | @ -70,16 +70,26 @@ type PackageFileDescriptor struct { | |||
| 	Properties PackagePropertyList | ||||
| } | ||||
| 
 | ||||
| // PackageWebLink returns the package web link | ||||
| // PackageWebLink returns the relative package web link | ||||
| func (pd *PackageDescriptor) PackageWebLink() string { | ||||
| 	return fmt.Sprintf("%s/-/packages/%s/%s", pd.Owner.HomeLink(), string(pd.Package.Type), url.PathEscape(pd.Package.LowerName)) | ||||
| } | ||||
| 
 | ||||
| // FullWebLink returns the package version web link | ||||
| func (pd *PackageDescriptor) FullWebLink() string { | ||||
| // VersionWebLink returns the relative package version web link | ||||
| func (pd *PackageDescriptor) VersionWebLink() string { | ||||
| 	return fmt.Sprintf("%s/%s", pd.PackageWebLink(), url.PathEscape(pd.Version.LowerVersion)) | ||||
| } | ||||
| 
 | ||||
| // PackageHTMLURL returns the absolute package HTML URL | ||||
| func (pd *PackageDescriptor) PackageHTMLURL() string { | ||||
| 	return fmt.Sprintf("%s/-/packages/%s/%s", pd.Owner.HTMLURL(), string(pd.Package.Type), url.PathEscape(pd.Package.LowerName)) | ||||
| } | ||||
| 
 | ||||
| // VersionHTMLURL returns the absolute package version HTML URL | ||||
| func (pd *PackageDescriptor) VersionHTMLURL() string { | ||||
| 	return fmt.Sprintf("%s/%s", pd.PackageHTMLURL(), url.PathEscape(pd.Version.LowerVersion)) | ||||
| } | ||||
| 
 | ||||
| // CalculateBlobSize returns the total blobs size in bytes | ||||
| func (pd *PackageDescriptor) CalculateBlobSize() int64 { | ||||
| 	size := int64(0) | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ import ( | |||
| 
 | ||||
| 	packages_model "code.gitea.io/gitea/models/packages" | ||||
| 	npm_module "code.gitea.io/gitea/modules/packages/npm" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| ) | ||||
| 
 | ||||
| func createPackageMetadataResponse(registryURL string, pds []*packages_model.PackageDescriptor) *npm_module.PackageMetadata { | ||||
|  | @ -98,7 +99,7 @@ func createPackageSearchResponse(pds []*packages_model.PackageDescriptor, total | |||
| 				Maintainers: []npm_module.User{}, // npm cli needs this field | ||||
| 				Keywords:    metadata.Keywords, | ||||
| 				Links: &npm_module.PackageSearchPackageLinks{ | ||||
| 					Registry: pd.FullWebLink(), | ||||
| 					Registry: setting.AppURL + "api/packages/" + pd.Owner.Name + "/npm", | ||||
| 					Homepage: metadata.ProjectURL, | ||||
| 				}, | ||||
| 			}, | ||||
|  |  | |||
|  | @ -163,7 +163,7 @@ func RedirectToLastVersion(ctx *context.Context) { | |||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	ctx.Redirect(pd.FullWebLink()) | ||||
| 	ctx.Redirect(pd.VersionWebLink()) | ||||
| } | ||||
| 
 | ||||
| // ViewPackageVersion displays a single package version | ||||
|  |  | |||
|  | @ -35,7 +35,7 @@ func ToPackage(ctx context.Context, pd *packages.PackageDescriptor, doer *user_m | |||
| 		Name:       pd.Package.Name, | ||||
| 		Version:    pd.Version.Version, | ||||
| 		CreatedAt:  pd.Version.CreatedUnix.AsTime(), | ||||
| 		HTMLURL:    pd.FullWebLink(), | ||||
| 		HTMLURL:    pd.VersionHTMLURL(), | ||||
| 	}, nil | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 wxiaoguang
				wxiaoguang