package repo

import "context"

const (
	DefaultAuthorName  = "freeleaps-gitops-bot"
	DefaultAuthorEmail = "gitops@mathmast.com"
)

type FileOperation string

const (
	OpCreate FileOperation = "create"
	OpUpdate FileOperation = "update"
	OpDelete FileOperation = "delete"
)

type ChangeRequest struct {
	Path      string
	Content   []byte // nil for delete
	Operation FileOperation
}

type RepoManager interface {
	Initialize(context context.Context, opts ...Option) error
	ApplyChanges(context context.Context, changes []ChangeRequest, message string) error
}
