diff --git a/modules/task/repo_clone.go b/modules/task/repo_clone.go index bc164fc..8bb488a 100644 --- a/modules/task/repo_clone.go +++ b/modules/task/repo_clone.go @@ -57,16 +57,24 @@ func RepoClone( return nil, err } - // set up upstream remote for forks + // set up upstream remote for forks and mirrors + var upstreamURL string + var upstreamBranch string if repoMeta.Fork && repoMeta.Parent != nil { - upstreamURL, err := cloneURL(repoMeta.Parent, login) + upstreamURLRaw, err := cloneURL(repoMeta.Parent, login) if err != nil { return nil, err } - upstreamBranch := repoMeta.Parent.DefaultBranch + upstreamURL = upstreamURLRaw.String() + upstreamBranch = repoMeta.Parent.DefaultBranch + } else if repoMeta.Mirror && len(repoMeta.OriginalURL) != 0 { + upstreamURL = repoMeta.OriginalURL + upstreamBranch = repoMeta.DefaultBranch + } + if len(upstreamURL) != 0 { repo.CreateRemote(&git_config.RemoteConfig{ Name: "upstream", - URLs: []string{upstreamURL.String()}, + URLs: []string{upstreamURL}, }) repoConf, err := repo.Config() if err != nil {