Skip to content

Commit ae86a0b

Browse files
6543KN4CK3Ralgernon
authored
packages/generic: Do not restrict package versions to SemVer (#20414) (#20531)
There are existing packages out there whose version do not conform to SemVer, yet, one would like to have them available in a generic package repository. To this end, remove the SemVer restriction on package versions when using the Generic package registry, and replace it with a check that simply makes sure the version isn't empty. Signed-off-by: Gergely Nagy <[email protected]> Co-authored-by: KN4CK3R <[email protected]> Co-authored-by: 6543 <[email protected]> Co-authored-by: Gergely Nagy <[email protected]>
1 parent 4b53a5c commit ae86a0b

File tree

3 files changed

+7
-10
lines changed

3 files changed

+7
-10
lines changed

docs/content/doc/packages/generic.en-us.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ PUT https://gitea.example.com/api/packages/{owner}/generic/{package_name}/{packa
3737
| ----------------- | ----------- |
3838
| `owner` | The owner of the package. |
3939
| `package_name` | The package name. It can contain only lowercase letters (`a-z`), uppercase letter (`A-Z`), numbers (`0-9`), dots (`.`), hyphens (`-`), or underscores (`_`). |
40-
| `package_version` | The package version as described in the [SemVer](https://semver.org/) spec. |
40+
| `package_version` | The package version, a non-empty string. |
4141
| `file_name` | The filename. It can contain only lowercase letters (`a-z`), uppercase letter (`A-Z`), numbers (`0-9`), dots (`.`), hyphens (`-`), or underscores (`_`). |
4242

4343
Example request using HTTP Basic authentication:

integrations/api_packages_generic_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ func TestPackageGeneric(t *testing.T) {
4242

4343
pd, err := packages.GetPackageDescriptor(db.DefaultContext, pvs[0])
4444
assert.NoError(t, err)
45-
assert.NotNil(t, pd.SemVer)
4645
assert.Nil(t, pd.Metadata)
4746
assert.Equal(t, packageName, pd.Package.Name)
4847
assert.Equal(t, packageVersion, pd.Version.Version)

routers/api/packages/generic/generic.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@ import (
88
"errors"
99
"net/http"
1010
"regexp"
11+
"strings"
1112

1213
packages_model "code.gitea.io/gitea/models/packages"
1314
"code.gitea.io/gitea/modules/context"
1415
"code.gitea.io/gitea/modules/log"
1516
packages_module "code.gitea.io/gitea/modules/packages"
1617
"code.gitea.io/gitea/routers/api/packages/helper"
1718
packages_service "code.gitea.io/gitea/services/packages"
18-
19-
"github.com/hashicorp/go-version"
2019
)
2120

2221
var (
@@ -97,8 +96,7 @@ func UploadPackage(ctx *context.Context) {
9796
Name: packageName,
9897
Version: packageVersion,
9998
},
100-
SemverCompatible: true,
101-
Creator: ctx.Doer,
99+
Creator: ctx.Doer,
102100
},
103101
&packages_service.PackageFileCreationInfo{
104102
PackageFileInfo: packages_service.PackageFileInfo{
@@ -157,10 +155,10 @@ func sanitizeParameters(ctx *context.Context) (string, string, string, error) {
157155
return "", "", "", errors.New("Invalid package name or filename")
158156
}
159157

160-
v, err := version.NewSemver(ctx.Params("packageversion"))
161-
if err != nil {
162-
return "", "", "", err
158+
packageVersion := strings.TrimSpace(ctx.Params("packageversion"))
159+
if packageVersion == "" {
160+
return "", "", "", errors.New("Invalid package version")
163161
}
164162

165-
return packageName, v.String(), filename, nil
163+
return packageName, packageVersion, filename, nil
166164
}

0 commit comments

Comments
 (0)