mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-14 05:52:43 +00:00
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.  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>
This commit is contained in:
parent
1f52560ca4
commit
bf999e4069
57 changed files with 2008 additions and 96 deletions
|
@ -117,13 +117,15 @@ func DeleteFileByID(ctx context.Context, fileID int64) error {
|
|||
|
||||
// PackageFileSearchOptions are options for SearchXXX methods
|
||||
type PackageFileSearchOptions struct {
|
||||
OwnerID int64
|
||||
PackageType string
|
||||
VersionID int64
|
||||
Query string
|
||||
CompositeKey string
|
||||
Properties map[string]string
|
||||
OlderThan time.Duration
|
||||
OwnerID int64
|
||||
PackageType string
|
||||
VersionID int64
|
||||
Query string
|
||||
CompositeKey string
|
||||
Properties map[string]string
|
||||
OlderThan time.Duration
|
||||
HashAlgorithm string
|
||||
Hash string
|
||||
db.Paginator
|
||||
}
|
||||
|
||||
|
@ -182,6 +184,26 @@ func (opts *PackageFileSearchOptions) toConds() builder.Cond {
|
|||
cond = cond.And(builder.Lt{"package_file.created_unix": time.Now().Add(-opts.OlderThan).Unix()})
|
||||
}
|
||||
|
||||
if opts.Hash != "" {
|
||||
var field string
|
||||
switch strings.ToLower(opts.HashAlgorithm) {
|
||||
case "md5":
|
||||
field = "package_blob.hash_md5"
|
||||
case "sha1":
|
||||
field = "package_blob.hash_sha1"
|
||||
case "sha256":
|
||||
field = "package_blob.hash_sha256"
|
||||
case "sha512":
|
||||
fallthrough
|
||||
default: // default to SHA512 if not specified or unknown
|
||||
field = "package_blob.hash_sha512"
|
||||
}
|
||||
innerCond := builder.
|
||||
Expr("package_blob.id = package_file.blob_id").
|
||||
And(builder.Eq{field: opts.Hash})
|
||||
cond = cond.And(builder.Exists(builder.Select("package_blob.id").From("package_blob").Where(innerCond)))
|
||||
}
|
||||
|
||||
return cond
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue