GitHub repositories, releases, pull requests and repository settings for swamp, over the REST API. One model type, @dataverket/github.
Forked from @goodcraft/github 2026.06.14.1 (MIT, copyright GoodCraft) and merged with the former @dataverket/github add-on, so one package owns the type. The upstream methods keep their names: sync lists the owner's repositories and proves the token; ensureRepo, ensureRelease and openPr are idempotent, find existing state first and default to dryRun: true, so a run plans before it writes.
The merged add-on supplies what ensureRepo does not reach: branches_list reports the branches a repository has and which one is default, default_branch_ensure converges the default branch and refuses to point at a branch the repository does not have, and repo_delete removes a repository verify-first, a no-op when it is already absent, with expectMirrorOf refusing one whose description does not mention the given text. This is what a push mirror needs: GitHub rejects a mirror push from a repository whose default branch is not the one being pushed, and the fix is to converge GitHub's default first.
A live pre-flight check proves the token is still accepted and can see the model's owner. The token comes from a vault expression and is never recorded or logged.