You are reading the docs for v0.0.1-beta-1. View the latest docs.
Skip to content

Forge API reference ​

What kinhin assumes about each forge's API, checked against the forge's own documentation.

← Home · Setup guide

Forge support tells you how to set a forge up. These pages record what kinhin sends, which endpoints it calls, and how that compares with each forge's current API docs or published spec. Each page ends with a "Verified" date. Re-check when a forge ships a new API version, and update the date.

Forge IDs recognized by the config and the CLI (ForgeID): github, gitlab, gitea, forgejo, buildkite, azuredevops, bitbucket.

ForgePageAPI versioningSelf-hostedStatus
GitHubgithub.mdX-GitHub-Api-Version header (2022-11-28, 2026-03-10)Optional enterprise instance: GHES https://<hostname>/api/v3, GHEC https://api.<subdomain>.ghe.comSupported
Giteagitea.mdBy server releaseYes (instance)Supported
Forgejogitea.mdBy server releaseYes (instance)Supported
GitLab CEgitlab.md/api/v4, features by server releaseYes (instance)Supported
Buildkitebuildkite.md/v2n/a (SaaS control plane)Planned
Azure DevOpsazuredevops.mdapi-version query parameter (kinhin sends 7.0)Yes (Server)Planned
Bitbucket Cloudbitbucket.md/2.0Cloud onlyPlanned

The pages for planned forges describe implementation work in progress; those forges are not supported yet.

How each forge is used ​

RegistrationExitDemand sourceLabel filter
GitHubShared token, 1 hDeregistersWorkflow runs, then jobslabels ⊆ job.labels
Gitea, ForgejoShared token, long-livedIdle grace/actions/jobs?status=queued (Gitea 1.25+), /actions/runners/jobs?labels= (Forgejo 11+), else /actions/tasksruns-on against the pools' labels
GitLabOne runner per VMDeregisters/projects/{id}/jobs per projectjob.tag_list ⊆ pool labels

Where versions matter (input for a version setting) ​

ForgeWhat would vary with a selected version
GitHubX-GitHub-Api-Version value (no behavior difference for kinhin's endpoints today); base path /api/v3 for GHES, or api.<subdomain>.ghe.com for GHEC data residency
GiteaRegistration-token HTTP method, runner list and delete availability, demand endpoint (/actions/jobs from 1.25)
ForgejoRegistration-token method (GET), demand endpoint (/actions/runners/jobs?labels= from 11), runner list and delete (trunk only)
GitLabMinimum 16.0; runner API availability
Azure DevOpsapi-version (5.0 to 7.x depending on Server release)
Buildkite, BitbucketNone

Conventions ​

  • "Verified" means checked against the forge's documentation or published OpenAPI or swagger spec on the stated date. Specs show what a server documents, not how it behaves at runtime.
  • Code references are file:line and drift as the code changes; the endpoint tables name the function so the line can be re-found.