Files
Gitea/services/packages/alpine/spec.go
T
b0b31bc593 feat(packages): expose package file properties in the package files API (#40066)
Package files carry type specific properties like `debian.distribution`,
`debian.component`, `rpm.group` or `alpine.branch` that decide where a
file lives in a registry, but the API never returned them. A client
listing `GET /packages/{owner}/{type}/{name}/{version}/files` could not
tell which distribution or component a file belongs to, or tell apart
same-named files in different ones. Tools copying packages between
instances, like https://gitea.com/gitea/importer, need them to re-upload
a file to the same place.

This adds a `properties` map to `PackageFile`, limited to the properties
that locate a file. Internal ones like the rpm, alpine, arch and conda
metadata or the Debian control file stay hidden, as they can be many MiB
per file.

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2026-10-29 18:10:36 +00:00

23 lines
676 B
Go

// Copyright 2026 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package alpine
import (
alpine_module "gitea.dev/modules/packages/alpine"
packages_service "gitea.dev/services/packages"
)
type Specialization struct {
packages_service.SpecGetViewPackageVersionData
packages_service.SpecOnBeforeRemovePackageAll
packages_service.SpecOnBeforeRemovePackageVersion
packages_service.SpecRenderUsageManual
}
var _ packages_service.Specialization = (*Specialization)(nil)
func (s Specialization) PublicPropertyNames() []string {
return []string{alpine_module.PropertyBranch, alpine_module.PropertyRepository, alpine_module.PropertyArchitecture}
}