← ClaudeAtlas

github-to-forgejolisted

Migrate a repository from GitHub to a self-hosted Forgejo instance: the push, the forge-host adapter, CI ported to .forgejo/workflows, a runner, and an optional push-mirror back to GitHub. Use when moving one or more repos to your own Forgejo.
agigante80/forge-kit · ★ 0 · Code & Development · score 60
Install: claude install-skill agigante80/forge-kit
<!-- github-to-forgejo-version: 8 --> # github-to-forgejo Move a repo from GitHub to a self-hosted Forgejo: git hosting, governance, and (optionally) CI. Built on forge-kit's `forge-host` adapter. **Portable:** anything specific to the *target host* (runner registration, slow-storage tuning) is delegated to that project's infra reference; this skill is the stack-agnostic playbook. Draft origin: distilled from a real end-to-end migration (repo + self-hosted CI + a docker-compose e2e job to green + a downstream consumer cutover). The non-obvious steps below (esp. Phases 3 to 4) are the ones that actually bit. ## When to use - "migrate <repo> to Forgejo", "move this project off GitHub to my Forgejo", "self-host this repo's git and CI". ## Prerequisites - A reachable Forgejo instance, and either shell/Docker access to it or admin in its UI (to mint a token). - forge-kit's `forge-host` skill. If missing, `/forge-kit-adapt:adapt` installs it. ## Phase 0: Preflight - Reachable? `curl -fsS "$FORGE_API_URL/api/v1/version"` (private instances need a token). - **Mint a token.** Self-hosted with Docker access (password-free): ```sh docker exec -u git <forgejo-container> forgejo admin user \ generate-access-token --username <you> --scopes write:issue,write:repository --raw ``` Otherwise: Web UI → Settings → Applications → Generate Token. **Store it machine-globally so every project gets it**: the recommended default is the `env` block of `~/.claude/settings.json`