I am trying to automate a git push from my Golang program. Is there any way I can pass username and password from the parent program into the exec-command?
func gitPush(gitExeLocation string, currentDir string) {
fmt.Println("Pushing ...")
args := []string{"push", "-f", "origin", "HEAD"}
cmd := exec.Command(gitExeLocation, args...)
cmd.Dir = currentDir
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
stdin, err := cmd.StdinPipe()
if err != nil {
fmt.Println(err)
}
defer stdin.Close()
err = cmd.Start()
if err != nil {
fmt.Println(err)
return
}
time.Sleep(5 * time.Second)
io.WriteString(stdin, "<Username>
")
time.Sleep(3 * time.Second)
io.WriteString(stdin, "<Password>
")
err = cmd.Wait()
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Succeeded.
")
}