1package proto
 2
 3// Provider is a Git repository provider.
 4type Provider interface {
 5	// Open opens a repository.
 6	Open(name string) (Repository, error)
 7	// ListRepos lists all repositories.
 8	ListRepos() ([]Metadata, error)
 9	// Create creates a new repository.
10	Create(name string, projectName string, description string, isPrivate bool) error
11	// Delete deletes a repository.
12	Delete(name string) error
13	// Rename renames a repository.
14	Rename(name string, newName string) error
15	// SetProjectName sets a repository's project name.
16	SetProjectName(name string, projectName string) error
17	// SetDescription sets a repository's description.
18	SetDescription(name string, description string) error
19	// SetPrivate sets a repository's private flag.
20	SetPrivate(name string, isPrivate bool) error
21	// SetDefaultBranch sets a repository's default branch.
22	SetDefaultBranch(name string, branch string) error
23}
24
25// MetadataProvider is a Git repository metadata provider.
26type MetadataProvider interface {
27	// Metadata gets a repository's metadata.
28	Metadata(name string) (Metadata, error)
29}