CreateRemote creates a new remote
(c *config.RemoteConfig)
| 635 | |
| 636 | // CreateRemote creates a new remote |
| 637 | func (r *Repository) CreateRemote(c *config.RemoteConfig) (*Remote, error) { |
| 638 | if err := c.Validate(); err != nil { |
| 639 | return nil, err |
| 640 | } |
| 641 | |
| 642 | remote := NewRemote(r.Storer, c) |
| 643 | |
| 644 | cfg, err := r.Config() |
| 645 | if err != nil { |
| 646 | return nil, err |
| 647 | } |
| 648 | |
| 649 | if _, ok := cfg.Remotes[c.Name]; ok { |
| 650 | return nil, ErrRemoteExists |
| 651 | } |
| 652 | |
| 653 | cfg.Remotes[c.Name] = c |
| 654 | return remote, r.Storer.SetConfig(cfg) |
| 655 | } |
| 656 | |
| 657 | // CreateRemoteAnonymous creates a new anonymous remote. c.Name must be "anonymous". |
| 658 | // It's used like 'git fetch git@github.com:src-d/go-git.git master:master'. |