// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/tidbcloud/devops/pkg/infra/clients/githubcli (interfaces: PullRequestsService,ReleaseService,RepositoryService)
//
// Generated by this command:
//
//	mockgen -destination github_client_mock.go -package=githubcli github.com/tidbcloud/devops/pkg/infra/clients/githubcli PullRequestsService,ReleaseService,RepositoryService
//

// Package githubcli is a generated GoMock package.
package githubcli

import (
	context "context"
	reflect "reflect"

	githubv4 "github.com/shurcooL/githubv4"
	gomock "go.uber.org/mock/gomock"
)

// MockPullRequestsService is a mock of PullRequestsService interface.
type MockPullRequestsService struct {
	ctrl     *gomock.Controller
	recorder *MockPullRequestsServiceMockRecorder
	isgomock struct{}
}

// MockPullRequestsServiceMockRecorder is the mock recorder for MockPullRequestsService.
type MockPullRequestsServiceMockRecorder struct {
	mock *MockPullRequestsService
}

// NewMockPullRequestsService creates a new mock instance.
func NewMockPullRequestsService(ctrl *gomock.Controller) *MockPullRequestsService {
	mock := &MockPullRequestsService{ctrl: ctrl}
	mock.recorder = &MockPullRequestsServiceMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockPullRequestsService) EXPECT() *MockPullRequestsServiceMockRecorder {
	return m.recorder
}

// AddComment mocks base method.
func (m *MockPullRequestsService) AddComment(ctx context.Context, owner, repo string, number int, body string) (*Comment, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AddComment", ctx, owner, repo, number, body)
	ret0, _ := ret[0].(*Comment)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// AddComment indicates an expected call of AddComment.
func (mr *MockPullRequestsServiceMockRecorder) AddComment(ctx, owner, repo, number, body any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddComment", reflect.TypeOf((*MockPullRequestsService)(nil).AddComment), ctx, owner, repo, number, body)
}

// Approve mocks base method.
func (m *MockPullRequestsService) Approve(ctx context.Context, owner, repo string, number int, body string) (*PullRequestReview, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Approve", ctx, owner, repo, number, body)
	ret0, _ := ret[0].(*PullRequestReview)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Approve indicates an expected call of Approve.
func (mr *MockPullRequestsServiceMockRecorder) Approve(ctx, owner, repo, number, body any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Approve", reflect.TypeOf((*MockPullRequestsService)(nil).Approve), ctx, owner, repo, number, body)
}

// Get mocks base method.
func (m *MockPullRequestsService) Get(ctx context.Context, owner, repo string, number int) (*PullRequest, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Get", ctx, owner, repo, number)
	ret0, _ := ret[0].(*PullRequest)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Get indicates an expected call of Get.
func (mr *MockPullRequestsServiceMockRecorder) Get(ctx, owner, repo, number any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockPullRequestsService)(nil).Get), ctx, owner, repo, number)
}

// List mocks base method.
func (m *MockPullRequestsService) List(ctx context.Context, owner, repo string, opt ListPullRequestOption) (*ListPullRequestResult, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "List", ctx, owner, repo, opt)
	ret0, _ := ret[0].(*ListPullRequestResult)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// List indicates an expected call of List.
func (mr *MockPullRequestsServiceMockRecorder) List(ctx, owner, repo, opt any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockPullRequestsService)(nil).List), ctx, owner, repo, opt)
}

