in pkg/client/git/client.go [199:232]
func (c *Client) Push(projectName, remote string, refSpecs ...string) (pushOutput string, retErr error) {
projectPath := c.projectPath(projectName)
r, err := git.PlainOpen(projectPath)
if err != nil {
return "", errors.Wrap(err, "")
}
unsecureRemoteName := fmt.Sprintf("unsecure_%s", remote)
_, err = c.createRemoteWithCredential(r, remote, unsecureRemoteName)
if err != nil {
return "", errors.Wrap(err, "unable to create new remote")
}
defer func() {
if err = r.DeleteRemote(unsecureRemoteName); err != nil {
retErr = errors.Wrap(err, "unable to delete tmp remote")
}
}()
pushArgs := []string{"push", unsecureRemoteName}
pushArgs = append(pushArgs, refSpecs...)
cmd := exec.Command("git", pushArgs...)
cmd.Dir = projectPath
bts, err := cmd.CombinedOutput()
if err != nil {
return "", errors.Wrap(err, string(bts))
}
return string(bts), nil
}