diff options
author | KN4CK3R <admin@oldschoolhack.me> | 2024-01-19 12:37:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-19 11:37:10 +0000 |
commit | 461d8b53c2e51a8a6a1715ba40ac61d7e9f93971 (patch) | |
tree | 2bad0b2908f9f3e76d9a195c4fe1c66016b8bcbf /models/packages/package_blob.go | |
parent | 075c4c89ee28590bd4ab8f6cf7338d723c4696eb (diff) | |
download | gitea-461d8b53c2e51a8a6a1715ba40ac61d7e9f93971.tar.gz gitea-461d8b53c2e51a8a6a1715ba40ac61d7e9f93971.zip |
Fix some RPM registry flaws (#28782)
Related #26984
(https://github.com/go-gitea/gitea/pull/26984#issuecomment-1889588912)
Fix admin cleanup message.
Fix models `Get` not respecting default values.
Rebuild RPM repository files after cleanup.
Do not add RPM group to package version name.
Force stable sorting of Alpine/Debian/RPM repository data.
Fix missing deferred `Close`.
Add tests for multiple RPM groups.
Removed non-cached `ReplaceAllStringRegex`.
If there are multiple groups available, it's stated in the package
installation screen:

Diffstat (limited to 'models/packages/package_blob.go')
-rw-r--r-- | models/packages/package_blob.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/models/packages/package_blob.go b/models/packages/package_blob.go index d1f470d520..d9c30b6533 100644 --- a/models/packages/package_blob.go +++ b/models/packages/package_blob.go @@ -41,12 +41,20 @@ type PackageBlob struct { func GetOrInsertBlob(ctx context.Context, pb *PackageBlob) (*PackageBlob, bool, error) { e := db.GetEngine(ctx) - has, err := e.Get(pb) + existing := &PackageBlob{} + + has, err := e.Where(builder.Eq{ + "size": pb.Size, + "hash_md5": pb.HashMD5, + "hash_sha1": pb.HashSHA1, + "hash_sha256": pb.HashSHA256, + "hash_sha512": pb.HashSHA512, + }).Get(existing) if err != nil { return nil, false, err } if has { - return pb, true, nil + return existing, true, nil } if _, err = e.Insert(pb); err != nil { return nil, false, err |