From 092f27495a6b362537d2f8b7ff95bf29ee21f285 Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Wed, 13 Nov 2019 23:18:29 +1100 Subject: [PATCH] add remote model --- pkg/commands/git.go | 17 +++++++++++++++++ pkg/commands/remote.go | 14 ++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 pkg/commands/remote.go diff --git a/pkg/commands/git.go b/pkg/commands/git.go index ad275d10f..40e4bccf7 100644 --- a/pkg/commands/git.go +++ b/pkg/commands/git.go @@ -1061,3 +1061,20 @@ func (c *GitCommand) BeginInteractiveRebaseForCommit(commits []*Commit, commitIn func (c *GitCommand) SetUpstreamBranch(upstream string) error { return c.OSCommand.RunCommand(fmt.Sprintf("git branch -u %s", upstream)) } + +func (c *GitCommand) GetRemotes() ([]*Remote, error) { + goGitRemotes, err := c.Repo.Remotes() + if err != nil { + return nil, err + } + + remotes := make([]*Remote, len(goGitRemotes)) + // TODO: consider including the goGitRemote itself + for i, goGitRemote := range goGitRemotes { + remotes[i] = &Remote{ + Name: goGitRemote.Config().Name, + Urls: goGitRemote.Config().URLs, + } + } + return remotes, nil +} diff --git a/pkg/commands/remote.go b/pkg/commands/remote.go new file mode 100644 index 000000000..7e9e5f6f8 --- /dev/null +++ b/pkg/commands/remote.go @@ -0,0 +1,14 @@ +package commands + +// Remote : A git remote +type Remote struct { + Name string + Urls []string + Selected bool +} + +// GetDisplayStrings returns the display string of a remote +func (r *Remote) GetDisplayStrings(isFocused bool) []string { + + return []string{r.Name} +}