Document that git-pages sites need manual removal — deleting the repo does not unpublish them #89
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Anyone publishing docs through the git-pages workflow needs to know this, and nothing currently says it.
The behaviour
Deleting a repo does not unpublish its site. git-pages holds the uploaded archive independently of the repo, so the page stays live afterwards with no owner and no obvious way to retract it.
Measured on 2026-07-29 against a throwaway repo:
gravityfargo/test-docs-pdocwas deleted; the API 404s it.https://gravityfargo.modernleft.page/test-docs-pdoc/test_docs_pdoc.htmlstill returned 200 with the full 33601-byte page.server: git-pages (5235f43d5328)withcache-control: max-age=60already expired, so it was the origin answering, not a cache.Only checked minutes after deletion, so a longer-cycle reaper is not ruled out — but nothing observed suggests one.
That orphan is still live and is a real example rather than a hypothetical.
Why it bites
Deletion also removes the workflow and the
forgejo.tokenit used to upload. Those are the only things that could overwrite the site. So the order is not recoverable: once the repo is gone, the publisher has lost every mechanism they had to change what is served.This matters most for a private repo, because git-pages serves the archive unauthenticated regardless of repo visibility. Deleting a private repo can therefore leave its docs permanently public.
What to document
In whichever page covers publishing docs:
server-montreal/docker-compose/git-pages); there is no self-service path through the forge.One gap worth naming rather than papering over: whether an empty deploy actually clears a published site is untested. If it does, that is the clean retraction step and belongs in the docs as such. If it does not, manual host cleanup is the only route even for a repo you still control. Worth confirming before the wording is finalised.
Context: found while validating the
docs-publishcatalog entry in the templates repo, which now records the same finding in itsVALIDATION.md.