From 9dd9a9931915e9c5008e3ca61d67257ae53f7b49 Mon Sep 17 00:00:00 2001 From: Dhananjay Mishra Date: Sun, 15 Feb 2026 13:25:47 +0000 Subject: [PATCH 1/4] divide PackageGetAllVersions into two seperate methods --- github/github-iterators.go | 31 ++++++++++++++ github/github-iterators_test.go | 72 +++++++++++++++++++++++++++++++++ github/users_packages.go | 37 +++++++++++------ github/users_packages_test.go | 33 +++++++-------- 4 files changed, 143 insertions(+), 30 deletions(-) diff --git a/github/github-iterators.go b/github/github-iterators.go index cdc88d681b2..412cd9e6fe3 100644 --- a/github/github-iterators.go +++ b/github/github-iterators.go @@ -7172,6 +7172,37 @@ func (s *UsersService) ListKeysIter(ctx context.Context, user string, opts *List } } +// ListPackageVersionsIter returns an iterator that paginates through all results of ListPackageVersions. +func (s *UsersService) ListPackageVersionsIter(ctx context.Context, packageType string, packageName string, opts *PackageListOptions) iter.Seq2[*PackageVersion, error] { + return func(yield func(*PackageVersion, error) bool) { + // Create a copy of opts to avoid mutating the caller's struct + if opts == nil { + opts = &PackageListOptions{} + } else { + opts = Ptr(*opts) + } + + for { + results, resp, err := s.ListPackageVersions(ctx, packageType, packageName, opts) + if err != nil { + yield(nil, err) + return + } + + for _, item := range results { + if !yield(item, nil) { + return + } + } + + if resp.NextPage == 0 { + break + } + opts.ListOptions.Page = resp.NextPage + } + } +} + // ListPackagesIter returns an iterator that paginates through all results of ListPackages. func (s *UsersService) ListPackagesIter(ctx context.Context, user string, opts *PackageListOptions) iter.Seq2[*Package, error] { return func(yield func(*Package, error) bool) { diff --git a/github/github-iterators_test.go b/github/github-iterators_test.go index 055d4966413..0f8e8bf3e53 100644 --- a/github/github-iterators_test.go +++ b/github/github-iterators_test.go @@ -15999,6 +15999,78 @@ func TestUsersService_ListKeysIter(t *testing.T) { } } +func TestUsersService_ListPackageVersionsIter(t *testing.T) { + t.Parallel() + client, mux, _ := setup(t) + var callNum int + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + callNum++ + switch callNum { + case 1: + w.Header().Set("Link", `; rel="next"`) + fmt.Fprint(w, `[{},{},{}]`) + case 2: + fmt.Fprint(w, `[{},{},{},{}]`) + case 3: + fmt.Fprint(w, `[{},{}]`) + case 4: + w.WriteHeader(http.StatusNotFound) + case 5: + fmt.Fprint(w, `[{},{}]`) + } + }) + + iter := client.Users.ListPackageVersionsIter(t.Context(), "", "", nil) + var gotItems int + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 7; gotItems != want { + t.Errorf("client.Users.ListPackageVersionsIter call 1 got %v items; want %v", gotItems, want) + } + + opts := &PackageListOptions{} + iter = client.Users.ListPackageVersionsIter(t.Context(), "", "", opts) + gotItems = 0 + for _, err := range iter { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + } + if want := 2; gotItems != want { + t.Errorf("client.Users.ListPackageVersionsIter call 2 got %v items; want %v", gotItems, want) + } + + iter = client.Users.ListPackageVersionsIter(t.Context(), "", "", nil) + gotItems = 0 + for _, err := range iter { + gotItems++ + if err == nil { + t.Error("expected error; got nil") + } + } + if gotItems != 1 { + t.Errorf("client.Users.ListPackageVersionsIter call 3 got %v items; want 1 (an error)", gotItems) + } + + iter = client.Users.ListPackageVersionsIter(t.Context(), "", "", nil) + gotItems = 0 + iter(func(item *PackageVersion, err error) bool { + gotItems++ + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + return false + }) + if gotItems != 1 { + t.Errorf("client.Users.ListPackageVersionsIter call 4 got %v items; want 1 (an error)", gotItems) + } +} + func TestUsersService_ListPackagesIter(t *testing.T) { t.Parallel() client, mux, _ := setup(t) diff --git a/github/users_packages.go b/github/users_packages.go index fa6cd9157c1..ae475a478a2 100644 --- a/github/users_packages.go +++ b/github/users_packages.go @@ -127,22 +127,13 @@ func (s *UsersService) RestorePackage(ctx context.Context, user, packageType, pa return s.client.Do(ctx, req, nil) } -// PackageGetAllVersions gets all versions of a package for a user. Passing the empty string for "user" will -// get versions for the authenticated user. -// -// GitHub API docs: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-a-user +// ListPackageVersions gets all versions of a package for the authenticated user. // // GitHub API docs: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user // //meta:operation GET /user/packages/{package_type}/{package_name}/versions -//meta:operation GET /users/{username}/packages/{package_type}/{package_name}/versions -func (s *UsersService) PackageGetAllVersions(ctx context.Context, user, packageType, packageName string, opts *PackageListOptions) ([]*PackageVersion, *Response, error) { - var u string - if user != "" { - u = fmt.Sprintf("users/%v/packages/%v/%v/versions", user, packageType, packageName) - } else { - u = fmt.Sprintf("user/packages/%v/%v/versions", packageType, packageName) - } +func (s *UsersService) ListPackageVersions(ctx context.Context, packageType, packageName string, opts *PackageListOptions) ([]*PackageVersion, *Response, error) { + u := fmt.Sprintf("user/packages/%v/%v/versions", packageType, packageName) u, err := addOptions(u, opts) if err != nil { return nil, nil, err @@ -162,6 +153,28 @@ func (s *UsersService) PackageGetAllVersions(ctx context.Context, user, packageT return versions, resp, nil } +// ListPackageVersionsForUser gets all versions of a package for a user. +// +// GitHub API docs: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-a-user +// +//meta:operation GET /users/{username}/packages/{package_type}/{package_name}/versions +func (s *UsersService) ListPackageVersionsForUser(ctx context.Context, user, packageType, packageName string) ([]*PackageVersion, *Response, error) { + u := fmt.Sprintf("users/%v/packages/%v/%v/versions", user, packageType, packageName) + + req, err := s.client.NewRequest("GET", u, nil) + if err != nil { + return nil, nil, err + } + + var versions []*PackageVersion + resp, err := s.client.Do(ctx, req, &versions) + if err != nil { + return nil, resp, err + } + + return versions, resp, nil +} + // PackageGetVersion gets a specific version of a package for a user. Passing the empty string for "user" will // get the version for the authenticated user. // diff --git a/github/users_packages_test.go b/github/users_packages_test.go index e8d6af02243..40dfa1b16ce 100644 --- a/github/users_packages_test.go +++ b/github/users_packages_test.go @@ -339,7 +339,7 @@ func TestUsersService_specifiedUser_RestorePackage(t *testing.T) { }) } -func TestUsersService_Authenticated_ListPackagesVersions(t *testing.T) { +func TestUsersService_ListPackageVersions(t *testing.T) { t.Parallel() client, mux, _ := setup(t) @@ -369,11 +369,11 @@ func TestUsersService_Authenticated_ListPackagesVersions(t *testing.T) { ctx := t.Context() opts := &PackageListOptions{ - Ptr("internal"), Ptr("container"), Ptr("deleted"), ListOptions{Page: 1, PerPage: 2}, + ListOptions: ListOptions{Page: 1, PerPage: 2}, } - packages, _, err := client.Users.PackageGetAllVersions(ctx, "", "container", "hello_docker", opts) + packages, _, err := client.Users.ListPackageVersions(ctx, "container", "hello_docker", opts) if err != nil { - t.Errorf("Users.Authenticated_PackageGetAllVersions returned error: %v", err) + t.Errorf("Users.ListPackageVersions returned error: %v", err) } want := []*PackageVersion{{ @@ -387,17 +387,17 @@ func TestUsersService_Authenticated_ListPackagesVersions(t *testing.T) { Metadata: json.RawMessage(m), }} if !cmp.Equal(packages, want) { - t.Errorf("Users.PackageGetAllVersions returned %+v, want %+v", packages, want) + t.Errorf("Users.ListPackageVersions returned %+v, want %+v", packages, want) } - const methodName = "PackageGetAllVersions" + const methodName = "ListPackageVersions" testBadOptions(t, methodName, func() (err error) { - _, _, err = client.Users.PackageGetAllVersions(ctx, "\n", "", "", &PackageListOptions{}) + _, _, err = client.Users.ListPackageVersions(ctx, "\n", "\n", &PackageListOptions{}) return err }) testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) { - got, resp, err := client.Users.PackageGetAllVersions(ctx, "", "", "", &PackageListOptions{}) + got, resp, err := client.Users.ListPackageVersions(ctx, "", "", &PackageListOptions{}) if got != nil { t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got) } @@ -405,7 +405,7 @@ func TestUsersService_Authenticated_ListPackagesVersions(t *testing.T) { }) } -func TestUsersService_specifiedUser_ListPackagesVersions(t *testing.T) { +func TestUsersService_ListPackageVersionsForUser(t *testing.T) { t.Parallel() client, mux, _ := setup(t) @@ -434,12 +434,9 @@ func TestUsersService_specifiedUser_ListPackagesVersions(t *testing.T) { }) ctx := t.Context() - opts := &PackageListOptions{ - Ptr("internal"), Ptr("container"), Ptr("deleted"), ListOptions{Page: 1, PerPage: 2}, - } - packages, _, err := client.Users.PackageGetAllVersions(ctx, "u", "container", "hello_docker", opts) + packages, _, err := client.Users.ListPackageVersionsForUser(ctx, "u", "container", "hello_docker") if err != nil { - t.Errorf("Users.specifiedUser_PackageGetAllVersions returned error: %v", err) + t.Errorf("Users.ListPackageVersionsForUser returned error: %v", err) } want := []*PackageVersion{{ @@ -453,17 +450,17 @@ func TestUsersService_specifiedUser_ListPackagesVersions(t *testing.T) { Metadata: json.RawMessage(m), }} if !cmp.Equal(packages, want) { - t.Errorf("Users.specifiedUser_PackageGetAllVersions returned %+v, want %+v", packages, want) + t.Errorf("Users.ListPackageVersionsForUser returned %+v, want %+v", packages, want) } - const methodName = "PackageGetAllVersions" + const methodName = "ListPackageVersionsForUser" testBadOptions(t, methodName, func() (err error) { - _, _, err = client.Users.PackageGetAllVersions(ctx, "\n", "", "", &PackageListOptions{}) + _, _, err = client.Users.ListPackageVersionsForUser(ctx, "\n", "\n", "\n") return err }) testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) { - got, resp, err := client.Users.PackageGetAllVersions(ctx, "", "", "", &PackageListOptions{}) + got, resp, err := client.Users.ListPackageVersionsForUser(ctx, "", "", "") if got != nil { t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got) } From 94f0eb0e0ea5ccc88a60f567620840f551b8b785 Mon Sep 17 00:00:00 2001 From: Dhananjay Mishra Date: Sun, 15 Feb 2026 14:16:21 +0000 Subject: [PATCH 2/4] new PackageVersionListOptions struct --- github/github-iterators.go | 4 ++-- github/github-iterators_test.go | 2 +- github/users_packages.go | 10 +++++++++- github/users_packages_test.go | 6 +++--- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/github/github-iterators.go b/github/github-iterators.go index 412cd9e6fe3..45262d627c3 100644 --- a/github/github-iterators.go +++ b/github/github-iterators.go @@ -7173,11 +7173,11 @@ func (s *UsersService) ListKeysIter(ctx context.Context, user string, opts *List } // ListPackageVersionsIter returns an iterator that paginates through all results of ListPackageVersions. -func (s *UsersService) ListPackageVersionsIter(ctx context.Context, packageType string, packageName string, opts *PackageListOptions) iter.Seq2[*PackageVersion, error] { +func (s *UsersService) ListPackageVersionsIter(ctx context.Context, packageType string, packageName string, opts *PackageVersionListOptions) iter.Seq2[*PackageVersion, error] { return func(yield func(*PackageVersion, error) bool) { // Create a copy of opts to avoid mutating the caller's struct if opts == nil { - opts = &PackageListOptions{} + opts = &PackageVersionListOptions{} } else { opts = Ptr(*opts) } diff --git a/github/github-iterators_test.go b/github/github-iterators_test.go index 0f8e8bf3e53..b88a7fb2ee1 100644 --- a/github/github-iterators_test.go +++ b/github/github-iterators_test.go @@ -16032,7 +16032,7 @@ func TestUsersService_ListPackageVersionsIter(t *testing.T) { t.Errorf("client.Users.ListPackageVersionsIter call 1 got %v items; want %v", gotItems, want) } - opts := &PackageListOptions{} + opts := &PackageVersionListOptions{} iter = client.Users.ListPackageVersionsIter(t.Context(), "", "", opts) gotItems = 0 for _, err := range iter { diff --git a/github/users_packages.go b/github/users_packages.go index ae475a478a2..b480bf08e33 100644 --- a/github/users_packages.go +++ b/github/users_packages.go @@ -127,12 +127,20 @@ func (s *UsersService) RestorePackage(ctx context.Context, user, packageType, pa return s.client.Do(ctx, req, nil) } +// PackageVersionListOptions specifies the optional parameters to the UsersService.ListPackageVersions. +type PackageVersionListOptions struct { + // State of package either "active" or "deleted". + State string `url:"state,omitempty"` + + ListOptions +} + // ListPackageVersions gets all versions of a package for the authenticated user. // // GitHub API docs: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user // //meta:operation GET /user/packages/{package_type}/{package_name}/versions -func (s *UsersService) ListPackageVersions(ctx context.Context, packageType, packageName string, opts *PackageListOptions) ([]*PackageVersion, *Response, error) { +func (s *UsersService) ListPackageVersions(ctx context.Context, packageType, packageName string, opts *PackageVersionListOptions) ([]*PackageVersion, *Response, error) { u := fmt.Sprintf("user/packages/%v/%v/versions", packageType, packageName) u, err := addOptions(u, opts) if err != nil { diff --git a/github/users_packages_test.go b/github/users_packages_test.go index 40dfa1b16ce..fbd717c9df2 100644 --- a/github/users_packages_test.go +++ b/github/users_packages_test.go @@ -368,7 +368,7 @@ func TestUsersService_ListPackageVersions(t *testing.T) { }) ctx := t.Context() - opts := &PackageListOptions{ + opts := &PackageVersionListOptions{ ListOptions: ListOptions{Page: 1, PerPage: 2}, } packages, _, err := client.Users.ListPackageVersions(ctx, "container", "hello_docker", opts) @@ -392,12 +392,12 @@ func TestUsersService_ListPackageVersions(t *testing.T) { const methodName = "ListPackageVersions" testBadOptions(t, methodName, func() (err error) { - _, _, err = client.Users.ListPackageVersions(ctx, "\n", "\n", &PackageListOptions{}) + _, _, err = client.Users.ListPackageVersions(ctx, "\n", "\n", &PackageVersionListOptions{}) return err }) testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) { - got, resp, err := client.Users.ListPackageVersions(ctx, "", "", &PackageListOptions{}) + got, resp, err := client.Users.ListPackageVersions(ctx, "", "", &PackageVersionListOptions{}) if got != nil { t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got) } From 0af4db9904284a1954b737124a80f1e46b9b7ccc Mon Sep 17 00:00:00 2001 From: Dhananjay Mishra Date: Sun, 15 Feb 2026 15:30:00 +0000 Subject: [PATCH 3/4] feedback --- github/github-iterators.go | 4 ++-- github/github-iterators_test.go | 2 +- github/users_packages.go | 6 +++--- github/users_packages_test.go | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/github/github-iterators.go b/github/github-iterators.go index 45262d627c3..77d8f2be01e 100644 --- a/github/github-iterators.go +++ b/github/github-iterators.go @@ -7173,11 +7173,11 @@ func (s *UsersService) ListKeysIter(ctx context.Context, user string, opts *List } // ListPackageVersionsIter returns an iterator that paginates through all results of ListPackageVersions. -func (s *UsersService) ListPackageVersionsIter(ctx context.Context, packageType string, packageName string, opts *PackageVersionListOptions) iter.Seq2[*PackageVersion, error] { +func (s *UsersService) ListPackageVersionsIter(ctx context.Context, packageType string, packageName string, opts *ListPackageVersionOptions) iter.Seq2[*PackageVersion, error] { return func(yield func(*PackageVersion, error) bool) { // Create a copy of opts to avoid mutating the caller's struct if opts == nil { - opts = &PackageVersionListOptions{} + opts = &ListPackageVersionOptions{} } else { opts = Ptr(*opts) } diff --git a/github/github-iterators_test.go b/github/github-iterators_test.go index b88a7fb2ee1..580a086e913 100644 --- a/github/github-iterators_test.go +++ b/github/github-iterators_test.go @@ -16032,7 +16032,7 @@ func TestUsersService_ListPackageVersionsIter(t *testing.T) { t.Errorf("client.Users.ListPackageVersionsIter call 1 got %v items; want %v", gotItems, want) } - opts := &PackageVersionListOptions{} + opts := &ListPackageVersionOptions{} iter = client.Users.ListPackageVersionsIter(t.Context(), "", "", opts) gotItems = 0 for _, err := range iter { diff --git a/github/users_packages.go b/github/users_packages.go index b480bf08e33..7c69e8da423 100644 --- a/github/users_packages.go +++ b/github/users_packages.go @@ -127,8 +127,8 @@ func (s *UsersService) RestorePackage(ctx context.Context, user, packageType, pa return s.client.Do(ctx, req, nil) } -// PackageVersionListOptions specifies the optional parameters to the UsersService.ListPackageVersions. -type PackageVersionListOptions struct { +// ListPackageVersionOptions specifies the optional parameters to the UsersService.ListPackageVersions. +type ListPackageVersionOptions struct { // State of package either "active" or "deleted". State string `url:"state,omitempty"` @@ -140,7 +140,7 @@ type PackageVersionListOptions struct { // GitHub API docs: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user // //meta:operation GET /user/packages/{package_type}/{package_name}/versions -func (s *UsersService) ListPackageVersions(ctx context.Context, packageType, packageName string, opts *PackageVersionListOptions) ([]*PackageVersion, *Response, error) { +func (s *UsersService) ListPackageVersions(ctx context.Context, packageType, packageName string, opts *ListPackageVersionOptions) ([]*PackageVersion, *Response, error) { u := fmt.Sprintf("user/packages/%v/%v/versions", packageType, packageName) u, err := addOptions(u, opts) if err != nil { diff --git a/github/users_packages_test.go b/github/users_packages_test.go index fbd717c9df2..2c777e1320b 100644 --- a/github/users_packages_test.go +++ b/github/users_packages_test.go @@ -368,7 +368,7 @@ func TestUsersService_ListPackageVersions(t *testing.T) { }) ctx := t.Context() - opts := &PackageVersionListOptions{ + opts := &ListPackageVersionOptions{ ListOptions: ListOptions{Page: 1, PerPage: 2}, } packages, _, err := client.Users.ListPackageVersions(ctx, "container", "hello_docker", opts) @@ -392,12 +392,12 @@ func TestUsersService_ListPackageVersions(t *testing.T) { const methodName = "ListPackageVersions" testBadOptions(t, methodName, func() (err error) { - _, _, err = client.Users.ListPackageVersions(ctx, "\n", "\n", &PackageVersionListOptions{}) + _, _, err = client.Users.ListPackageVersions(ctx, "\n", "\n", &ListPackageVersionOptions{}) return err }) testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) { - got, resp, err := client.Users.ListPackageVersions(ctx, "", "", &PackageVersionListOptions{}) + got, resp, err := client.Users.ListPackageVersions(ctx, "", "", &ListPackageVersionOptions{}) if got != nil { t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got) } From d82877116ea8268ae90ae2b7e5cfc46165a27175 Mon Sep 17 00:00:00 2001 From: Dhananjay Mishra Date: Mon, 16 Feb 2026 13:53:39 +0000 Subject: [PATCH 4/4] feedback --- github/github-iterators.go | 4 ++-- github/github-iterators_test.go | 2 +- github/users_packages.go | 10 +++++----- github/users_packages_test.go | 20 ++++++++++---------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/github/github-iterators.go b/github/github-iterators.go index 77d8f2be01e..8d4cced8c6c 100644 --- a/github/github-iterators.go +++ b/github/github-iterators.go @@ -7173,11 +7173,11 @@ func (s *UsersService) ListKeysIter(ctx context.Context, user string, opts *List } // ListPackageVersionsIter returns an iterator that paginates through all results of ListPackageVersions. -func (s *UsersService) ListPackageVersionsIter(ctx context.Context, packageType string, packageName string, opts *ListPackageVersionOptions) iter.Seq2[*PackageVersion, error] { +func (s *UsersService) ListPackageVersionsIter(ctx context.Context, packageType string, packageName string, opts *ListPackageVersionsOptions) iter.Seq2[*PackageVersion, error] { return func(yield func(*PackageVersion, error) bool) { // Create a copy of opts to avoid mutating the caller's struct if opts == nil { - opts = &ListPackageVersionOptions{} + opts = &ListPackageVersionsOptions{} } else { opts = Ptr(*opts) } diff --git a/github/github-iterators_test.go b/github/github-iterators_test.go index 580a086e913..9a074b5e814 100644 --- a/github/github-iterators_test.go +++ b/github/github-iterators_test.go @@ -16032,7 +16032,7 @@ func TestUsersService_ListPackageVersionsIter(t *testing.T) { t.Errorf("client.Users.ListPackageVersionsIter call 1 got %v items; want %v", gotItems, want) } - opts := &ListPackageVersionOptions{} + opts := &ListPackageVersionsOptions{} iter = client.Users.ListPackageVersionsIter(t.Context(), "", "", opts) gotItems = 0 for _, err := range iter { diff --git a/github/users_packages.go b/github/users_packages.go index 7c69e8da423..f0c152dd545 100644 --- a/github/users_packages.go +++ b/github/users_packages.go @@ -127,8 +127,8 @@ func (s *UsersService) RestorePackage(ctx context.Context, user, packageType, pa return s.client.Do(ctx, req, nil) } -// ListPackageVersionOptions specifies the optional parameters to the UsersService.ListPackageVersions. -type ListPackageVersionOptions struct { +// ListPackageVersionsOptions specifies the optional parameters to the UsersService.ListPackageVersions. +type ListPackageVersionsOptions struct { // State of package either "active" or "deleted". State string `url:"state,omitempty"` @@ -140,7 +140,7 @@ type ListPackageVersionOptions struct { // GitHub API docs: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user // //meta:operation GET /user/packages/{package_type}/{package_name}/versions -func (s *UsersService) ListPackageVersions(ctx context.Context, packageType, packageName string, opts *ListPackageVersionOptions) ([]*PackageVersion, *Response, error) { +func (s *UsersService) ListPackageVersions(ctx context.Context, packageType, packageName string, opts *ListPackageVersionsOptions) ([]*PackageVersion, *Response, error) { u := fmt.Sprintf("user/packages/%v/%v/versions", packageType, packageName) u, err := addOptions(u, opts) if err != nil { @@ -161,12 +161,12 @@ func (s *UsersService) ListPackageVersions(ctx context.Context, packageType, pac return versions, resp, nil } -// ListPackageVersionsForUser gets all versions of a package for a user. +// ListUserPackageVersions returns package versions for a public package owned by a specified user. // // GitHub API docs: https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-a-user // //meta:operation GET /users/{username}/packages/{package_type}/{package_name}/versions -func (s *UsersService) ListPackageVersionsForUser(ctx context.Context, user, packageType, packageName string) ([]*PackageVersion, *Response, error) { +func (s *UsersService) ListUserPackageVersions(ctx context.Context, user, packageType, packageName string) ([]*PackageVersion, *Response, error) { u := fmt.Sprintf("users/%v/packages/%v/%v/versions", user, packageType, packageName) req, err := s.client.NewRequest("GET", u, nil) diff --git a/github/users_packages_test.go b/github/users_packages_test.go index 2c777e1320b..939344fd93d 100644 --- a/github/users_packages_test.go +++ b/github/users_packages_test.go @@ -368,7 +368,7 @@ func TestUsersService_ListPackageVersions(t *testing.T) { }) ctx := t.Context() - opts := &ListPackageVersionOptions{ + opts := &ListPackageVersionsOptions{ ListOptions: ListOptions{Page: 1, PerPage: 2}, } packages, _, err := client.Users.ListPackageVersions(ctx, "container", "hello_docker", opts) @@ -392,12 +392,12 @@ func TestUsersService_ListPackageVersions(t *testing.T) { const methodName = "ListPackageVersions" testBadOptions(t, methodName, func() (err error) { - _, _, err = client.Users.ListPackageVersions(ctx, "\n", "\n", &ListPackageVersionOptions{}) + _, _, err = client.Users.ListPackageVersions(ctx, "\n", "\n", &ListPackageVersionsOptions{}) return err }) testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) { - got, resp, err := client.Users.ListPackageVersions(ctx, "", "", &ListPackageVersionOptions{}) + got, resp, err := client.Users.ListPackageVersions(ctx, "", "", &ListPackageVersionsOptions{}) if got != nil { t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got) } @@ -405,7 +405,7 @@ func TestUsersService_ListPackageVersions(t *testing.T) { }) } -func TestUsersService_ListPackageVersionsForUser(t *testing.T) { +func TestUsersService_ListUserPackageVersions(t *testing.T) { t.Parallel() client, mux, _ := setup(t) @@ -434,9 +434,9 @@ func TestUsersService_ListPackageVersionsForUser(t *testing.T) { }) ctx := t.Context() - packages, _, err := client.Users.ListPackageVersionsForUser(ctx, "u", "container", "hello_docker") + packages, _, err := client.Users.ListUserPackageVersions(ctx, "u", "container", "hello_docker") if err != nil { - t.Errorf("Users.ListPackageVersionsForUser returned error: %v", err) + t.Errorf("Users.ListUserPackageVersions returned error: %v", err) } want := []*PackageVersion{{ @@ -450,17 +450,17 @@ func TestUsersService_ListPackageVersionsForUser(t *testing.T) { Metadata: json.RawMessage(m), }} if !cmp.Equal(packages, want) { - t.Errorf("Users.ListPackageVersionsForUser returned %+v, want %+v", packages, want) + t.Errorf("Users.ListUserPackageVersions returned %+v, want %+v", packages, want) } - const methodName = "ListPackageVersionsForUser" + const methodName = "ListUserPackageVersions" testBadOptions(t, methodName, func() (err error) { - _, _, err = client.Users.ListPackageVersionsForUser(ctx, "\n", "\n", "\n") + _, _, err = client.Users.ListUserPackageVersions(ctx, "\n", "\n", "\n") return err }) testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) { - got, resp, err := client.Users.ListPackageVersionsForUser(ctx, "", "", "") + got, resp, err := client.Users.ListUserPackageVersions(ctx, "", "", "") if got != nil { t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got) }