aboutsummaryrefslogtreecommitdiffstats
path: root/routers/web/user/package.go
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2023-05-02 18:31:35 +0200
committerGitHub <noreply@github.com>2023-05-02 12:31:35 -0400
commitbf999e406994ab34420fb62e0de7948c8c2116c1 (patch)
tree016bd5a5469fe5914ebbf60949e0b1192d50c30e /routers/web/user/package.go
parent1f52560ca466a780638543d4cd3513f892bf7522 (diff)
downloadgitea-bf999e406994ab34420fb62e0de7948c8c2116c1.tar.gz
gitea-bf999e406994ab34420fb62e0de7948c8c2116c1.zip
Add Debian package registry (#24426)
Co-authored-by: @awkwardbunny This PR adds a Debian package registry. You can follow [this tutorial](https://www.baeldung.com/linux/create-debian-package) to build a *.deb package for testing. Source packages are not supported at the moment and I did not find documentation of the architecture "all" and how these packages should be treated. ![grafik](https://user-images.githubusercontent.com/1666336/218126879-eb80a866-775c-4c8e-8529-5797203a64e6.png) Part of #20751. Revised copy of #22854. --------- Co-authored-by: Brian Hong <brian@hongs.me> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Giteabot <teabot@gitea.io>
Diffstat (limited to 'routers/web/user/package.go')
-rw-r--r--routers/web/user/package.go34
1 files changed, 28 insertions, 6 deletions
diff --git a/routers/web/user/package.go b/routers/web/user/package.go
index a9acc5281f..37ee0b8631 100644
--- a/routers/web/user/package.go
+++ b/routers/web/user/package.go
@@ -14,8 +14,10 @@ import (
access_model "code.gitea.io/gitea/models/perm/access"
repo_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/modules/base"
+ "code.gitea.io/gitea/modules/container"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
+ debian_module "code.gitea.io/gitea/modules/packages/debian"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/web"
@@ -163,6 +165,32 @@ func ViewPackageVersion(ctx *context.Context) {
ctx.Data["IsPackagesPage"] = true
ctx.Data["PackageDescriptor"] = pd
+ switch pd.Package.Type {
+ case packages_model.TypeContainer:
+ ctx.Data["RegistryHost"] = setting.Packages.RegistryHost
+ case packages_model.TypeDebian:
+ distributions := make(container.Set[string])
+ components := make(container.Set[string])
+ architectures := make(container.Set[string])
+
+ for _, f := range pd.Files {
+ for _, pp := range f.Properties {
+ switch pp.Name {
+ case debian_module.PropertyDistribution:
+ distributions.Add(pp.Value)
+ case debian_module.PropertyComponent:
+ components.Add(pp.Value)
+ case debian_module.PropertyArchitecture:
+ architectures.Add(pp.Value)
+ }
+ }
+ }
+
+ ctx.Data["Distributions"] = distributions.Values()
+ ctx.Data["Components"] = components.Values()
+ ctx.Data["Architectures"] = architectures.Values()
+ }
+
var (
total int64
pvs []*packages_model.PackageVersion
@@ -170,8 +198,6 @@ func ViewPackageVersion(ctx *context.Context) {
)
switch pd.Package.Type {
case packages_model.TypeContainer:
- ctx.Data["RegistryHost"] = setting.Packages.RegistryHost
-
pvs, total, err = container_model.SearchImageTags(ctx, &container_model.ImageTagsSearchOptions{
Paginator: db.NewAbsoluteListOptions(0, 5),
PackageID: pd.Package.ID,
@@ -183,10 +209,6 @@ func ViewPackageVersion(ctx *context.Context) {
PackageID: pd.Package.ID,
IsInternal: util.OptionalBoolFalse,
})
- if err != nil {
- ctx.ServerError("SearchVersions", err)
- return
- }
}
if err != nil {
ctx.ServerError("", err)