diff options
author | KN4CK3R <admin@oldschoolhack.me> | 2024-12-05 00:09:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-04 23:09:07 +0000 |
commit | 0c3c041c88afc66a5048c1d8cf1b29c8bbbb798f (patch) | |
tree | 57b7605040ce7b707f32e45bae443e068c90f664 /models/packages/arch/search.go | |
parent | 5ab7aa700f4cafcb33d8ad77708d7419ad2480fa (diff) | |
download | gitea-0c3c041c88afc66a5048c1d8cf1b29c8bbbb798f.tar.gz gitea-0c3c041c88afc66a5048c1d8cf1b29c8bbbb798f.zip |
Add Arch package registry (#32692)
Close #25037
Close #31037
This PR adds a Arch package registry usable with pacman.

Rewrite of #25396 and #31037. You can follow [this
tutorial](https://wiki.archlinux.org/title/Creating_packages) to build a
package for testing.
Docs PR: https://gitea.com/gitea/docs/pulls/111
Co-authored-by: [d1nch8g@ion.lc](mailto:d1nch8g@ion.lc)
Co-authored-by: @ExplodingDragon
---------
Co-authored-by: dancheg97 <dancheg97@fmnx.su>
Co-authored-by: dragon <ExplodingFKL@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'models/packages/arch/search.go')
-rw-r--r-- | models/packages/arch/search.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/models/packages/arch/search.go b/models/packages/arch/search.go new file mode 100644 index 0000000000..f35c037b23 --- /dev/null +++ b/models/packages/arch/search.go @@ -0,0 +1,38 @@ +// Copyright 2024 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package arch + +import ( + "context" + + packages_model "code.gitea.io/gitea/models/packages" + arch_module "code.gitea.io/gitea/modules/packages/arch" +) + +// GetRepositories gets all available repositories +func GetRepositories(ctx context.Context, ownerID int64) ([]string, error) { + return packages_model.GetDistinctPropertyValues( + ctx, + packages_model.TypeArch, + ownerID, + packages_model.PropertyTypeFile, + arch_module.PropertyRepository, + nil, + ) +} + +// GetArchitectures gets all available architectures for the given repository +func GetArchitectures(ctx context.Context, ownerID int64, repository string) ([]string, error) { + return packages_model.GetDistinctPropertyValues( + ctx, + packages_model.TypeArch, + ownerID, + packages_model.PropertyTypeFile, + arch_module.PropertyArchitecture, + &packages_model.DistinctPropertyDependency{ + Name: arch_module.PropertyRepository, + Value: repository, + }, + ) +} |