Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'internal/gitaly/service/repository/fetch_remote.go')
-rw-r--r--internal/gitaly/service/repository/fetch_remote.go23
1 files changed, 17 insertions, 6 deletions
diff --git a/internal/gitaly/service/repository/fetch_remote.go b/internal/gitaly/service/repository/fetch_remote.go
index 5f7ceda05..baa70c064 100644
--- a/internal/gitaly/service/repository/fetch_remote.go
+++ b/internal/gitaly/service/repository/fetch_remote.go
@@ -41,10 +41,7 @@ func (s *server) FetchRemote(ctx context.Context, req *gitalypb.FetchRemoteReque
repo := s.localrepo(req.GetRepository())
remoteName := "inmemory"
remoteURL := req.GetRemoteParams().GetUrl()
-
- config := []git.ConfigPair{
- {Key: "remote.inmemory.url", Value: remoteURL},
- }
+ var config []git.ConfigPair
for _, refspec := range s.getRefspecs(req.GetRemoteParams().GetMirrorRefmaps()) {
config = append(config, git.ConfigPair{
@@ -52,15 +49,29 @@ func (s *server) FetchRemote(ctx context.Context, req *gitalypb.FetchRemoteReque
})
}
+ if resolvedAddress := req.GetRemoteParams().GetResolvedAddress(); resolvedAddress != "" {
+ modifiedURL, resolveConfig, err := git.GetURLAndResolveConfig(remoteURL, resolvedAddress)
+ if err != nil {
+ return nil, fmt.Errorf("couldn't get curloptResolve config: %w", err)
+ }
+
+ remoteURL = modifiedURL
+ config = append(config, resolveConfig...)
+ }
+
+ config = append(config, git.ConfigPair{Key: "remote.inmemory.url", Value: remoteURL})
+
if authHeader := req.GetRemoteParams().GetHttpAuthorizationHeader(); authHeader != "" {
config = append(config, git.ConfigPair{
- Key: fmt.Sprintf("http.%s.extraHeader", remoteURL),
+ Key: fmt.Sprintf("http.%s.extraHeader", req.GetRemoteParams().GetUrl()),
Value: "Authorization: " + authHeader,
})
}
+
+ //nolint: staticcheck
if host := req.GetRemoteParams().GetHttpHost(); host != "" {
config = append(config, git.ConfigPair{
- Key: fmt.Sprintf("http.%s.extraHeader", remoteURL),
+ Key: fmt.Sprintf("http.%s.extraHeader", req.GetRemoteParams().GetUrl()),
Value: "Host: " + host,
})
}