Skip to content

Commit a3d55ac

Browse files
authored
Hide internal package versions (#20492)
* Hide internal versions from most searches. * Added test.
1 parent 5ed082b commit a3d55ac

File tree

12 files changed

+66
-31
lines changed

12 files changed

+66
-31
lines changed

integrations/api_packages_container_test.go

+8
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
container_module "code.gitea.io/gitea/modules/packages/container"
2121
"code.gitea.io/gitea/modules/packages/container/oci"
2222
"code.gitea.io/gitea/modules/setting"
23+
api "code.gitea.io/gitea/modules/structs"
2324

2425
"github.com/stretchr/testify/assert"
2526
)
@@ -487,6 +488,13 @@ func TestPackageContainer(t *testing.T) {
487488
assert.Equal(t, c.ExpectedTags, tagList.Tags)
488489
assert.Equal(t, c.ExpectedLink, resp.Header().Get("Link"))
489490
}
491+
492+
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s?type=container&q=%s", user.Name, image))
493+
resp := MakeRequest(t, req, http.StatusOK)
494+
495+
var apiPackages []*api.Package
496+
DecodeJSON(t, resp, &apiPackages)
497+
assert.Len(t, apiPackages, 4) // "latest", "main", "multi", "sha256:..."
490498
})
491499

492500
t.Run("Delete", func(t *testing.T) {

models/packages/package_version.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,9 @@ func getVersionByNameAndVersion(ctx context.Context, ownerID int64, packageType
122122
// GetVersionsByPackageType gets all versions of a specific type
123123
func GetVersionsByPackageType(ctx context.Context, ownerID int64, packageType Type) ([]*PackageVersion, error) {
124124
pvs, _, err := SearchVersions(ctx, &PackageSearchOptions{
125-
OwnerID: ownerID,
126-
Type: packageType,
125+
OwnerID: ownerID,
126+
Type: packageType,
127+
IsInternal: util.OptionalBoolFalse,
127128
})
128129
return pvs, err
129130
}
@@ -137,6 +138,7 @@ func GetVersionsByPackageName(ctx context.Context, ownerID int64, packageType Ty
137138
ExactMatch: true,
138139
Value: name,
139140
},
141+
IsInternal: util.OptionalBoolFalse,
140142
})
141143
return pvs, err
142144
}

routers/api/packages/composer/composer.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
packages_module "code.gitea.io/gitea/modules/packages"
2020
composer_module "code.gitea.io/gitea/modules/packages/composer"
2121
"code.gitea.io/gitea/modules/setting"
22+
"code.gitea.io/gitea/modules/util"
2223
"code.gitea.io/gitea/routers/api/packages/helper"
2324
packages_service "code.gitea.io/gitea/services/packages"
2425

@@ -62,10 +63,11 @@ func SearchPackages(ctx *context.Context) {
6263
}
6364

