From 6ba387c8d58e235def471dace601a2a46a503f98 Mon Sep 17 00:00:00 2001 From: Ilya Savitsky Date: Sat, 11 Oct 2025 20:04:20 +0100 Subject: [PATCH] Add merge requests commit apis --- gitlab.go | 2 + gitlab_service_map_generated_test.go | 1 + merge_request_context_commits.go | 116 +++++++++++ merge_request_context_commits_test.go | 182 ++++++++++++++++++ .../create_merge_request_context_commits.json | 20 ++ .../list_merge_request_context_commits.json | 16 ++ testing/api_generated.go | 1 + testing/client_generated.go | 4 + testing/merge_request_context_commits_mock.go | 174 +++++++++++++++++ 9 files changed, 516 insertions(+) create mode 100644 merge_request_context_commits.go create mode 100644 merge_request_context_commits_test.go create mode 100644 testdata/create_merge_request_context_commits.json create mode 100644 testdata/list_merge_request_context_commits.json create mode 100644 testing/merge_request_context_commits_mock.go diff --git a/gitlab.go b/gitlab.go index ba96ac51..d4b4d157 100644 --- a/gitlab.go +++ b/gitlab.go @@ -202,6 +202,7 @@ type Client struct { MemberRolesService MemberRolesServiceInterface MergeRequestApprovals MergeRequestApprovalsServiceInterface MergeRequestApprovalSettings MergeRequestApprovalSettingsServiceInterface + MergeRequestContextCommits MergeRequestContextCommitsServiceInterface MergeRequests MergeRequestsServiceInterface MergeTrains MergeTrainsServiceInterface Metadata MetadataServiceInterface @@ -514,6 +515,7 @@ func NewAuthSourceClient(as AuthSource, options ...ClientOptionFunc) (*Client, e c.MemberRolesService = &MemberRolesService{client: c} c.MergeRequestApprovals = &MergeRequestApprovalsService{client: c} c.MergeRequestApprovalSettings = &MergeRequestApprovalSettingsService{client: c} + c.MergeRequestContextCommits = &MergeRequestContextCommitsService{client: c} c.MergeRequests = &MergeRequestsService{client: c, timeStats: timeStats} c.MergeTrains = &MergeTrainsService{client: c} c.Metadata = &MetadataService{client: c} diff --git a/gitlab_service_map_generated_test.go b/gitlab_service_map_generated_test.go index 1122963e..6f82178a 100644 --- a/gitlab_service_map_generated_test.go +++ b/gitlab_service_map_generated_test.go @@ -87,6 +87,7 @@ var serviceMap = map[any]any{ &MemberRolesService{}: (*MemberRolesServiceInterface)(nil), &MergeRequestApprovalSettingsService{}: (*MergeRequestApprovalSettingsServiceInterface)(nil), &MergeRequestApprovalsService{}: (*MergeRequestApprovalsServiceInterface)(nil), + &MergeRequestContextCommitsService{}: (*MergeRequestContextCommitsServiceInterface)(nil), &MergeRequestsService{}: (*MergeRequestsServiceInterface)(nil), &MergeTrainsService{}: (*MergeTrainsServiceInterface)(nil), &MetadataService{}: (*MetadataServiceInterface)(nil), diff --git a/merge_request_context_commits.go b/merge_request_context_commits.go new file mode 100644 index 00000000..08819fcd --- /dev/null +++ b/merge_request_context_commits.go @@ -0,0 +1,116 @@ +package gitlab + +import ( + "fmt" + "net/http" +) + +type ( + // MergeRequestContextCommitsServiceInterface handles communication with the + // merge request context commits related methods of the GitLab API. + MergeRequestContextCommitsServiceInterface interface { + // ListMergeRequestContextCommits gets a list of merge request context commits. + // + // GitLab API docs: + // https://docs.gitlab.com/api/merge_request_context_commits/#list-mr-context-commits + ListMergeRequestContextCommits(pid any, mergeRequest int64, options ...RequestOptionFunc) ([]*Commit, *Response, error) + // CreateMergeRequestContextCommits creates a list of merge request context + // commits. + // + // GitLab API docs: + // https://docs.gitlab.com/api/merge_request_context_commits/#create-mr-context-commits + CreateMergeRequestContextCommits(pid any, mergeRequest int64, opt *CreateMergeRequestContextCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error) + // DeleteMergeRequestContextCommits deletes a list of merge request context + // commits. + // + // GitLab API docs: + // https://docs.gitlab.com/api/merge_request_context_commits/#delete-mr-context-commits + DeleteMergeRequestContextCommits(pid any, mergeRequest int64, opt *DeleteMergeRequestContextCommitsOptions, options ...RequestOptionFunc) (*Response, error) + } + + // MergeRequestContextCommitsService handles communication with the merge + // request context commits related methods of the GitLab API. + // + // GitLab API docs: + // https://docs.gitlab.com/api/merge_request_context_commits/ + MergeRequestContextCommitsService struct { + client *Client + } +) + +var _ MergeRequestContextCommitsServiceInterface = (*MergeRequestContextCommitsService)(nil) + +func (s *MergeRequestContextCommitsService) ListMergeRequestContextCommits(pid any, mergeRequest int64, options ...RequestOptionFunc) ([]*Commit, *Response, error) { + project, err := parseID(pid) + if err != nil { + return nil, nil, err + } + u := fmt.Sprintf("projects/%s/merge_requests/%d/context_commits", PathEscape(project), mergeRequest) + + req, err := s.client.NewRequest(http.MethodGet, u, nil, options) + if err != nil { + return nil, nil, err + } + + var c []*Commit + resp, err := s.client.Do(req, &c) + if err != nil { + return nil, resp, err + } + + return c, resp, nil +} + +// CreateMergeRequestContextCommitsOptions represents the available +// CreateMergeRequestContextCommits() options. +// +// GitLab API docs: +// https://docs.gitlab.com/api/merge_request_context_commits/#create-mr-context-commits +type CreateMergeRequestContextCommitsOptions struct { + Commits *[]string `url:"commits,omitempty" json:"commits,omitempty"` +} + +func (s *MergeRequestContextCommitsService) CreateMergeRequestContextCommits(pid any, mergeRequest int64, opt *CreateMergeRequestContextCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error) { + project, err := parseID(pid) + if err != nil { + return nil, nil, err + } + u := fmt.Sprintf("projects/%s/merge_requests/%d/context_commits", PathEscape(project), mergeRequest) + + req, err := s.client.NewRequest(http.MethodPost, u, opt, options) + if err != nil { + return nil, nil, err + } + + var c []*Commit + resp, err := s.client.Do(req, &c) + if err != nil { + return nil, resp, err + } + + return c, resp, nil +} + +// DeleteMergeRequestContextCommitsOptions represents the available +// DeleteMergeRequestContextCommits() options. +// +// GitLab API docs: +// https://docs.gitlab.com/api/merge_request_context_commits/#delete-mr-context-commits +type DeleteMergeRequestContextCommitsOptions struct { + Commits *[]string `url:"commits,omitempty" json:"commits,omitempty"` +} + +func (s *MergeRequestContextCommitsService) DeleteMergeRequestContextCommits(pid any, mergeRequest int64, opt *DeleteMergeRequestContextCommitsOptions, options ...RequestOptionFunc) (*Response, error) { + project, err := parseID(pid) + if err != nil { + return nil, err + } + u := fmt.Sprintf("projects/%s/merge_requests/%d/context_commits", PathEscape(project), mergeRequest) + + req, err := s.client.NewRequest(http.MethodDelete, u, opt, options) + if err != nil { + return nil, err + } + + return s.client.Do(req, nil) +} diff --git a/merge_request_context_commits_test.go b/merge_request_context_commits_test.go new file mode 100644 index 00000000..2ffb6cc6 --- /dev/null +++ b/merge_request_context_commits_test.go @@ -0,0 +1,182 @@ +package gitlab + +import ( + "net/http" + "testing" + "time" + + "github.com/stretchr/testify/assert" +) + +func TestListMergeRequestContextCommits(t *testing.T) { + t.Parallel() + mux, client := setup(t) + + // GIVEN a project with merge request context commits + mux.HandleFunc("/api/v4/projects/1/merge_requests/1/context_commits", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, http.MethodGet) + mustWriteHTTPResponse(t, w, "testdata/list_merge_request_context_commits.json") + }) + + // WHEN listing the merge request context commits + commits, resp, err := client.MergeRequestContextCommits.ListMergeRequestContextCommits(1, 1) + + // THEN the request should succeed and return the context commits + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.Len(t, commits, 1) + + createdAt := time.Date(2017, time.April, 11, 10, 8, 59, 0, time.UTC) + authoredDate := time.Date(2017, time.April, 11, 10, 8, 59, 0, time.UTC) + committedDate := time.Date(2017, time.April, 11, 10, 8, 59, 0, time.UTC) + want := []*Commit{ + { + ID: "4a24d82dbca5c11c61556f3b35ca472b7463187e", + ShortID: "4a24d82d", + CreatedAt: &createdAt, + ParentIDs: nil, + Title: "Update README.md to include `Usage in testing and development`", + Message: "Update README.md to include `Usage in testing and development`", + AuthorName: "Example \"Sample\" User", + AuthorEmail: "user@example.com", + AuthoredDate: &authoredDate, + CommitterName: "Example \"Sample\" User", + CommitterEmail: "user@example.com", + CommittedDate: &committedDate, + }, + } + + assert.Equal(t, want, commits) +} + +func TestCreateMergeRequestContextCommits(t *testing.T) { + t.Parallel() + mux, client := setup(t) + + // GIVEN a project with a merge request + mux.HandleFunc("/api/v4/projects/15/merge_requests/12/context_commits", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, http.MethodPost) + mustWriteHTTPResponse(t, w, "testdata/create_merge_request_context_commits.json") + }) + + // WHEN creating context commits for the merge request + opt := &CreateMergeRequestContextCommitsOptions{ + Commits: Ptr([]string{"51856a574ac3302a95f82483d6c7396b1e0783cb"}), + } + commits, resp, err := client.MergeRequestContextCommits.CreateMergeRequestContextCommits(15, 12, opt) + + // THEN the request should succeed and return the created context commits + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.Len(t, commits, 1) + + loc := time.FixedZone("", 2*60*60) // +02:00 timezone + createdAt := time.Date(2014, time.February, 27, 10, 5, 10, 0, loc) + authoredDate := time.Date(2014, time.February, 27, 10, 5, 10, 0, loc) + committedDate := time.Date(2014, time.February, 27, 10, 5, 10, 0, loc) + want := []*Commit{ + { + ID: "51856a574ac3302a95f82483d6c7396b1e0783cb", + ShortID: "51856a57", + CreatedAt: &createdAt, + ParentIDs: []string{"57a82e2180507c9e12880c0747f0ea65ad489515"}, + Title: "Commit title", + Message: "Commit message", + AuthorName: "Example User", + AuthorEmail: "user@example.com", + AuthoredDate: &authoredDate, + CommitterName: "Example User", + CommitterEmail: "user@example.com", + CommittedDate: &committedDate, + Trailers: map[string]string{}, + WebURL: "https://gitlab.example.com/project/path/-/commit/51856a574ac3302a95f82483d6c7396b1e0783cb", + }, + } + + assert.Equal(t, want, commits) +} + +func TestDeleteMergeRequestContextCommits(t *testing.T) { + t.Parallel() + mux, client := setup(t) + + // GIVEN a project with merge request context commits + mux.HandleFunc("/api/v4/projects/1/merge_requests/1/context_commits", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, http.MethodDelete) + w.WriteHeader(http.StatusNoContent) + }) + + // WHEN deleting context commits from the merge request + opt := &DeleteMergeRequestContextCommitsOptions{ + Commits: Ptr([]string{"51856a574ac3302a95f82483d6c7396b1e0783cb"}), + } + resp, err := client.MergeRequestContextCommits.DeleteMergeRequestContextCommits(1, 1, opt) + + // THEN the request should succeed + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.Equal(t, http.StatusNoContent, resp.StatusCode) +} + +func TestListMergeRequestContextCommits_WithStringProjectID(t *testing.T) { + t.Parallel() + mux, client := setup(t) + + // GIVEN a project identified by namespace/path + mux.HandleFunc("/api/v4/projects/namespace%2Fproject/merge_requests/1/context_commits", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, http.MethodGet) + mustWriteHTTPResponse(t, w, "testdata/list_merge_request_context_commits.json") + }) + + // WHEN listing the merge request context commits using string project ID + commits, resp, err := client.MergeRequestContextCommits.ListMergeRequestContextCommits("namespace/project", 1) + + // THEN the request should succeed + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.Len(t, commits, 1) +} + +func TestCreateMergeRequestContextCommits_WithStringProjectID(t *testing.T) { + t.Parallel() + mux, client := setup(t) + + // GIVEN a project identified by namespace/path + mux.HandleFunc("/api/v4/projects/namespace%2Fproject/merge_requests/1/context_commits", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, http.MethodPost) + mustWriteHTTPResponse(t, w, "testdata/create_merge_request_context_commits.json") + }) + + // WHEN creating context commits using string project ID + opt := &CreateMergeRequestContextCommitsOptions{ + Commits: Ptr([]string{"51856a574ac3302a95f82483d6c7396b1e0783cb"}), + } + commits, resp, err := client.MergeRequestContextCommits.CreateMergeRequestContextCommits("namespace/project", 1, opt) + + // THEN the request should succeed + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.Len(t, commits, 1) +} + +func TestDeleteMergeRequestContextCommits_WithStringProjectID(t *testing.T) { + t.Parallel() + mux, client := setup(t) + + // GIVEN a project identified by namespace/path + mux.HandleFunc("/api/v4/projects/namespace%2Fproject/merge_requests/1/context_commits", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, http.MethodDelete) + w.WriteHeader(http.StatusNoContent) + }) + + // WHEN deleting context commits using string project ID + opt := &DeleteMergeRequestContextCommitsOptions{ + Commits: Ptr([]string{"51856a574ac3302a95f82483d6c7396b1e0783cb"}), + } + resp, err := client.MergeRequestContextCommits.DeleteMergeRequestContextCommits("namespace/project", 1, opt) + + // THEN the request should succeed + assert.NoError(t, err) + assert.NotNil(t, resp) + assert.Equal(t, http.StatusNoContent, resp.StatusCode) +} diff --git a/testdata/create_merge_request_context_commits.json b/testdata/create_merge_request_context_commits.json new file mode 100644 index 00000000..492a9739 --- /dev/null +++ b/testdata/create_merge_request_context_commits.json @@ -0,0 +1,20 @@ +[ + { + "id": "51856a574ac3302a95f82483d6c7396b1e0783cb", + "short_id": "51856a57", + "created_at": "2014-02-27T10:05:10.000+02:00", + "parent_ids": [ + "57a82e2180507c9e12880c0747f0ea65ad489515" + ], + "title": "Commit title", + "message": "Commit message", + "author_name": "Example User", + "author_email": "user@example.com", + "authored_date": "2014-02-27T10:05:10.000+02:00", + "committer_name": "Example User", + "committer_email": "user@example.com", + "committed_date": "2014-02-27T10:05:10.000+02:00", + "trailers": {}, + "web_url": "https://gitlab.example.com/project/path/-/commit/51856a574ac3302a95f82483d6c7396b1e0783cb" + } +] \ No newline at end of file diff --git a/testdata/list_merge_request_context_commits.json b/testdata/list_merge_request_context_commits.json new file mode 100644 index 00000000..7513acf8 --- /dev/null +++ b/testdata/list_merge_request_context_commits.json @@ -0,0 +1,16 @@ +[ + { + "id": "4a24d82dbca5c11c61556f3b35ca472b7463187e", + "short_id": "4a24d82d", + "created_at": "2017-04-11T10:08:59.000Z", + "parent_ids": null, + "title": "Update README.md to include `Usage in testing and development`", + "message": "Update README.md to include `Usage in testing and development`", + "author_name": "Example \"Sample\" User", + "author_email": "user@example.com", + "authored_date": "2017-04-11T10:08:59.000Z", + "committer_name": "Example \"Sample\" User", + "committer_email": "user@example.com", + "committed_date": "2017-04-11T10:08:59.000Z" + } +] \ No newline at end of file diff --git a/testing/api_generated.go b/testing/api_generated.go index 5bb2bf30..e41b54a5 100644 --- a/testing/api_generated.go +++ b/testing/api_generated.go @@ -87,6 +87,7 @@ package testing //go:generate go run go.uber.org/mock/mockgen@v0.6.0 -typed -destination=member_roles_mock.go -write_package_comment=false -package=testing gitlab.com/gitlab-org/api/client-go MemberRolesServiceInterface //go:generate go run go.uber.org/mock/mockgen@v0.6.0 -typed -destination=merge_request_approval_settings_mock.go -write_package_comment=false -package=testing gitlab.com/gitlab-org/api/client-go MergeRequestApprovalSettingsServiceInterface //go:generate go run go.uber.org/mock/mockgen@v0.6.0 -typed -destination=merge_request_approvals_mock.go -write_package_comment=false -package=testing gitlab.com/gitlab-org/api/client-go MergeRequestApprovalsServiceInterface +//go:generate go run go.uber.org/mock/mockgen@v0.6.0 -typed -destination=merge_request_context_commits_mock.go -write_package_comment=false -package=testing gitlab.com/gitlab-org/api/client-go MergeRequestContextCommitsServiceInterface //go:generate go run go.uber.org/mock/mockgen@v0.6.0 -typed -destination=merge_requests_mock.go -write_package_comment=false -package=testing gitlab.com/gitlab-org/api/client-go MergeRequestsServiceInterface //go:generate go run go.uber.org/mock/mockgen@v0.6.0 -typed -destination=merge_trains_mock.go -write_package_comment=false -package=testing gitlab.com/gitlab-org/api/client-go MergeTrainsServiceInterface //go:generate go run go.uber.org/mock/mockgen@v0.6.0 -typed -destination=metadata_mock.go -write_package_comment=false -package=testing gitlab.com/gitlab-org/api/client-go MetadataServiceInterface diff --git a/testing/client_generated.go b/testing/client_generated.go index 0373c48a..dd14ddf3 100644 --- a/testing/client_generated.go +++ b/testing/client_generated.go @@ -96,6 +96,7 @@ type testClientMocks struct { MockMemberRolesService *MockMemberRolesServiceInterface MockMergeRequestApprovals *MockMergeRequestApprovalsServiceInterface MockMergeRequestApprovalSettings *MockMergeRequestApprovalSettingsServiceInterface + MockMergeRequestContextCommits *MockMergeRequestContextCommitsServiceInterface MockMergeRequests *MockMergeRequestsServiceInterface MockMergeTrains *MockMergeTrainsServiceInterface MockMetadata *MockMetadataServiceInterface @@ -251,6 +252,7 @@ func newTestClientWithCtrl(ctrl *gomock.Controller, options ...gitlab.ClientOpti mockMemberRolesService := NewMockMemberRolesServiceInterface(ctrl) mockMergeRequestApprovals := NewMockMergeRequestApprovalsServiceInterface(ctrl) mockMergeRequestApprovalSettings := NewMockMergeRequestApprovalSettingsServiceInterface(ctrl) + mockMergeRequestContextCommits := NewMockMergeRequestContextCommitsServiceInterface(ctrl) mockMergeRequests := NewMockMergeRequestsServiceInterface(ctrl) mockMergeTrains := NewMockMergeTrainsServiceInterface(ctrl) mockMetadata := NewMockMetadataServiceInterface(ctrl) @@ -405,6 +407,7 @@ func newTestClientWithCtrl(ctrl *gomock.Controller, options ...gitlab.ClientOpti MemberRolesService: mockMemberRolesService, MergeRequestApprovals: mockMergeRequestApprovals, MergeRequestApprovalSettings: mockMergeRequestApprovalSettings, + MergeRequestContextCommits: mockMergeRequestContextCommits, MergeRequests: mockMergeRequests, MergeTrains: mockMergeTrains, Metadata: mockMetadata, @@ -571,6 +574,7 @@ func newTestClientWithCtrl(ctrl *gomock.Controller, options ...gitlab.ClientOpti MockMemberRolesService: mockMemberRolesService, MockMergeRequestApprovals: mockMergeRequestApprovals, MockMergeRequestApprovalSettings: mockMergeRequestApprovalSettings, + MockMergeRequestContextCommits: mockMergeRequestContextCommits, MockMergeRequests: mockMergeRequests, MockMergeTrains: mockMergeTrains, MockMetadata: mockMetadata, diff --git a/testing/merge_request_context_commits_mock.go b/testing/merge_request_context_commits_mock.go new file mode 100644 index 00000000..eb652c12 --- /dev/null +++ b/testing/merge_request_context_commits_mock.go @@ -0,0 +1,174 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: gitlab.com/gitlab-org/api/client-go (interfaces: MergeRequestContextCommitsServiceInterface) +// +// Generated by this command: +// +// mockgen -typed -destination=merge_request_context_commits_mock.go -write_package_comment=false -package=testing gitlab.com/gitlab-org/api/client-go MergeRequestContextCommitsServiceInterface +// + +package testing + +import ( + reflect "reflect" + + gitlab "gitlab.com/gitlab-org/api/client-go" + gomock "go.uber.org/mock/gomock" +) + +// MockMergeRequestContextCommitsServiceInterface is a mock of MergeRequestContextCommitsServiceInterface interface. +type MockMergeRequestContextCommitsServiceInterface struct { + ctrl *gomock.Controller + recorder *MockMergeRequestContextCommitsServiceInterfaceMockRecorder + isgomock struct{} +} + +// MockMergeRequestContextCommitsServiceInterfaceMockRecorder is the mock recorder for MockMergeRequestContextCommitsServiceInterface. +type MockMergeRequestContextCommitsServiceInterfaceMockRecorder struct { + mock *MockMergeRequestContextCommitsServiceInterface +} + +// NewMockMergeRequestContextCommitsServiceInterface creates a new mock instance. +func NewMockMergeRequestContextCommitsServiceInterface(ctrl *gomock.Controller) *MockMergeRequestContextCommitsServiceInterface { + mock := &MockMergeRequestContextCommitsServiceInterface{ctrl: ctrl} + mock.recorder = &MockMergeRequestContextCommitsServiceInterfaceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockMergeRequestContextCommitsServiceInterface) EXPECT() *MockMergeRequestContextCommitsServiceInterfaceMockRecorder { + return m.recorder +} + +// CreateMergeRequestContextCommits mocks base method. +func (m *MockMergeRequestContextCommitsServiceInterface) CreateMergeRequestContextCommits(pid any, mergeRequest int64, opt *gitlab.CreateMergeRequestContextCommitsOptions, options ...gitlab.RequestOptionFunc) ([]*gitlab.Commit, *gitlab.Response, error) { + m.ctrl.T.Helper() + varargs := []any{pid, mergeRequest, opt} + for _, a := range options { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "CreateMergeRequestContextCommits", varargs...) + ret0, _ := ret[0].([]*gitlab.Commit) + ret1, _ := ret[1].(*gitlab.Response) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// CreateMergeRequestContextCommits indicates an expected call of CreateMergeRequestContextCommits. +func (mr *MockMergeRequestContextCommitsServiceInterfaceMockRecorder) CreateMergeRequestContextCommits(pid, mergeRequest, opt any, options ...any) *MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall { + mr.mock.ctrl.T.Helper() + varargs := append([]any{pid, mergeRequest, opt}, options...) + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateMergeRequestContextCommits", reflect.TypeOf((*MockMergeRequestContextCommitsServiceInterface)(nil).CreateMergeRequestContextCommits), varargs...) + return &MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall{Call: call} +} + +// MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall wrap *gomock.Call +type MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall) Return(arg0 []*gitlab.Commit, arg1 *gitlab.Response, arg2 error) *MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall { + c.Call = c.Call.Return(arg0, arg1, arg2) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall) Do(f func(any, int64, *gitlab.CreateMergeRequestContextCommitsOptions, ...gitlab.RequestOptionFunc) ([]*gitlab.Commit, *gitlab.Response, error)) *MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall) DoAndReturn(f func(any, int64, *gitlab.CreateMergeRequestContextCommitsOptions, ...gitlab.RequestOptionFunc) ([]*gitlab.Commit, *gitlab.Response, error)) *MockMergeRequestContextCommitsServiceInterfaceCreateMergeRequestContextCommitsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// DeleteMergeRequestContextCommits mocks base method. +func (m *MockMergeRequestContextCommitsServiceInterface) DeleteMergeRequestContextCommits(pid any, mergeRequest int64, opt *gitlab.DeleteMergeRequestContextCommitsOptions, options ...gitlab.RequestOptionFunc) (*gitlab.Response, error) { + m.ctrl.T.Helper() + varargs := []any{pid, mergeRequest, opt} + for _, a := range options { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "DeleteMergeRequestContextCommits", varargs...) + ret0, _ := ret[0].(*gitlab.Response) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteMergeRequestContextCommits indicates an expected call of DeleteMergeRequestContextCommits. +func (mr *MockMergeRequestContextCommitsServiceInterfaceMockRecorder) DeleteMergeRequestContextCommits(pid, mergeRequest, opt any, options ...any) *MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall { + mr.mock.ctrl.T.Helper() + varargs := append([]any{pid, mergeRequest, opt}, options...) + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteMergeRequestContextCommits", reflect.TypeOf((*MockMergeRequestContextCommitsServiceInterface)(nil).DeleteMergeRequestContextCommits), varargs...) + return &MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall{Call: call} +} + +// MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall wrap *gomock.Call +type MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall) Return(arg0 *gitlab.Response, arg1 error) *MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall { + c.Call = c.Call.Return(arg0, arg1) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall) Do(f func(any, int64, *gitlab.DeleteMergeRequestContextCommitsOptions, ...gitlab.RequestOptionFunc) (*gitlab.Response, error)) *MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall) DoAndReturn(f func(any, int64, *gitlab.DeleteMergeRequestContextCommitsOptions, ...gitlab.RequestOptionFunc) (*gitlab.Response, error)) *MockMergeRequestContextCommitsServiceInterfaceDeleteMergeRequestContextCommitsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} + +// ListMergeRequestContextCommits mocks base method. +func (m *MockMergeRequestContextCommitsServiceInterface) ListMergeRequestContextCommits(pid any, mergeRequest int64, options ...gitlab.RequestOptionFunc) ([]*gitlab.Commit, *gitlab.Response, error) { + m.ctrl.T.Helper() + varargs := []any{pid, mergeRequest} + for _, a := range options { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListMergeRequestContextCommits", varargs...) + ret0, _ := ret[0].([]*gitlab.Commit) + ret1, _ := ret[1].(*gitlab.Response) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// ListMergeRequestContextCommits indicates an expected call of ListMergeRequestContextCommits. +func (mr *MockMergeRequestContextCommitsServiceInterfaceMockRecorder) ListMergeRequestContextCommits(pid, mergeRequest any, options ...any) *MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall { + mr.mock.ctrl.T.Helper() + varargs := append([]any{pid, mergeRequest}, options...) + call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMergeRequestContextCommits", reflect.TypeOf((*MockMergeRequestContextCommitsServiceInterface)(nil).ListMergeRequestContextCommits), varargs...) + return &MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall{Call: call} +} + +// MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall wrap *gomock.Call +type MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall struct { + *gomock.Call +} + +// Return rewrite *gomock.Call.Return +func (c *MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall) Return(arg0 []*gitlab.Commit, arg1 *gitlab.Response, arg2 error) *MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall { + c.Call = c.Call.Return(arg0, arg1, arg2) + return c +} + +// Do rewrite *gomock.Call.Do +func (c *MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall) Do(f func(any, int64, ...gitlab.RequestOptionFunc) ([]*gitlab.Commit, *gitlab.Response, error)) *MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall { + c.Call = c.Call.Do(f) + return c +} + +// DoAndReturn rewrite *gomock.Call.DoAndReturn +func (c *MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall) DoAndReturn(f func(any, int64, ...gitlab.RequestOptionFunc) ([]*gitlab.Commit, *gitlab.Response, error)) *MockMergeRequestContextCommitsServiceInterfaceListMergeRequestContextCommitsCall { + c.Call = c.Call.DoAndReturn(f) + return c +} -- GitLab