Skip to main content
Private preview. fremforge is in private preview — invited customers only. Content is still subject to change. Request access →

Linear

Linear is a hosted issue tracker addressed as https://linear.app/<your-workspace>/issue/<KEY>-<NUMBER>. Issue keys follow the <TEAM>-<NUMBER> shape (e.g. ENG-123, MKT-456).

Forgejo side: external issue tracker

Repo Settings → “Advanced Settings” → External issue tracker.

FieldValue
External issue tracker URLhttps://linear.app/<your-workspace>/issue/{user}-{index}
External issue tracker URL formathttps://linear.app/<your-workspace>/issue/{user}-{index}
External issue tracker number formatRegexp
External issue tracker number format regexp([A-Z][A-Z]+)-([0-9]+)

{user} captures the team key (e.g. ENG), {index} captures the issue number. The regex is intentionally permissive on team key length (≥2 chars) because Linear lets you set the prefix to any uppercase string.

Replace <your-workspace> with your Linear workspace slug (visible in the URL bar on any Linear issue page).

Recommended commit-message format

feat(checkout): trial-card dedup

ENG-892

Linear’s GitHub/GitLab integrations support magic words like fixes ENG-892 to auto-close on merge — those words trigger Linear-side automation. fremforge isn’t a Linear-native integration partner, so the magic-words behaviour requires customer-side webhook + automation (next section).

Tracker side: webhook-driven automation (optional)

Linear’s inbound webhook lives at workspace-level, not per-issue:

  1. Linear → SettingsAPIWebhooksNew webhook.
  2. URL: an HTTP endpoint you control that parses the Forgejo webhook payload and calls Linear’s GraphQL API to attach the commit/PR as a comment + (optionally) transition the issue. Linear ships Zapier + n8n recipes for this; for sovereignty-sensitive customers, a 30-line Cloudflare Worker / your-own-FaaS does it directly.
  3. In fremforge: Repo Settings → WebhooksAdd WebhookForgejo → target the relay endpoint above. Tick Push and Pull Request.

The relay-in-the-middle is unfortunate but Linear doesn’t speak Forgejo’s webhook shape natively. If you have a Linear admin willing to configure the magic-words endpoint, fremforge ships the events; the relay just maps payload field names.

Sub-processor implications

Linear’s control plane is AWS US-east-1 (no EU region available as of 2026-05-19; Linear has historically not committed to EU residency despite customer requests). When you wire fremforge to Linear:

  • Commit metadata + author email flow to Linear → AWS US-east-1.
  • Add Linear Orbit, Inc. as a sub-processor in your DPA + sub-processor register.
  • Linear’s terms include the standard SCCs for EU→US transfers, but the data IS leaving the EU.

For sovereignty-sensitive workloads use Jira DC or Plane instead.

What this doesn’t do

  • No native magic-words support (fixes ENG-892) — that’s a Linear-native GitHub/GitLab integration feature, not part of the external-tracker primitive. Achievable via the relay path described above.
  • No GraphQL-side issue creation from fremforge (commits don’t auto-create Linear issues even when the referenced ID doesn’t exist).
  • Linear’s “Cycle” / “Project” / “Roadmap” concepts don’t map to Forgejo; integration stays at the issue-link level.