← All integrations

Linear

Full sync GraphQL

GroundTruth reads your Linear issues over the GraphQL API, links each to the GitHub work that implements it, and moves it to the correct workflow state, only when the code and the acceptance criteria agree.

What we read

  • Issues by team, using the identifier (for example ENG-123), title, and description.
  • The current workflow state and its type, the assignee, and the parent issue.
  • Acceptance criteria written in the issue description, including checkbox lists.

What we write back

Linear has no separate transition objects, so a status change is setting the issue's workflow state. GroundTruth resolves the target state on the issue's team by name, and falls back to matching by state type, then applies it with a single issueUpdate. Every write is captured in the audit chain and is revertible.

Acceptance-criteria gate

A merged pull request will not move an issue to a completed state while its acceptance criteria are unmet. It is routed to a review-type state and flagged, so nothing closes before it is actually done.

Setup

  1. Connect with a Linear personal API key, or via OAuth for a shared install.
  2. Optionally scope to a single team key; leave it blank to cover all teams.
  3. We backfill recent issues, then keep them current from webhooks.

Continuous sync

Add a Linear webhook for Issue events pointed at the URL we give you on connect. GroundTruth reconciles each change as it arrives.

State mapping

Linear stateState typeGroundTruth category
Backlogbacklogtodo
Todo / Unstartedunstartedtodo
In Progress / In Review (started)startedin_progress
Donecompleteddone
Canceledcanceledcanceled

We map by Linear's state type, so your custom state names are respected. Started-type states cover both in-progress and review columns.

Your data, handled with care.

We never read or store your source code, only issue and PR metadata, statuses, and acceptance-criteria text. Least-privilege, revocable access: read plus the single write your workflow needs. Encrypted in transit and at rest, tenant-isolated. Every automated change is signed into an audit chain you can inspect, prove, and undo.

Run it in shadow mode first.

See it be right for a cycle, then let it keep Linear true.

Start free trial