29 lines
574 B
Go
29 lines
574 B
Go
package git
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"coopcloud.tech/abra/pkg/log"
|
|
"github.com/go-git/go-git/v5"
|
|
"github.com/go-git/go-git/v5/config"
|
|
)
|
|
|
|
// CreateRemote creates a new git remote in a repository
|
|
func CreateRemote(repo *git.Repository, name, url string, dryRun bool) error {
|
|
if dryRun {
|
|
log.Debugf("dry run: remote %s (%s) not created", name, url)
|
|
return nil
|
|
}
|
|
|
|
if _, err := repo.CreateRemote(&config.RemoteConfig{
|
|
Name: name,
|
|
URLs: []string{url},
|
|
}); err != nil {
|
|
if !strings.Contains(err.Error(), "remote already exists") {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|