Skip to content

Provider setup

draftsman talks to GitHub, GitLab, Gitea, and Forgejo through one common Backend interface (UpsertDraft, Publish, ResolvePR) — the draft/publish CLI commands behave identically regardless of which one you point --backend at, with one exception: GitLab has no draft/hidden release state, so its "draft" is an approximation — see its provider guide before relying on it. What differs per provider is the token you need and whether --base-url is required:

Provider --backend --base-url PR-reference API fallback
GitHub github not needed (fixed api.github.com) yes
GitLab gitlab not needed (defaults to gitlab.com) yes
Gitea gitea required no endpoint available
Forgejo forgejo required not attempted (unreliable upstream)

The PR-reference API fallback column is about enrichment only (attaching a linked PR number to a changelog entry) — it has no bearing on core draft/publish functionality (modulo GitLab's draft caveat above). See ADR-0001 for why Gitea and Forgejo don't get an API fallback: commit-message text extraction (squash-merge trailers) still works on both, just without the live-lookup safety net GitHub and GitLab get.