package gitclient type Repository struct { Name string `json:"name"` FullName string `json:"full_name"` Private bool `json:"private"` Empty bool `json:"empty"` } type Branch struct { Name string `json:"name"` Commit string `json:"commit"` } type GitClient interface { ListRepositories(owner string) ([]Repository, error) CreateRepository(owner, name, description string, private bool) (*Repository, error) GetRepository(owner, name string) (*Repository, error) ListBranches(owner, repo string) ([]Branch, error) GetBranch(owner, repo, branch string) (*Branch, error) }