githttp: +import remote serves clone and fetch, and its pushes stay out of the normal branch list

Offen
#804 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@ThomasK33 arbeitet bereits daran.

Seit 12.11.2026.

  • #809 von @ThomasK33 — offen

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
20/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
aws, git, go
Bereich
backend, databases

Rechercherichtung

Start with the internal/githttp hook and trace how +import handles upload-pack, hydrate, quota, LFS, ref policies, webhooks, and the S3-WAL backend. Coordinate with PR #800 and check how existing refs under the import namespace are stored. The issue calls for +import pushes to create normal branches, upload-pack to be refused, and pushes to synced repos to be rejected.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Problem

Upstream's docs page docs/repos/imports (last-modified 2026-11-11 21:43 GMT) says the /{repo}+import.git URL accepts a push only, that an import push creates normal branches that a normal clone shows, and that a synced repo refuses an import push.

Live on a node at 3af232d9: an import push worked, clone and ls-remote on +import both succeeded, and the pushed branch did not appear on the persistent remote or in the REST branch list. docs/explanation/wire-compatibility.md lists +import as a supported namespace with no deviation row. The synced-repo refusal was not tested.

Desk decision

Make +import match the upstream page. Design check first, posted here before code: how +import is wired today (internal/githttp hook, hydrate, quota, LFS), whether an import push must write the persistent ref space directly, how the hook, ref policies, quota, webhooks and the S3-WAL backend handle it, and what happens to refs already stored under the import namespace. Then refuse upload-pack on +import, write import pushes into the normal branches, and refuse an import push on a synced repo. Breaking for anyone who fetches from +import today. Coordinate with PR #800, which hides refs/namespaces/ on the persistent remote.

Severity

High: imported branches are invisible to every normal client.

Upstream audit 2026-11-12, evidence 2026-11-12-1159UTC. Docs spec 5d8e1801 (ETag W/"8GUlAlKU8eko7Rr2", Last-Modified 2026-11-10 22:29:59 GMT). The cluster still serves ee8092bf, so this is documented drift, not a proven deployment (#234 rule: adopt what the docs publish). SDK 0.1.1 (Nov 10) and 0.1.2 (Nov 11) shipped on npm, PyPI and Go; their route list and token minting are unchanged from 0.1.0.


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: medium

Vorherrschende Sprache
Go
Sterne
0
Forks
0
Ø Merge
6 Std. 16 Min.
Gemergte PRs (30 T.)
243

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus coder/openstorage

Alle Issues in coder/openstorage

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.