func (_m *Repository) CreateTag(_a0 string, _a1 plumbing.Hash, _a2 *git.CreateTagOptions) (*plumbing.Reference, error) {
	ret := _m.Called(_a0, _a1, _a2)
	var r0 *plumbing.Reference
	if rf, ok := ret.Get(0).(func(string, plumbing.Hash, *git.CreateTagOptions) *plumbing.Reference); ok {
		r0 = rf(_a0, _a1, _a2)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*plumbing.Reference)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func(string, plumbing.Hash, *git.CreateTagOptions) error); ok {
		r1 = rf(_a0, _a1, _a2)
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
CreateTag provides a mock function with given fields: _a0, _a1, _a2
package mocks
import (
	context "context"
	config "github.com/go-git/go-git/v5/config"
	git "github.com/go-git/go-git/v5"
	mock "github.com/stretchr/testify/mock"
	object "github.com/go-git/go-git/v5/plumbing/object"
	plumbing "github.com/go-git/go-git/v5/plumbing"
	storer "github.com/go-git/go-git/v5/plumbing/storer"
)
type Repository struct {
	mock.Mock
}
func (_m *Repository) BlobObject(_a0 plumbing.Hash) (*object.Blob, error) {
	ret := _m.Called(_a0)
	var r0 *object.Blob
	if rf, ok := ret.Get(0).(func(plumbing.Hash) *object.Blob); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*object.Blob)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func(plumbing.Hash) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
func (_m *Repository) BlobObjects() (*object.BlobIter, error) {
	ret := _m.Called()
	var r0 *object.BlobIter
	if rf, ok := ret.Get(0).(func() *object.BlobIter); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*object.BlobIter)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func() error); ok {
		r1 = rf()
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
func (_m *Repository) Branch(_a0 string) (*config.Branch, error) {
	ret := _m.Called(_a0)
	var r0 *config.Branch
	if rf, ok := ret.Get(0).(func(string) *config.Branch); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*config.Branch)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func(string) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
func (_m *Repository) Branches() (storer.ReferenceIter, error) {
	ret := _m.Called()
	var r0 storer.ReferenceIter
	if rf, ok := ret.Get(0).(func() storer.ReferenceIter); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(storer.ReferenceIter)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func() error); ok {
		r1 = rf()
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
func (_m *Repository) CommitObject(_a0 plumbing.Hash) (*object.Commit, error) {
	ret := _m.Called(_a0)
	var r0 *object.Commit
	if rf, ok := ret.Get(0).(func(plumbing.Hash) *object.Commit); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*object.Commit)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func(plumbing.Hash) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
func (_m *Repository) CommitObjects() (object.CommitIter, error) {
	ret := _m.Called()
	var r0 object.CommitIter
	if rf, ok := ret.Get(0).(func() object.CommitIter); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(object.CommitIter)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func() error); ok {
		r1 = rf()
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
func (_m *Repository) Config() (*config.Config, error) {
	ret := _m.Called()
	var r0 *config.Config
	if rf, ok := ret.Get(0).(func() *config.Config); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*config.Config)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func() error); ok {
		r1 = rf()
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
func (_m *Repository) ConfigScoped(_a0 config.Scope) (*config.Config, error) {
	ret := _m.Called(_a0)
	var r0 *config.Config
	if rf, ok := ret.Get(0).(func(config.Scope) *config.Config); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*config.Config)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func(config.Scope) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
func (_m *Repository) CreateBranch(_a0 *config.Branch) error {
	ret := _m.Called(_a0)
	var r0 error
	if rf, ok := ret.Get(0).(func(*config.Branch) error); ok {
		r0 = rf(_a0)
	} else {
		r0 = ret.Error(0)
	}
	return r0
}
func (_m *Repository) CreateRemote(_a0 *config.RemoteConfig) (*git.Remote, error) {
	ret := _m.Called(_a0)
	var r0 *git.Remote
	if rf, ok := ret.Get(0).(func(*config.RemoteConfig) *git.Remote); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*git.Remote)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func(*config.RemoteConfig) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}
func (_m *Repository) CreateRemoteAnonymous(_a0 *config.RemoteConfig) (*git.Remote, error) {
	ret := _m.Called(_a0)
	var r0 *git.Remote
	if rf, ok := ret.Get(0).(func(*config.RemoteConfig) *git.Remote); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*git.Remote)
		}
	}
	var r1 error
	if rf, ok := ret.Get(1).(func(*config.RemoteConfig) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}