aboutsummaryrefslogtreecommitdiffstats
path: root/models/packages/arch/search.go
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2024-12-05 00:09:07 +0100
committerGitHub <noreply@github.com>2024-12-04 23:09:07 +0000
commit0c3c041c88afc66a5048c1d8cf1b29c8bbbb798f (patch)
tree57b7605040ce7b707f32e45bae443e068c90f664 /models/packages/arch/search.go
parent5ab7aa700f4cafcb33d8ad77708d7419ad2480fa (diff)
downloadgitea-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. ![grafik](https://github.com/user-attachments/assets/81cdb0c2-02f9-4733-bee2-e48af6b45224) 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.go38
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,
+ },
+ )
+}