package repo

type Option func(*Options)

type Options struct {
	URL          string
	Project      string
	Name         string
	Branch       string
	AuthorName   string
	AuthorEmail  string
	PluginConfig PluginConfig
}

func WithProject(project string) Option {
	return func(o *Options) {
		o.Project = project
	}
}

func WithName(name string) Option {
	return func(o *Options) {
		o.Name = name
	}
}

func WithURL(url string) Option {
	return func(o *Options) {
		o.URL = url
	}
}

func WithBranch(branch string) Option {
	return func(o *Options) {
		o.Branch = branch
	}
}

func WithAuthor(name, email string) Option {
	return func(o *Options) {
		o.AuthorName = name
		o.AuthorEmail = email
	}
}

func WithPluginConfig(config PluginConfig) Option {
	return func(o *Options) {
		o.PluginConfig = config
	}
}
