forked from toolshed/abra
		
	
		
			
				
	
	
		
			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
 | |
| }
 |