diff --git a/merge_request_approval_settings.go b/merge_request_approval_settings.go index c1701be22f54e13330cd71e78e292dad9bc13a9f..6d183a64ca72f5181da9c3f901fd19ec2fb5724e 100644 --- a/merge_request_approval_settings.go +++ b/merge_request_approval_settings.go @@ -22,9 +22,9 @@ import ( type ( MergeRequestApprovalSettingsServiceInterface interface { GetGroupMergeRequestApprovalSettings(gid any, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) - UpdateGroupMergeRequestApprovalSettings(gid any, opt *UpdateMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) + UpdateGroupMergeRequestApprovalSettings(gid any, opt *UpdateGroupMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) GetProjectMergeRequestApprovalSettings(pid any, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) - UpdateProjectMergeRequestApprovalSettings(pid any, opt *UpdateMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) + UpdateProjectMergeRequestApprovalSettings(pid any, opt *UpdateProjectMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) } // MergeRequestApprovalSettingsService handles communication with the merge @@ -90,19 +90,32 @@ func (s *MergeRequestApprovalSettingsService) GetGroupMergeRequestApprovalSettin return settings, resp, nil } -// UpdateMergeRequestApprovalSettingsOptions represents the available -// UpdateGroupMergeRequestApprovalSettings() and UpdateProjectMergeRequestApprovalSettings() +// UpdateProjectMergeRequestApprovalSettingsOptions represents the available +// UpdateProjectMergeRequestApprovalSettings() // options. // // GitLab API docs: -// https://docs.gitlab.com/api/merge_request_approval_settings/#update-group-mr-approval-settings // https://docs.gitlab.com/api/merge_request_approval_settings/#update-project-mr-approval-settings -type UpdateMergeRequestApprovalSettingsOptions struct { +type UpdateProjectMergeRequestApprovalSettingsOptions struct { AllowAuthorApproval *bool `url:"allow_author_approval,omitempty" json:"allow_author_approval,omitempty"` AllowCommitterApproval *bool `url:"allow_committer_approval,omitempty" json:"allow_committer_approval,omitempty"` AllowOverridesToApproverListPerMergeRequest *bool `url:"allow_overrides_to_approver_list_per_merge_request,omitempty" json:"allow_overrides_to_approver_list_per_merge_request,omitempty"` RetainApprovalsOnPush *bool `url:"retain_approvals_on_push,omitempty" json:"retain_approvals_on_push,omitempty"` + RequireReauthenticationToApprove *bool `url:"require_reauthentication_to_approve,omitempty" json:"require_reauthentication_to_approve,omitempty"` SelectiveCodeOwnerRemovals *bool `url:"selective_code_owner_removals,omitempty" json:"selective_code_owner_removals,omitempty"` +} + +// UpdateGroupMergeRequestApprovalSettingsOptions represents the available +// UpdateGroupRequestApprovalSettings() +// options. +// +// GitLab API docs: +// https://docs.gitlab.com/api/merge_request_approval_settings/#update-group-mr-approval-settings +type UpdateGroupMergeRequestApprovalSettingsOptions struct { + AllowAuthorApproval *bool `url:"allow_author_approval,omitempty" json:"allow_author_approval,omitempty"` + AllowCommitterApproval *bool `url:"allow_committer_approval,omitempty" json:"allow_committer_approval,omitempty"` + AllowOverridesToApproverListPerMergeRequest *bool `url:"allow_overrides_to_approver_list_per_merge_request,omitempty" json:"allow_overrides_to_approver_list_per_merge_request,omitempty"` + RetainApprovalsOnPush *bool `url:"retain_approvals_on_push,omitempty" json:"retain_approvals_on_push,omitempty"` RequireReauthenticationToApprove *bool `url:"require_reauthentication_to_approve,omitempty" json:"require_reauthentication_to_approve,omitempty"` } @@ -111,7 +124,7 @@ type UpdateMergeRequestApprovalSettingsOptions struct { // // GitLab API docs: // https://docs.gitlab.com/api/merge_request_approval_settings/#update-group-mr-approval-settings -func (s *MergeRequestApprovalSettingsService) UpdateGroupMergeRequestApprovalSettings(gid any, opt *UpdateMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) { +func (s *MergeRequestApprovalSettingsService) UpdateGroupMergeRequestApprovalSettings(gid any, opt *UpdateGroupMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) { group, err := parseID(gid) if err != nil { return nil, nil, err @@ -163,7 +176,7 @@ func (s *MergeRequestApprovalSettingsService) GetProjectMergeRequestApprovalSett // // GitLab API docs: // https://docs.gitlab.com/api/merge_request_approval_settings/#update-project-mr-approval-settings -func (s *MergeRequestApprovalSettingsService) UpdateProjectMergeRequestApprovalSettings(pid any, opt *UpdateMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) { +func (s *MergeRequestApprovalSettingsService) UpdateProjectMergeRequestApprovalSettings(pid any, opt *UpdateProjectMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error) { project, err := parseID(pid) if err != nil { return nil, nil, err diff --git a/merge_request_approval_settings_test.go b/merge_request_approval_settings_test.go index cd1549369a98eb3e948bf121665d23bf186d254c..e2905009f7917d019862bb364e696f3fee782b39 100644 --- a/merge_request_approval_settings_test.go +++ b/merge_request_approval_settings_test.go @@ -183,12 +183,11 @@ func TestUpdateGroupMergeRequestApprovalSettings(t *testing.T) { }, } - settings, resp, err := client.MergeRequestApprovalSettings.UpdateGroupMergeRequestApprovalSettings(1, &UpdateMergeRequestApprovalSettingsOptions{ + settings, resp, err := client.MergeRequestApprovalSettings.UpdateGroupMergeRequestApprovalSettings(1, &UpdateGroupMergeRequestApprovalSettingsOptions{ AllowAuthorApproval: Ptr(false), AllowCommitterApproval: Ptr(false), AllowOverridesToApproverListPerMergeRequest: Ptr(false), RetainApprovalsOnPush: Ptr(true), - SelectiveCodeOwnerRemovals: Ptr(true), RequireReauthenticationToApprove: Ptr(true), }) assert.NoError(t, err) @@ -372,7 +371,7 @@ func TestUpdateProjectMergeRequestApprovalSettings(t *testing.T) { }, } - settings, resp, err := client.MergeRequestApprovalSettings.UpdateProjectMergeRequestApprovalSettings(1, &UpdateMergeRequestApprovalSettingsOptions{ + settings, resp, err := client.MergeRequestApprovalSettings.UpdateProjectMergeRequestApprovalSettings(1, &UpdateProjectMergeRequestApprovalSettingsOptions{ AllowAuthorApproval: Ptr(false), AllowCommitterApproval: Ptr(false), AllowOverridesToApproverListPerMergeRequest: Ptr(false), diff --git a/testing/merge_request_approval_settings_mock.go b/testing/merge_request_approval_settings_mock.go index 62faa02998ea438113e200466f3eb94690cd8447..12efeb52a17e90f433b25d45bce52763fa9b11c0 100644 --- a/testing/merge_request_approval_settings_mock.go +++ b/testing/merge_request_approval_settings_mock.go @@ -131,7 +131,7 @@ func (c *MockMergeRequestApprovalSettingsServiceInterfaceGetProjectMergeRequestA } // UpdateGroupMergeRequestApprovalSettings mocks base method. -func (m *MockMergeRequestApprovalSettingsServiceInterface) UpdateGroupMergeRequestApprovalSettings(gid any, opt *gitlab.UpdateMergeRequestApprovalSettingsOptions, options ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error) { +func (m *MockMergeRequestApprovalSettingsServiceInterface) UpdateGroupMergeRequestApprovalSettings(gid any, opt *gitlab.UpdateGroupMergeRequestApprovalSettingsOptions, options ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error) { m.ctrl.T.Helper() varargs := []any{gid, opt} for _, a := range options { @@ -164,19 +164,19 @@ func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateGroupMergeRequest } // Do rewrite *gomock.Call.Do -func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateGroupMergeRequestApprovalSettingsCall) Do(f func(any, *gitlab.UpdateMergeRequestApprovalSettingsOptions, ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error)) *MockMergeRequestApprovalSettingsServiceInterfaceUpdateGroupMergeRequestApprovalSettingsCall { +func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateGroupMergeRequestApprovalSettingsCall) Do(f func(any, *gitlab.UpdateGroupMergeRequestApprovalSettingsOptions, ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error)) *MockMergeRequestApprovalSettingsServiceInterfaceUpdateGroupMergeRequestApprovalSettingsCall { c.Call = c.Call.Do(f) return c } // DoAndReturn rewrite *gomock.Call.DoAndReturn -func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateGroupMergeRequestApprovalSettingsCall) DoAndReturn(f func(any, *gitlab.UpdateMergeRequestApprovalSettingsOptions, ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error)) *MockMergeRequestApprovalSettingsServiceInterfaceUpdateGroupMergeRequestApprovalSettingsCall { +func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateGroupMergeRequestApprovalSettingsCall) DoAndReturn(f func(any, *gitlab.UpdateGroupMergeRequestApprovalSettingsOptions, ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error)) *MockMergeRequestApprovalSettingsServiceInterfaceUpdateGroupMergeRequestApprovalSettingsCall { c.Call = c.Call.DoAndReturn(f) return c } // UpdateProjectMergeRequestApprovalSettings mocks base method. -func (m *MockMergeRequestApprovalSettingsServiceInterface) UpdateProjectMergeRequestApprovalSettings(pid any, opt *gitlab.UpdateMergeRequestApprovalSettingsOptions, options ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error) { +func (m *MockMergeRequestApprovalSettingsServiceInterface) UpdateProjectMergeRequestApprovalSettings(pid any, opt *gitlab.UpdateProjectMergeRequestApprovalSettingsOptions, options ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error) { m.ctrl.T.Helper() varargs := []any{pid, opt} for _, a := range options { @@ -209,13 +209,13 @@ func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateProjectMergeReque } // Do rewrite *gomock.Call.Do -func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateProjectMergeRequestApprovalSettingsCall) Do(f func(any, *gitlab.UpdateMergeRequestApprovalSettingsOptions, ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error)) *MockMergeRequestApprovalSettingsServiceInterfaceUpdateProjectMergeRequestApprovalSettingsCall { +func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateProjectMergeRequestApprovalSettingsCall) Do(f func(any, *gitlab.UpdateProjectMergeRequestApprovalSettingsOptions, ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error)) *MockMergeRequestApprovalSettingsServiceInterfaceUpdateProjectMergeRequestApprovalSettingsCall { c.Call = c.Call.Do(f) return c } // DoAndReturn rewrite *gomock.Call.DoAndReturn -func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateProjectMergeRequestApprovalSettingsCall) DoAndReturn(f func(any, *gitlab.UpdateMergeRequestApprovalSettingsOptions, ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error)) *MockMergeRequestApprovalSettingsServiceInterfaceUpdateProjectMergeRequestApprovalSettingsCall { +func (c *MockMergeRequestApprovalSettingsServiceInterfaceUpdateProjectMergeRequestApprovalSettingsCall) DoAndReturn(f func(any, *gitlab.UpdateProjectMergeRequestApprovalSettingsOptions, ...gitlab.RequestOptionFunc) (*gitlab.MergeRequestApprovalSettings, *gitlab.Response, error)) *MockMergeRequestApprovalSettingsServiceInterfaceUpdateProjectMergeRequestApprovalSettingsCall { c.Call = c.Call.DoAndReturn(f) return c }