Loading examples/merge_request.go +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ func createMergeRequestAndSetAutoMerge() { // Set auto-merge to created Merge Request // c.f. https://docs.gitlab.com/user/project/merge_requests/auto_merge/ _, _, err = git.MergeRequests.AcceptMergeRequest( projectName, mr.IID, &gitlab.AcceptMergeRequestOptions{MergeWhenPipelineSucceeds: gitlab.Ptr(true)}, projectName, mr.IID, &gitlab.AcceptMergeRequestOptions{AutoMerge: gitlab.Ptr(true)}, // client-go provides retries on rate limit (429) and server (>= 500) errors by default. // Loading merge_requests.go +9 −6 Original line number Diff line number Diff line Loading @@ -930,12 +930,15 @@ func (s *MergeRequestsService) DeleteMergeRequest(pid any, mergeRequest int, opt // GitLab API docs: // https://docs.gitlab.com/api/merge_requests/#merge-a-merge-request type AcceptMergeRequestOptions struct { AutoMerge *bool `url:"auto_merge,omitempty" json:"auto_merge,omitempty"` MergeCommitMessage *string `url:"merge_commit_message,omitempty" json:"merge_commit_message,omitempty"` SquashCommitMessage *string `url:"squash_commit_message,omitempty" json:"squash_commit_message,omitempty"` Squash *bool `url:"squash,omitempty" json:"squash,omitempty"` ShouldRemoveSourceBranch *bool `url:"should_remove_source_branch,omitempty" json:"should_remove_source_branch,omitempty"` MergeWhenPipelineSucceeds *bool `url:"merge_when_pipeline_succeeds,omitempty" json:"merge_when_pipeline_succeeds,omitempty"` SHA *string `url:"sha,omitempty" json:"sha,omitempty"` // Deprecated: use AutoMerge instead MergeWhenPipelineSucceeds *bool `url:"merge_when_pipeline_succeeds,omitempty" json:"merge_when_pipeline_succeeds,omitempty"` } // AcceptMergeRequest merges changes submitted with MR using this API. If merge Loading merge_requests_test.go +35 −0 Original line number Diff line number Diff line Loading @@ -646,3 +646,38 @@ func TestDeleteMergeRequestDependency(t *testing.T) { } } } func TestAcceptMergeRequest(t *testing.T) { t.Parallel() mux, client := setup(t) const project = "12345" const mergeRequest = 1 path := fmt.Sprintf("/%sprojects/%s/merge_requests/%d/merge", apiVersionPath, project, mergeRequest) mux.HandleFunc(path, func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, http.MethodPut) fmt.Fprint(w, `{"id":1,"iid":1,"state":"merged","title":"Test MR","merge_commit_sha":"abc123"}`) }) opts := &AcceptMergeRequestOptions{ MergeCommitMessage: Ptr("Custom merge message"), Squash: Ptr(true), AutoMerge: Ptr(true), } mr, resp, err := client.MergeRequests.AcceptMergeRequest(project, mergeRequest, opts) assert.NoError(t, err) assert.NotNil(t, resp) want := &MergeRequest{ BasicMergeRequest: BasicMergeRequest{ ID: 1, IID: 1, State: "merged", Title: "Test MR", MergeCommitSHA: "abc123", }, } assert.Equal(t, want, mr) } Loading
examples/merge_request.go +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ func createMergeRequestAndSetAutoMerge() { // Set auto-merge to created Merge Request // c.f. https://docs.gitlab.com/user/project/merge_requests/auto_merge/ _, _, err = git.MergeRequests.AcceptMergeRequest( projectName, mr.IID, &gitlab.AcceptMergeRequestOptions{MergeWhenPipelineSucceeds: gitlab.Ptr(true)}, projectName, mr.IID, &gitlab.AcceptMergeRequestOptions{AutoMerge: gitlab.Ptr(true)}, // client-go provides retries on rate limit (429) and server (>= 500) errors by default. // Loading
merge_requests.go +9 −6 Original line number Diff line number Diff line Loading @@ -930,12 +930,15 @@ func (s *MergeRequestsService) DeleteMergeRequest(pid any, mergeRequest int, opt // GitLab API docs: // https://docs.gitlab.com/api/merge_requests/#merge-a-merge-request type AcceptMergeRequestOptions struct { AutoMerge *bool `url:"auto_merge,omitempty" json:"auto_merge,omitempty"` MergeCommitMessage *string `url:"merge_commit_message,omitempty" json:"merge_commit_message,omitempty"` SquashCommitMessage *string `url:"squash_commit_message,omitempty" json:"squash_commit_message,omitempty"` Squash *bool `url:"squash,omitempty" json:"squash,omitempty"` ShouldRemoveSourceBranch *bool `url:"should_remove_source_branch,omitempty" json:"should_remove_source_branch,omitempty"` MergeWhenPipelineSucceeds *bool `url:"merge_when_pipeline_succeeds,omitempty" json:"merge_when_pipeline_succeeds,omitempty"` SHA *string `url:"sha,omitempty" json:"sha,omitempty"` // Deprecated: use AutoMerge instead MergeWhenPipelineSucceeds *bool `url:"merge_when_pipeline_succeeds,omitempty" json:"merge_when_pipeline_succeeds,omitempty"` } // AcceptMergeRequest merges changes submitted with MR using this API. If merge Loading
merge_requests_test.go +35 −0 Original line number Diff line number Diff line Loading @@ -646,3 +646,38 @@ func TestDeleteMergeRequestDependency(t *testing.T) { } } } func TestAcceptMergeRequest(t *testing.T) { t.Parallel() mux, client := setup(t) const project = "12345" const mergeRequest = 1 path := fmt.Sprintf("/%sprojects/%s/merge_requests/%d/merge", apiVersionPath, project, mergeRequest) mux.HandleFunc(path, func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, http.MethodPut) fmt.Fprint(w, `{"id":1,"iid":1,"state":"merged","title":"Test MR","merge_commit_sha":"abc123"}`) }) opts := &AcceptMergeRequestOptions{ MergeCommitMessage: Ptr("Custom merge message"), Squash: Ptr(true), AutoMerge: Ptr(true), } mr, resp, err := client.MergeRequests.AcceptMergeRequest(project, mergeRequest, opts) assert.NoError(t, err) assert.NotNil(t, resp) want := &MergeRequest{ BasicMergeRequest: BasicMergeRequest{ ID: 1, IID: 1, State: "merged", Title: "Test MR", MergeCommitSHA: "abc123", }, } assert.Equal(t, want, mr) }