// Merge mocks base method.
func (m *MockPullRequestsService) Merge(ctx context.Context, owner, repo string, number int, method githubv4.PullRequestMergeMethod) (*PullRequest, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Merge", ctx, owner, repo, number, method)
	ret0, _ := ret[0].(*PullRequest)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Merge indicates an expected call of Merge.
func (mr *MockPullRequestsServiceMockRecorder) Merge(ctx, owner, repo, number, method any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Merge", reflect.TypeOf((*MockPullRequestsService)(nil).Merge), ctx, owner, repo, number, method)
}

// MockReleaseService is a mock of ReleaseService interface.
type MockReleaseService struct {
	ctrl     *gomock.Controller
	recorder *MockReleaseServiceMockRecorder
	isgomock struct{}
}

// MockReleaseServiceMockRecorder is the mock recorder for MockReleaseService.
type MockReleaseServiceMockRecorder struct {
	mock *MockReleaseService
}

// NewMockReleaseService creates a new mock instance.
func NewMockReleaseService(ctrl *gomock.Controller) *MockReleaseService {
	mock := &MockReleaseService{ctrl: ctrl}
	mock.recorder = &MockReleaseServiceMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockReleaseService) EXPECT() *MockReleaseServiceMockRecorder {
	return m.recorder
}

// Diff mocks base method.
func (m *MockReleaseService) Diff(ctx context.Context, owner, repo, targetTag, prevTag string) ([]PullRequest, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Diff", ctx, owner, repo, targetTag, prevTag)
	ret0, _ := ret[0].([]PullRequest)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Diff indicates an expected call of Diff.
func (mr *MockReleaseServiceMockRecorder) Diff(ctx, owner, repo, targetTag, prevTag any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Diff", reflect.TypeOf((*MockReleaseService)(nil).Diff), ctx, owner, repo, targetTag, prevTag)
}

// Get mocks base method.
func (m *MockReleaseService) Get(ctx context.Context, owner, repo, tag string) (*Release, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Get", ctx, owner, repo, tag)
	ret0, _ := ret[0].(*Release)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Get indicates an expected call of Get.
func (mr *MockReleaseServiceMockRecorder) Get(ctx, owner, repo, tag any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockReleaseService)(nil).Get), ctx, owner, repo, tag)
}

// List mocks base method.
func (m *MockReleaseService) List(ctx context.Context, owner, repo string, opt ListReleaseOption) (*ListReleaseResult, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "List", ctx, owner, repo, opt)
	ret0, _ := ret[0].(*ListReleaseResult)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// List indicates an expected call of List.
func (mr *MockReleaseServiceMockRecorder) List(ctx, owner, repo, opt any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockReleaseService)(nil).List), ctx, owner, repo, opt)
}

// MockRepositoryService is a mock of RepositoryService interface.
type MockRepositoryService struct {
	ctrl     *gomock.Controller
	recorder *MockRepositoryServiceMockRecorder
	isgomock struct{}
}

// MockRepositoryServiceMockRecorder is the mock recorder for MockRepositoryService.
type MockRepositoryServiceMockRecorder struct {
	mock *MockRepositoryService
}

// NewMockRepositoryService creates a new mock instance.
func NewMockRepositoryService(ctrl *gomock.Controller) *MockRepositoryService {
	mock := &MockRepositoryService{ctrl: ctrl}
	mock.recorder = &MockRepositoryServiceMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockRepositoryService) EXPECT() *MockRepositoryServiceMockRecorder {
	return m.recorder
}

// Get mocks base method.
func (m *MockRepositoryService) Get(ctx context.Context, owner, repo string) (*Repository, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Get", ctx, owner, repo)
	ret0, _ := ret[0].(*Repository)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Get indicates an expected call of Get.
func (mr *MockRepositoryServiceMockRecorder) Get(ctx, owner, repo any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockRepositoryService)(nil).Get), ctx, owner, repo)
}

// GetLabel mocks base method.
func (m *MockRepositoryService) GetLabel(ctx context.Context, owner, repo, name string) (*Label, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetLabel", ctx, owner, repo, name)
	ret0, _ := ret[0].(*Label)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetLabel indicates an expected call of GetLabel.
func (mr *MockRepositoryServiceMockRecorder) GetLabel(ctx, owner, repo, name any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLabel", reflect.TypeOf((*MockRepositoryService)(nil).GetLabel), ctx, owner, repo, name)
}

// List mocks base method.
func (m *MockRepositoryService) List(ctx context.Context, org string, opt ListRepositoryOption) (*ListRepositoryResult, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "List", ctx, org, opt)
	ret0, _ := ret[0].(*ListRepositoryResult)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// List indicates an expected call of List.
func (mr *MockRepositoryServiceMockRecorder) List(ctx, org, opt any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockRepositoryService)(nil).List), ctx, org, opt)
}

// ListLabels mocks base method.
func (m *MockRepositoryService) ListLabels(ctx context.Context, owner, repo string, opt ListLabelOption) (*ListLabelResult, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListLabels", ctx, owner, repo, opt)
	ret0, _ := ret[0].(*ListLabelResult)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// ListLabels indicates an expected call of ListLabels.
func (mr *MockRepositoryServiceMockRecorder) ListLabels(ctx, owner, repo, opt any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLabels", reflect.TypeOf((*MockRepositoryService)(nil).ListLabels), ctx, owner, repo, opt)
}
