# Linear (/docs/integrations/linear)



Trace connects to Linear so findings flow into the workflow your engineers already use. Create Linear tickets from pentest findings, one at a time or in bulk. When a ticket is completed in Linear, the finding is marked `REMEDIATED` in Trace automatically, and each retest result is posted back to the ticket as a comment.

<DashboardAction to="settings/integrations/ticketing/linear" label="Connect Linear" description="Create tickets from findings and sync remediation status back automatically." />

How it works [#how-it-works]

1. From **Settings → Integrations → Ticketing → Linear** in the dashboard, click **Connect Linear**. Connecting and disconnecting require an organization admin. You'll be redirected to Linear's authorization screen, which lists the exact scopes Trace requests before you approve.
2. Approve the connection for the workspace you want. Each Trace organization connects to a single Linear workspace.
3. An organization admin sets the **ticket defaults**: the Linear team that tickets are created in, and optionally a project and labels.
4. Anyone with access to pentest results can now create tickets from findings.

Creating tickets [#creating-tickets]

From a finding, create a single ticket, or select multiple findings and create tickets in bulk (up to 10 per request). Tickets can be created from findings that are still open (`OPEN`, `IN_PROGRESS`, `VERIFIED_OPEN`, or `PARTIALLY_FIXED`). Each finding links to at most one ticket; a finding that already has a ticket is reported as already linked rather than ticketed again.

Each ticket is created with:

* **Title**: the finding title (editable when creating a single ticket).
* **Priority**: mapped from finding severity. Critical maps to Urgent, High to High, Medium to Medium, Low to Low, and Informational to No priority.
* **Body**: severity, category, and CWE/OWASP references, the other findings the same fix closes (when there are any), followed by the finding's impact, root cause, and remediation guidance, ending with a link back to the full finding in Trace.

Tickets are created in the admin-configured default team, with the default project and labels applied. Organization admins can pick a different team per ticket; the default project and labels apply only to the default team.

What stays in Trace [#what-stays-in-trace]

The ticket gives a developer what they need to understand and fix the issue, not what is needed to exploit it. Proof-of-concept steps, attack scenarios, and evidence stay in Trace; the ticket links back to the finding for anyone who needs the full detail. This keeps exploit knowledge inside Trace's access controls even when tickets are visible to your whole workspace. Retest comments follow the same rule: they carry the retest's conclusion and the recommended fix, never the reproduction steps or the requests and responses behind them.

Status sync [#status-sync]

Once connected, Linear delivers issue events for your workspace to Trace, so remediation status syncs back automatically:

* When a linked ticket moves to a **Done** (completed) state in Linear, the finding is marked `REMEDIATED` in Trace. The finding timeline attributes the change to your team and links the ticket.
* If that ticket is later reopened, canceled, or deleted, Trace reverts the `REMEDIATED` status it set (the finding returns to `IN_PROGRESS`). Trace only ever reverts its own webhook-driven updates; a status your team set in the dashboard is never overwritten.

A finding marked `REMEDIATED` through Linear behaves the same as one marked remediated in the dashboard: it becomes eligible for retest, and once Trace re-tests the fix it moves to `VERIFIED_FIXED` (or to `VERIFIED_OPEN` if the issue is still reproducible, `PARTIALLY_FIXED` if only a variant does). See the [Pentest overview](/docs/pentest/overview) for the full finding lifecycle.

Retest results on the ticket [#retest-results-on-the-ticket]

When Trace retests a finding that has a linked ticket, it posts the result as a comment on that ticket:

* **Fixed**: the retest's conclusion, and a note that the finding is marked Fixed in Trace.
* **Still open** or **Partially fixed**: the retest's conclusion and the recommended fix, plus how to start another retest.

Trace never changes the ticket's status. A ticket you moved to Done stays in Done even when the retest finds the issue still open, so the comment tells you what to do next: once the fix is deployed, move the ticket out of Done and back, or mark the finding fixed in Trace, and Trace retests it again.

What Trace can access [#what-trace-can-access]

Trace requests three scopes from Linear:

* `read`: read access to workspace data. Trace uses it to list teams, projects, and labels, and to read the state of linked issues.
* `issues:create`: create issues. Trace uses it to create tickets from findings.
* `comments:create`: create comments on issues. Trace uses it to post retest results on the tickets it created.

Trace cannot edit or delete your existing issues and has no admin access to your workspace. Tokens are stored encrypted and are never exposed in the dashboard or logs.

Disconnecting [#disconnecting]

Disconnect from **Settings → Integrations → Ticketing → Linear** at any time. Trace deletes its stored credentials and revokes its access with Linear. If the revocation cannot be confirmed, the settings page prompts you to also remove Trace from your Linear workspace settings. You can also revoke Trace's access from Linear's application settings, in which case the integration page prompts you to reconnect. In both cases status sync stops, and tickets already created remain in your Linear workspace untouched.
