// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/tidbcloud/devops/pkg/service/github (interfaces: GithubServiceAPI)
//
// Generated by this command:
//
//	mockgen -destination github_service_mock.go -package=github github.com/tidbcloud/devops/pkg/service/github GithubServiceAPI
//

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

import (
	context "context"
	reflect "reflect"

	github "github.com/tidbcloud/devops/entity/github"
	githubcli "github.com/tidbcloud/devops/pkg/infra/clients/githubcli"
	gomock "go.uber.org/mock/gomock"
)

// MockGithubServiceAPI is a mock of GithubServiceAPI interface.
type MockGithubServiceAPI struct {
	ctrl     *gomock.Controller
	recorder *MockGithubServiceAPIMockRecorder
	isgomock struct{}
}

// MockGithubServiceAPIMockRecorder is the mock recorder for MockGithubServiceAPI.
type MockGithubServiceAPIMockRecorder struct {
	mock *MockGithubServiceAPI
}

// NewMockGithubServiceAPI creates a new mock instance.
func NewMockGithubServiceAPI(ctrl *gomock.Controller) *MockGithubServiceAPI {
	mock := &MockGithubServiceAPI{ctrl: ctrl}
	mock.recorder = &MockGithubServiceAPIMockRecorder{mock}
	return mock
}

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

// GetPullRequestByLoc mocks base method.
func (m *MockGithubServiceAPI) GetPullRequestByLoc(ctx context.Context, loc github.PRLocation) (*github.PullRequest, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetPullRequestByLoc", ctx, loc)
	ret0, _ := ret[0].(*github.PullRequest)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetPullRequestByLoc indicates an expected call of GetPullRequestByLoc.
func (mr *MockGithubServiceAPIMockRecorder) GetPullRequestByLoc(ctx, loc any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPullRequestByLoc", reflect.TypeOf((*MockGithubServiceAPI)(nil).GetPullRequestByLoc), ctx, loc)
}

// GetRepositoryByLoc mocks base method.
func (m *MockGithubServiceAPI) GetRepositoryByLoc(ctx context.Context, loc github.RepoLocation) (*github.Repository, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetRepositoryByLoc", ctx, loc)
	ret0, _ := ret[0].(*github.Repository)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetRepositoryByLoc indicates an expected call of GetRepositoryByLoc.
func (mr *MockGithubServiceAPIMockRecorder) GetRepositoryByLoc(ctx, loc any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRepositoryByLoc", reflect.TypeOf((*MockGithubServiceAPI)(nil).GetRepositoryByLoc), ctx, loc)
}

// ListPullRequests mocks base method.
func (m *MockGithubServiceAPI) ListPullRequests(ctx context.Context, param ListPullRequestsParam) ([]*github.PullRequest, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListPullRequests", ctx, param)
	ret0, _ := ret[0].([]*github.PullRequest)
	ret1, _ := ret[1].(int64)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// ListPullRequests indicates an expected call of ListPullRequests.
func (mr *MockGithubServiceAPIMockRecorder) ListPullRequests(ctx, param any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPullRequests", reflect.TypeOf((*MockGithubServiceAPI)(nil).ListPullRequests), ctx, param)
}

// ListRepository mocks base method.
func (m *MockGithubServiceAPI) ListRepository(ctx context.Context, param ListRepositoryParam) ([]*github.Repository, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListRepository", ctx, param)
	ret0, _ := ret[0].([]*github.Repository)
	ret1, _ := ret[1].(int64)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// ListRepository indicates an expected call of ListRepository.
func (mr *MockGithubServiceAPIMockRecorder) ListRepository(ctx, param any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListRepository", reflect.TypeOf((*MockGithubServiceAPI)(nil).ListRepository), ctx, param)
}

// RawAPI mocks base method.
func (m *MockGithubServiceAPI) RawAPI() *githubcli.GithubClient {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RawAPI")
	ret0, _ := ret[0].(*githubcli.GithubClient)
	return ret0
}

// RawAPI indicates an expected call of RawAPI.
func (mr *MockGithubServiceAPIMockRecorder) RawAPI() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RawAPI", reflect.TypeOf((*MockGithubServiceAPI)(nil).RawAPI))
}

// SyncPullRequests mocks base method.
func (m *MockGithubServiceAPI) SyncPullRequests(ctx context.Context) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SyncPullRequests", ctx)
	ret0, _ := ret[0].(error)
	return ret0
}

// SyncPullRequests indicates an expected call of SyncPullRequests.
func (mr *MockGithubServiceAPIMockRecorder) SyncPullRequests(ctx any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncPullRequests", reflect.TypeOf((*MockGithubServiceAPI)(nil).SyncPullRequests), ctx)
}

// SyncRepository mocks base method.
func (m *MockGithubServiceAPI) SyncRepository(ctx context.Context) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SyncRepository", ctx)
	ret0, _ := ret[0].(error)
	return ret0
}

// SyncRepository indicates an expected call of SyncRepository.
func (mr *MockGithubServiceAPIMockRecorder) SyncRepository(ctx any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncRepository", reflect.TypeOf((*MockGithubServiceAPI)(nil).SyncRepository), ctx)
}

// WatchPullRequest mocks base method.
func (m *MockGithubServiceAPI) WatchPullRequest(ctx context.Context, locations []github.PRLocation) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "WatchPullRequest", ctx, locations)
	ret0, _ := ret[0].(error)
	return ret0
}

// WatchPullRequest indicates an expected call of WatchPullRequest.
func (mr *MockGithubServiceAPIMockRecorder) WatchPullRequest(ctx, locations any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WatchPullRequest", reflect.TypeOf((*MockGithubServiceAPI)(nil).WatchPullRequest), ctx, locations)
}
