From eeb1a2fbb416fcf59af46874cd75f0c7a0543fc3 Mon Sep 17 00:00:00 2001 From: JamBalaya56562 Date: Wed, 8 Jul 2026 21:19:01 +0900 Subject: [PATCH 1/2] refactor!: Pass `RepositoryMergeRequest` by value in `Repositories.Merge` BREAKING CHANGE: `Repositories.Merge` now takes `RepositoryMergeRequest` by value instead of by pointer, and its required `Base` and `Head` fields are now non-pointer `string` values. --- .golangci.yml | 1 - github/github-accessors.go | 12 ++++++------ github/github-accessors_test.go | 10 ++-------- github/repos_merging.go | 6 +++--- github/repos_merging_test.go | 6 +++--- 5 files changed, 14 insertions(+), 21 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 0be1329cbfe..c45b08f43b3 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -258,7 +258,6 @@ linters: - RepositoryComment - RepositoryContentFileOptions - RepositoryCreateForkOptions - - RepositoryMergeRequest - RequiredStatusChecksRequest - ReviewCustomDeploymentProtectionRuleRequest - SCIMUserAttributes diff --git a/github/github-accessors.go b/github/github-accessors.go index bd0d16b6ed5..0a4bf6a9c77 100644 --- a/github/github-accessors.go +++ b/github/github-accessors.go @@ -35238,12 +35238,12 @@ func (r *RepositoryListRulesetsOptions) GetIncludesParents() bool { return *r.IncludesParents } -// GetBase returns the Base field if it's non-nil, zero value otherwise. +// GetBase returns the Base field. func (r *RepositoryMergeRequest) GetBase() string { - if r == nil || r.Base == nil { + if r == nil { return "" } - return *r.Base + return r.Base } // GetCommitMessage returns the CommitMessage field if it's non-nil, zero value otherwise. @@ -35254,12 +35254,12 @@ func (r *RepositoryMergeRequest) GetCommitMessage() string { return *r.CommitMessage } -// GetHead returns the Head field if it's non-nil, zero value otherwise. +// GetHead returns the Head field. func (r *RepositoryMergeRequest) GetHead() string { - if r == nil || r.Head == nil { + if r == nil { return "" } - return *r.Head + return r.Head } // GetAll returns the All slice if it's non-nil, nil otherwise. diff --git a/github/github-accessors_test.go b/github/github-accessors_test.go index 395b61a4791..0e14adf1cd4 100644 --- a/github/github-accessors_test.go +++ b/github/github-accessors_test.go @@ -44310,10 +44310,7 @@ func TestRepositoryListRulesetsOptions_GetIncludesParents(tt *testing.T) { func TestRepositoryMergeRequest_GetBase(tt *testing.T) { tt.Parallel() - var zeroValue string - r := &RepositoryMergeRequest{Base: &zeroValue} - r.GetBase() - r = &RepositoryMergeRequest{} + r := &RepositoryMergeRequest{} r.GetBase() r = nil r.GetBase() @@ -44332,10 +44329,7 @@ func TestRepositoryMergeRequest_GetCommitMessage(tt *testing.T) { func TestRepositoryMergeRequest_GetHead(tt *testing.T) { tt.Parallel() - var zeroValue string - r := &RepositoryMergeRequest{Head: &zeroValue} - r.GetHead() - r = &RepositoryMergeRequest{} + r := &RepositoryMergeRequest{} r.GetHead() r = nil r.GetHead() diff --git a/github/repos_merging.go b/github/repos_merging.go index d94ea2914df..ea6cc45aa82 100644 --- a/github/repos_merging.go +++ b/github/repos_merging.go @@ -13,8 +13,8 @@ import ( // RepositoryMergeRequest represents a request to merge a branch in a // repository. type RepositoryMergeRequest struct { - Base *string `json:"base,omitempty"` - Head *string `json:"head,omitempty"` + Base string `json:"base"` + Head string `json:"head"` CommitMessage *string `json:"commit_message,omitempty"` } @@ -37,7 +37,7 @@ type RepoMergeUpstreamResult struct { // GitHub API docs: https://docs.github.com/rest/branches/branches?apiVersion=2022-11-28#merge-a-branch // //meta:operation POST /repos/{owner}/{repo}/merges -func (s *RepositoriesService) Merge(ctx context.Context, owner, repo string, body *RepositoryMergeRequest) (*RepositoryCommit, *Response, error) { +func (s *RepositoriesService) Merge(ctx context.Context, owner, repo string, body RepositoryMergeRequest) (*RepositoryCommit, *Response, error) { u := fmt.Sprintf("repos/%v/%v/merges", owner, repo) req, err := s.client.NewRequest(ctx, "POST", u, body) if err != nil { diff --git a/github/repos_merging_test.go b/github/repos_merging_test.go index d139cacd9be..a881f128ac2 100644 --- a/github/repos_merging_test.go +++ b/github/repos_merging_test.go @@ -17,9 +17,9 @@ func TestRepositoriesService_Merge(t *testing.T) { t.Parallel() client, mux, _ := setup(t) - input := &RepositoryMergeRequest{ - Base: Ptr("b"), - Head: Ptr("h"), + input := RepositoryMergeRequest{ + Base: "b", + Head: "h", CommitMessage: Ptr("c"), } From d86668fb03d5e2e4dd0f54cb77786c992359392d Mon Sep 17 00:00:00 2001 From: JamBalaya56562 Date: Thu, 9 Jul 2026 18:56:47 +0900 Subject: [PATCH 2/2] refactor!: Pass `RepoMergeUpstreamRequest` by value in `Repositories.MergeUpstream` BREAKING CHANGE: `Repositories.MergeUpstream` now takes `RepoMergeUpstreamRequest` by value instead of by pointer, and its required `Branch` field is now a non-pointer `string`. --- .golangci.yml | 1 - github/github-accessors.go | 6 +++--- github/github-accessors_test.go | 5 +---- github/repos_merging.go | 4 ++-- github/repos_merging_test.go | 4 ++-- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index c45b08f43b3..f97cf33fd65 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -252,7 +252,6 @@ linters: - PullRequestReviewDismissalRequest - PullRequestReviewRequest - PullRequestReviewsEnforcementUpdate - - RepoMergeUpstreamRequest - Repository - RepositoryAddCollaboratorOptions - RepositoryComment diff --git a/github/github-accessors.go b/github/github-accessors.go index 0a4bf6a9c77..630f6f82b94 100644 --- a/github/github-accessors.go +++ b/github/github-accessors.go @@ -33198,12 +33198,12 @@ func (r *RepoImmutableReleasesStatus) GetEnforcedByOwner() bool { return *r.EnforcedByOwner } -// GetBranch returns the Branch field if it's non-nil, zero value otherwise. +// GetBranch returns the Branch field. func (r *RepoMergeUpstreamRequest) GetBranch() string { - if r == nil || r.Branch == nil { + if r == nil { return "" } - return *r.Branch + return r.Branch } // GetBaseBranch returns the BaseBranch field if it's non-nil, zero value otherwise. diff --git a/github/github-accessors_test.go b/github/github-accessors_test.go index 0e14adf1cd4..a3e50ffc4d1 100644 --- a/github/github-accessors_test.go +++ b/github/github-accessors_test.go @@ -41712,10 +41712,7 @@ func TestRepoImmutableReleasesStatus_GetEnforcedByOwner(tt *testing.T) { func TestRepoMergeUpstreamRequest_GetBranch(tt *testing.T) { tt.Parallel() - var zeroValue string - r := &RepoMergeUpstreamRequest{Branch: &zeroValue} - r.GetBranch() - r = &RepoMergeUpstreamRequest{} + r := &RepoMergeUpstreamRequest{} r.GetBranch() r = nil r.GetBranch() diff --git a/github/repos_merging.go b/github/repos_merging.go index ea6cc45aa82..a1979542574 100644 --- a/github/repos_merging.go +++ b/github/repos_merging.go @@ -21,7 +21,7 @@ type RepositoryMergeRequest struct { // RepoMergeUpstreamRequest represents a request to sync a branch of // a forked repository to keep it up-to-date with the upstream repository. type RepoMergeUpstreamRequest struct { - Branch *string `json:"branch,omitempty"` + Branch string `json:"branch"` } // RepoMergeUpstreamResult represents the result of syncing a branch of @@ -59,7 +59,7 @@ func (s *RepositoriesService) Merge(ctx context.Context, owner, repo string, bod // GitHub API docs: https://docs.github.com/rest/branches/branches?apiVersion=2022-11-28#sync-a-fork-branch-with-the-upstream-repository // //meta:operation POST /repos/{owner}/{repo}/merge-upstream -func (s *RepositoriesService) MergeUpstream(ctx context.Context, owner, repo string, body *RepoMergeUpstreamRequest) (*RepoMergeUpstreamResult, *Response, error) { +func (s *RepositoriesService) MergeUpstream(ctx context.Context, owner, repo string, body RepoMergeUpstreamRequest) (*RepoMergeUpstreamResult, *Response, error) { u := fmt.Sprintf("repos/%v/%v/merge-upstream", owner, repo) req, err := s.client.NewRequest(ctx, "POST", u, body) if err != nil { diff --git a/github/repos_merging_test.go b/github/repos_merging_test.go index a881f128ac2..f71a65741d6 100644 --- a/github/repos_merging_test.go +++ b/github/repos_merging_test.go @@ -59,8 +59,8 @@ func TestRepositoriesService_MergeUpstream(t *testing.T) { t.Parallel() client, mux, _ := setup(t) - input := &RepoMergeUpstreamRequest{ - Branch: Ptr("b"), + input := RepoMergeUpstreamRequest{ + Branch: "b", } mux.HandleFunc("/repos/o/r/merge-upstream", func(w http.ResponseWriter, r *http.Request) {