Skip to content

Commit 7da192a

Browse files
author
CI Monk
committed
feat: add options to work pagination on list all package versions
1 parent 6e66a89 commit 7da192a

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

github/users_packages.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,17 @@ func (s *UsersService) RestorePackage(ctx context.Context, user, packageType, pa
115115
//
116116
// GitHub API docs: https://docs.github.com/en/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user
117117
// GitHub API docs: https://docs.github.com/en/rest/reference/users#delete-an-email-address-for-the-authenticated-user
118-
func (s *UsersService) PackageGetAllVersions(ctx context.Context, user, packageType, packageName string) ([]*PackageVersion, *Response, error) {
118+
func (s *UsersService) PackageGetAllVersions(ctx context.Context, user, packageType, packageName string, opts *PackageListOptions) ([]*PackageVersion, *Response, error) {
119119
var u string
120120
if user != "" {
121121
u = fmt.Sprintf("users/%v/packages/%v/%v/versions", user, packageType, packageName)
122122
} else {
123123
u = fmt.Sprintf("user/packages/%v/%v/versions", packageType, packageName)
124124
}
125+
u, err := addOptions(u, opts)
126+
if err != nil {
127+
return nil, nil, err
128+
}
125129

126130
req, err := s.client.NewRequest("GET", u, nil)
127131
if err != nil {

github/users_packages_test.go

+12-6
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,10 @@ func TestUsersService_Authenticated_ListPackagesVersions(t *testing.T) {
363363
})
364364

365365
ctx := context.Background()
366-
packages, _, err := client.Users.PackageGetAllVersions(ctx, "", "container", "hello_docker")
366+
opts := &PackageListOptions{
367+
String("internal"), String("container"), String("deleted"), ListOptions{Page: 1, PerPage: 2},
368+
}
369+
packages, _, err := client.Users.PackageGetAllVersions(ctx, "", "container", "hello_docker", opts)
367370
if err != nil {
368371
t.Errorf("Users.Authenticated_PackageGetAllVersions returned error: %v", err)
369372
}
@@ -389,12 +392,12 @@ func TestUsersService_Authenticated_ListPackagesVersions(t *testing.T) {
389392

390393
const methodName = "PackageGetAllVersions"
391394
testBadOptions(t, methodName, func() (err error) {
392-
_, _, err = client.Users.PackageGetAllVersions(ctx, "\n", "", "")
395+
_, _, err = client.Users.PackageGetAllVersions(ctx, "\n", "", "", &PackageListOptions{})
393396
return err
394397
})
395398

396399
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
397-
got, resp, err := client.Users.PackageGetAllVersions(ctx, "", "", "")
400+
got, resp, err := client.Users.PackageGetAllVersions(ctx, "", "", "", &PackageListOptions{})
398401
if got != nil {
399402
t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
400403
}
@@ -429,7 +432,10 @@ func TestUsersService_specifiedUser_ListPackagesVersions(t *testing.T) {
429432
})
430433

431434
ctx := context.Background()
432-
packages, _, err := client.Users.PackageGetAllVersions(ctx, "u", "container", "hello_docker")
435+
opts := &PackageListOptions{
436+
String("internal"), String("container"), String("deleted"), ListOptions{Page: 1, PerPage: 2},
437+
}
438+
packages, _, err := client.Users.PackageGetAllVersions(ctx, "u", "container", "hello_docker", opts)
433439
if err != nil {
434440
t.Errorf("Users.specifiedUser_PackageGetAllVersions returned error: %v", err)
435441
}
@@ -455,12 +461,12 @@ func TestUsersService_specifiedUser_ListPackagesVersions(t *testing.T) {
455461

456462
const methodName = "PackageGetAllVersions"
457463
testBadOptions(t, methodName, func() (err error) {
458-
_, _, err = client.Users.PackageGetAllVersions(ctx, "\n", "", "")
464+
_, _, err = client.Users.PackageGetAllVersions(ctx, "\n", "", "", &PackageListOptions{})
459465
return err
460466
})
461467

462468
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
463-
got, resp, err := client.Users.PackageGetAllVersions(ctx, "", "", "")
469+
got, resp, err := client.Users.PackageGetAllVersions(ctx, "", "", "", &PackageListOptions{})
464470
if got != nil {
465471
t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
466472
}

0 commit comments

Comments
 (0)