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:

![grafik](8f132760-882c-4ab8-9678-77e47dfc4415)
This commit is contained in:
KN4CK3R 2024-01-19 12:37:10 +01:00 committed by GitHub
parent 075c4c89ee
commit 461d8b53c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 634 additions and 478 deletions

View file

@ -15,7 +15,10 @@ import (
)
const (
PropertyMetadata = "rpm.metadata"
PropertyMetadata = "rpm.metadata"
PropertyGroup = "rpm.group"
PropertyArchitecture = "rpm.architecture"
SettingKeyPrivate = "rpm.key.private"
SettingKeyPublic = "rpm.key.public"

View file

@ -4,7 +4,6 @@
package templates
import (
"regexp"
"strings"
"code.gitea.io/gitea/modules/base"
@ -26,10 +25,6 @@ func (su *StringUtils) Contains(s, substr string) bool {
return strings.Contains(s, substr)
}
func (su *StringUtils) ReplaceAllStringRegex(s, regex, new string) string {
return regexp.MustCompile(regex).ReplaceAllString(s, new)
}
func (su *StringUtils) Split(s, sep string) []string {
return strings.Split(s, sep)
}

View file

@ -4,6 +4,7 @@
package util
import (
"cmp"
"slices"
"strings"
)
@ -45,3 +46,10 @@ func SliceSortedEqual[T comparable](s1, s2 []T) bool {
func SliceRemoveAll[T comparable](slice []T, target T) []T {
return slices.DeleteFunc(slice, func(t T) bool { return t == target })
}
// Sorted returns the sorted slice
// Note: The parameter is sorted inline.
func Sorted[S ~[]E, E cmp.Ordered](values S) S {
slices.Sort(values)
return values
}