diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2019-03-25 01:02:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-25 01:02:31 +0100 |
commit | e7099381e2fbc7bc0d46184f392a26383dc3ffbe (patch) | |
tree | e5f58c46b246c999360f75a2b594fcc0e1cd2c0b /repository.go | |
parent | 79081164bccd82fb12c7bfd058554812113eb7a4 (diff) | |
parent | 8b789adc353780b4a6688e8d2b3e8f47e60bf487 (diff) | |
download | go-git-e7099381e2fbc7bc0d46184f392a26383dc3ffbe.tar.gz |
Merge pull request #1094 from niukuo/remote_anonymous
add Repository.CreateRemoteAnonymous
Diffstat (limited to 'repository.go')
-rw-r--r-- | repository.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/repository.go b/repository.go index de92d64..e5b12b0 100644 --- a/repository.go +++ b/repository.go @@ -49,6 +49,7 @@ var ( ErrRepositoryAlreadyExists = errors.New("repository already exists") ErrRemoteNotFound = errors.New("remote not found") ErrRemoteExists = errors.New("remote already exists") + ErrAnonymousRemoteName = errors.New("anonymous remote name must be 'anonymous'") ErrWorktreeNotProvided = errors.New("worktree should be provided") ErrIsBareRepository = errors.New("worktree not available in a bare repository") ErrUnableToResolveCommit = errors.New("unable to resolve commit") @@ -492,6 +493,22 @@ func (r *Repository) CreateRemote(c *config.RemoteConfig) (*Remote, error) { return remote, r.Storer.SetConfig(cfg) } +// CreateRemoteAnonymous creates a new anonymous remote. c.Name must be "anonymous". +// It's used like 'git fetch git@github.com:src-d/go-git.git master:master'. +func (r *Repository) CreateRemoteAnonymous(c *config.RemoteConfig) (*Remote, error) { + if err := c.Validate(); err != nil { + return nil, err + } + + if c.Name != "anonymous" { + return nil, ErrAnonymousRemoteName + } + + remote := newRemote(r.Storer, c) + + return remote, nil +} + // DeleteRemote delete a remote from the repository and delete the config func (r *Repository) DeleteRemote(name string) error { cfg, err := r.Storer.Config() |