Skip to content

Commit 0ea3dcb

Browse files
committed
repo_remote: lift few top-level functions
1 parent f9ef6bd commit 0ea3dcb

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

repo_remote.go

+18-7
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ func LsRemote(url string, opts ...LsRemoteOptions) ([]*Reference, error) {
6969
return refs, nil
7070
}
7171

72-
// IsURLAccessible returns true if given remote URL is accessible via Git.
72+
// IsURLAccessible returns true if given remote URL is accessible via Git
73+
// within given timeout.
7374
func IsURLAccessible(timeout time.Duration, url string) bool {
7475
_, err := LsRemote(url, LsRemoteOptions{
7576
Patterns: []string{"HEAD"},
@@ -90,8 +91,8 @@ type AddRemoteOptions struct {
9091
Timeout time.Duration
9192
}
9293

93-
// AddRemote adds a new remote to the repository.
94-
func (r *Repository) AddRemote(name, url string, opts ...AddRemoteOptions) error {
94+
// AddRemote adds a new remote to the repository in given path.
95+
func RepoAddRemote(repoPath, name, url string, opts ...AddRemoteOptions) error {
9596
var opt AddRemoteOptions
9697
if len(opts) > 0 {
9798
opt = opts[0]
@@ -105,10 +106,15 @@ func (r *Repository) AddRemote(name, url string, opts ...AddRemoteOptions) error
105106
cmd.AddArgs("--mirror=fetch")
106107
}
107108

108-
_, err := cmd.AddArgs(name, url).RunInDirWithTimeout(opt.Timeout, r.path)
109+
_, err := cmd.AddArgs(name, url).RunInDirWithTimeout(opt.Timeout, repoPath)
109110
return err
110111
}
111112

113+
// AddRemote adds a new remote to the repository.
114+
func (r *Repository) AddRemote(name, url string, opts ...AddRemoteOptions) error {
115+
return RepoAddRemote(r.path, name, url, opts...)
116+
}
117+
112118
// RemoveRemoteOptions contains arguments for removing a remote from the repository.
113119
// Docs: https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emremoveem
114120
type RemoveRemoteOptions struct {
@@ -117,14 +123,14 @@ type RemoveRemoteOptions struct {
117123
Timeout time.Duration
118124
}
119125

120-
// RemoveRemote removes a remote from the repository.
121-
func (r *Repository) RemoveRemote(name string, opts ...RemoveRemoteOptions) error {
126+
// RemoveRemote removes a remote from the repository in given path.
127+
func RepoRemoveRemote(repoPath, name string, opts ...RemoveRemoteOptions) error {
122128
var opt RemoveRemoteOptions
123129
if len(opts) > 0 {
124130
opt = opts[0]
125131
}
126132

127-
_, err := NewCommand("remote", "remove", name).RunInDirWithTimeout(opt.Timeout, r.path)
133+
_, err := NewCommand("remote", "remove", name).RunInDirWithTimeout(opt.Timeout, repoPath)
128134
if err != nil {
129135
if strings.Contains(err.Error(), "fatal: No such remote") {
130136
return ErrRemoteNotExist
@@ -133,3 +139,8 @@ func (r *Repository) RemoveRemote(name string, opts ...RemoveRemoteOptions) erro
133139
}
134140
return nil
135141
}
142+
143+
// RemoveRemote removes a remote from the repository.
144+
func (r *Repository) RemoveRemote(name string, opts ...RemoveRemoteOptions) error {
145+
return RepoRemoveRemote(r.path, name, opts...)
146+
}

utils.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ type objectCache struct {
1919

2020
func newObjectCache() *objectCache {
2121
return &objectCache{
22-
cache: make(map[string]interface{}, 10),
22+
cache: make(map[string]interface{}),
2323
}
2424
}
2525

0 commit comments

Comments
 (0)