forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

appview: fix http clones

this was broken by the change that reworked the ResolveRepo middleware.

Signed-off-by: oppiliappan <me@oppi.li>

oppi.li 3f7f0cfd c48c7f1d

verified
Changed files
+9 -12
appview
state
+9 -12
appview/state/git_http.go
···
import (
"fmt"
"io"
+
"maps"
"net/http"
"github.com/bluesky-social/indigo/atproto/identity"
"github.com/go-chi/chi/v5"
+
"tangled.sh/tangled.sh/core/appview/db"
)
func (s *State) InfoRefs(w http.ResponseWriter, r *http.Request) {
user := r.Context().Value("resolvedId").(identity.Identity)
-
knot := r.Context().Value("knot").(string)
-
repo := chi.URLParam(r, "repo")
+
repo := r.Context().Value("repo").(*db.Repo)
scheme := "https"
if s.config.Core.Dev {
scheme = "http"
}
-
targetURL := fmt.Sprintf("%s://%s/%s/%s/info/refs?%s", scheme, knot, user.DID, repo, r.URL.RawQuery)
+
targetURL := fmt.Sprintf("%s://%s/%s/%s/info/refs?%s", scheme, repo.Knot, user.DID, repo.Name, r.URL.RawQuery)
s.proxyRequest(w, r, targetURL)
}
···
http.Error(w, "failed to resolve user", http.StatusInternalServerError)
return
}
-
knot := r.Context().Value("knot").(string)
-
repo := chi.URLParam(r, "repo")
+
repo := r.Context().Value("repo").(*db.Repo)
scheme := "https"
if s.config.Core.Dev {
scheme = "http"
}
-
targetURL := fmt.Sprintf("%s://%s/%s/%s/git-upload-pack?%s", scheme, knot, user.DID, repo, r.URL.RawQuery)
+
targetURL := fmt.Sprintf("%s://%s/%s/%s/git-upload-pack?%s", scheme, repo.Knot, user.DID, repo.Name, r.URL.RawQuery)
s.proxyRequest(w, r, targetURL)
}
···
http.Error(w, "failed to resolve user", http.StatusInternalServerError)
return
}
-
knot := r.Context().Value("knot").(string)
-
repo := chi.URLParam(r, "repo")
+
repo := r.Context().Value("repo").(*db.Repo)
scheme := "https"
if s.config.Core.Dev {
scheme = "http"
}
-
targetURL := fmt.Sprintf("%s://%s/%s/%s/git-receive-pack?%s", scheme, knot, user.DID, repo, r.URL.RawQuery)
+
targetURL := fmt.Sprintf("%s://%s/%s/%s/git-receive-pack?%s", scheme, repo.Knot, user.DID, repo.Name, r.URL.RawQuery)
s.proxyRequest(w, r, targetURL)
}
···
defer resp.Body.Close()
// Copy response headers
-
for k, v := range resp.Header {
-
w.Header()[k] = v
-
}
+
maps.Copy(w.Header(), resp.Header)
// Set response status code
w.WriteHeader(resp.StatusCode)