diff --git a/pkg/commands/git.go b/pkg/commands/git.go index 5f567038e..5e2c179c7 100644 --- a/pkg/commands/git.go +++ b/pkg/commands/git.go @@ -333,24 +333,14 @@ func (c *GitCommand) Pull() error { } // Push pushes to a branch -func (c *GitCommand) Push(branchName string, force bool) error { +func (c *GitCommand) Push(branchName string, force bool, ask func(string) string) error { forceFlag := "" if force { forceFlag = "--force-with-lease " } cmd := fmt.Sprintf("git push %s -u origin %s", forceFlag, branchName) - return c.OSCommand.DetectUnamePass(cmd, func(passOrUname string) string { - if passOrUname == "password" { - // ask for password - return "some password" - } - if passOrUname == "username" { - // ask for username - return "some username" - } - return "" - }) + return c.OSCommand.DetectUnamePass(cmd, ask) } // SquashPreviousTwoCommits squashes a commit down to the one below it diff --git a/pkg/gui/files_panel.go b/pkg/gui/files_panel.go index a00bd2843..513aa336d 100644 --- a/pkg/gui/files_panel.go +++ b/pkg/gui/files_panel.go @@ -361,7 +361,15 @@ func (gui *Gui) pushWithForceFlag(currentView *gocui.View, force bool) error { } go func() { branchName := gui.State.Branches[0].Name - if err := gui.GitCommand.Push(branchName, force); err != nil { + err := gui.GitCommand.Push(branchName, force, func(passOrUname string) string { + if passOrUname == "password" { + // TODO: ask for password + return "some password" + } + // TODO: ask for username + return "some username" + }) + if err != nil { _ = gui.createErrorPanel(gui.g, err.Error()) } else { _ = gui.closeConfirmationPrompt(gui.g)