6465
opts := &packages_model.PackageSearchOptions{
65-
OwnerID: ctx.Package.Owner.ID,
66-
Type: packages_model.TypeComposer,
67-
Name: packages_model.SearchValue{Value: ctx.FormTrim("q")},
68-
Paginator: &paginator,
66+
OwnerID: ctx.Package.Owner.ID,
67+
Type: packages_model.TypeComposer,
68+
Name: packages_model.SearchValue{Value: ctx.FormTrim("q")},
69+
IsInternal: util.OptionalBoolFalse,
70+
Paginator: &paginator,
6971
}
7072
if ctx.FormTrim("type") != "" {
7173
opts.Properties = map[string]string{

routers/api/packages/helm/helm.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
packages_module "code.gitea.io/gitea/modules/packages"
2020
helm_module "code.gitea.io/gitea/modules/packages/helm"
2121
"code.gitea.io/gitea/modules/setting"
22+
"code.gitea.io/gitea/modules/util"
2223
"code.gitea.io/gitea/routers/api/packages/helper"
2324
packages_service "code.gitea.io/gitea/services/packages"
2425

@@ -39,8 +40,9 @@ func apiError(ctx *context.Context, status int, obj interface{}) {
3940
// Index generates the Helm charts index
4041
func Index(ctx *context.Context) {
4142
pvs, _, err := packages_model.SearchVersions(ctx, &packages_model.PackageSearchOptions{
42-
OwnerID: ctx.Package.Owner.ID,
43-
Type: packages_model.TypeHelm,
43+
OwnerID: ctx.Package.Owner.ID,
44+
Type: packages_model.TypeHelm,
45+
IsInternal: util.OptionalBoolFalse,
4446
})
4547
if err != nil {
4648
apiError(ctx, http.StatusInternalServerError, err)
@@ -108,6 +110,7 @@ func DownloadPackageFile(ctx *context.Context) {
108110
Value: ctx.Params("package"),
109111
},
110112
HasFileWithName: filename,
113+
IsInternal: util.OptionalBoolFalse,
111114
})
112115
if err != nil {
113116
apiError(ctx, http.StatusInternalServerError, err)

routers/api/packages/npm/npm.go

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
packages_module "code.gitea.io/gitea/modules/packages"
1919
npm_module "code.gitea.io/gitea/modules/packages/npm"
2020
"code.gitea.io/gitea/modules/setting"
21+
"code.gitea.io/gitea/modules/util"
2122
"code.gitea.io/gitea/routers/api/packages/helper"
2223
packages_service "code.gitea.io/gitea/services/packages"
2324

@@ -261,6 +262,7 @@ func setPackageTag(tag string, pv *packages_model.PackageVersion, deleteOnly boo
261262
Properties: map[string]string{
262263
npm_module.TagProperty: tag,
263264
},
265+
IsInternal: util.OptionalBoolFalse,
264266
})
265267
if err != nil {
266268
return err

routers/api/packages/nuget/nuget.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
packages_module "code.gitea.io/gitea/modules/packages"
1818
nuget_module "code.gitea.io/gitea/modules/packages/nuget"
1919
"code.gitea.io/gitea/modules/setting"
20+
"code.gitea.io/gitea/modules/util"
2021
"code.gitea.io/gitea/routers/api/packages/helper"
2122
packages_service "code.gitea.io/gitea/services/packages"
2223
)
@@ -39,9 +40,10 @@ func ServiceIndex(ctx *context.Context) {
3940
// SearchService https://docs.microsoft.com/en-us/nuget/api/search-query-service-resource#search-for-packages
4041
func SearchService(ctx *context.Context) {
4142
pvs, count, err := packages_model.SearchVersions(ctx, &packages_model.PackageSearchOptions{
42-
OwnerID: ctx.Package.Owner.ID,
43-
Type: packages_model.TypeNuGet,
44-
Name: packages_model.SearchValue{Value: ctx.FormTrim("q")},
43+
OwnerID: ctx.Package.Owner.ID,
44+
Type: packages_model.TypeNuGet,
45+
Name: packages_model.SearchValue{Value: ctx.FormTrim("q")},
46+
IsInternal: util.OptionalBoolFalse,
4547
Paginator: db.NewAbsoluteListOptions(
4648
ctx.FormInt("skip"),
4749
ctx.FormInt("take"),

routers/api/packages/rubygems/rubygems.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"code.gitea.io/gitea/modules/context"
1717
packages_module "code.gitea.io/gitea/modules/packages"
1818
rubygems_module "code.gitea.io/gitea/modules/packages/rubygems"
19+
"code.gitea.io/gitea/modules/util"
1920
"code.gitea.io/gitea/routers/api/packages/helper"
2021
packages_service "code.gitea.io/gitea/services/packages"
2122
)
@@ -40,8 +41,9 @@ func EnumeratePackages(ctx *context.Context) {
4041
// EnumeratePackagesLatest serves the list of the latest version of every package
4142
func EnumeratePackagesLatest(ctx *context.Context) {
4243
pvs, _, err := packages_model.SearchLatestVersions(ctx, &packages_model.PackageSearchOptions{
43-
OwnerID: ctx.Package.Owner.ID,
44-
Type: packages_model.TypeRubyGems,
44+
OwnerID: ctx.Package.Owner.ID,
45+
Type: packages_model.TypeRubyGems,
46+
IsInternal: util.OptionalBoolFalse,
4547
})
4648
if err != nil {
4749
apiError(ctx, http.StatusInternalServerError, err)
@@ -289,6 +291,7 @@ func getVersionsByFilename(ctx *context.Context, filename string) ([]*packages_m
289291
OwnerID: ctx.Package.Owner.ID,
290292
Type: packages_model.TypeRubyGems,
291293
HasFileWithName: filename,
294+
IsInternal: util.OptionalBoolFalse,
292295
})
293296
return pvs, err
294297
}

routers/api/v1/packages/package.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"code.gitea.io/gitea/modules/context"
1212
"code.gitea.io/gitea/modules/convert"
1313
api "code.gitea.io/gitea/modules/structs"
14+
"code.gitea.io/gitea/modules/util"
1415
"code.gitea.io/gitea/routers/api/v1/utils"
1516
packages_service "code.gitea.io/gitea/services/packages"
1617
)
@@ -55,10 +56,11 @@ func ListPackages(ctx *context.APIContext) {
5556
query := ctx.FormTrim("q")
5657

5758
pvs, count, err := packages.SearchVersions(ctx, &packages.PackageSearchOptions{
58-
OwnerID: ctx.Package.Owner.ID,
59-
Type: packages.Type(packageType),
60-
Name: packages.SearchValue{Value: query},
61-
Paginator: &listOptions,
59+
OwnerID: ctx.Package.Owner.ID,
60+
Type: packages.Type(packageType),
61+
Name: packages.SearchValue{Value: query},
62+
IsInternal: util.OptionalBoolFalse,
63+
Paginator: &listOptions,
6264
})
6365
if err != nil {
6466
ctx.Error(http.StatusInternalServerError, "SearchVersions", err)

routers/web/admin/packages.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"code.gitea.io/gitea/modules/base"
1414
"code.gitea.io/gitea/modules/context"
1515
"code.gitea.io/gitea/modules/setting"
16+
"code.gitea.io/gitea/modules/util"
1617
packages_service "code.gitea.io/gitea/services/packages"
1718
)
1819

@@ -31,9 +32,10 @@ func Packages(ctx *context.Context) {
3132
sort := ctx.FormTrim("sort")
3233

3334
pvs, total, err := packages_model.SearchVersions(ctx, &packages_model.PackageSearchOptions{
34-
Type: packages_model.Type(packageType),
35-
Name: packages_model.SearchValue{Value: query},
36-
Sort: sort,
35+
Type: packages_model.Type(packageType),
36+
Name: packages_model.SearchValue{Value: query},
37+
Sort: sort,
38+
IsInternal: util.OptionalBoolFalse,
3739
Paginator: &db.ListOptions{
3840
PageSize: setting.UI.PackagesPagingNum,
3941
Page: page,

routers/web/repo/packages.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"code.gitea.io/gitea/modules/base"
1313
"code.gitea.io/gitea/modules/context"
1414
"code.gitea.io/gitea/modules/setting"
15+
"code.gitea.io/gitea/modules/util"
1516
)
1617

1718
const (
@@ -32,10 +33,11 @@ func Packages(ctx *context.Context) {
3233
PageSize: setting.UI.PackagesPagingNum,
3334
Page: page,
3435
},
35-
OwnerID: ctx.ContextUser.ID,
36-
RepoID: ctx.Repo.Repository.ID,
37-
Type: packages.Type(packageType),
38-
Name: packages.SearchValue{Value: query},
36+
OwnerID: ctx.ContextUser.ID,
37+
RepoID: ctx.Repo.Repository.ID,
38+
Type: packages.Type(packageType),
39+
Name: packages.SearchValue{Value: query},
40+
IsInternal: util.OptionalBoolFalse,
3941
})
4042
if err != nil {
4143
ctx.ServerError("SearchLatestVersions", err)

routers/web/user/package.go

+11-6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"code.gitea.io/gitea/modules/context"
1818
"code.gitea.io/gitea/modules/log"
1919
"code.gitea.io/gitea/modules/setting"
20+
"code.gitea.io/gitea/modules/util"
2021
"code.gitea.io/gitea/modules/web"
2122
"code.gitea.io/gitea/services/forms"
2223
packages_service "code.gitea.io/gitea/services/packages"
@@ -43,9 +44,10 @@ func ListPackages(ctx *context.Context) {
4344
PageSize: setting.UI.PackagesPagingNum,
4445
Page: page,
4546
},
46-
OwnerID: ctx.ContextUser.ID,
47-
Type: packages_model.Type(packageType),
48-
Name: packages_model.SearchValue{Value: query},
47+
OwnerID: ctx.ContextUser.ID,
48+
Type: packages_model.Type(packageType),
49+
Name: packages_model.SearchValue{Value: query},
50+
IsInternal: util.OptionalBoolFalse,
4951
})
5052
if err != nil {
5153
ctx.ServerError("SearchLatestVersions", err)
@@ -112,7 +114,8 @@ func RedirectToLastVersion(ctx *context.Context) {
112114
}
113115

114116
pvs, _, err := packages_model.SearchLatestVersions(ctx, &packages_model.PackageSearchOptions{
115-
PackageID: p.ID,
117+
PackageID: p.ID,
118+
IsInternal: util.OptionalBoolFalse,
116119
})
117120
if err != nil {
118121
ctx.ServerError("GetPackageByName", err)
@@ -157,8 +160,9 @@ func ViewPackageVersion(ctx *context.Context) {
157160
})
158161
default:
159162
pvs, total, err = packages_model.SearchVersions(ctx, &packages_model.PackageSearchOptions{
160-
Paginator: db.NewAbsoluteListOptions(0, 5),
161-
PackageID: pd.Package.ID,
163+
Paginator: db.NewAbsoluteListOptions(0, 5),
164+
PackageID: pd.Package.ID,
165+
IsInternal: util.OptionalBoolFalse,
162166
})
163167
if err != nil {
164168
ctx.ServerError("SearchVersions", err)
@@ -254,6 +258,7 @@ func ListPackageVersions(ctx *context.Context) {
254258
ExactMatch: false,
255259
Value: query,
256260
},
261+
IsInternal: util.OptionalBoolFalse,
257262
})
258263
if err != nil {
259264
ctx.ServerError("SearchVersions", err)

services/packages/packages.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"code.gitea.io/gitea/modules/log"
2020
"code.gitea.io/gitea/modules/notification"
2121
packages_module "code.gitea.io/gitea/modules/packages"
22+
"code.gitea.io/gitea/modules/util"
2223
container_service "code.gitea.io/gitea/services/packages/container"
2324
)
2425

@@ -462,7 +463,8 @@ func RemoveAllPackages(ctx context.Context, userID int64) (int, error) {
462463
PageSize: repo_model.RepositoryListDefaultPageSize,
463464
Page: 1,
464465
},
465-
OwnerID: userID,
466+
OwnerID: userID,
467+
IsInternal: util.OptionalBoolNone,
466468
})
467469
if err != nil {
468470
return count, fmt.Errorf("GetOwnedPackages[%d]: %w", userID, err)

0 commit comments

Comments
 (0)