linear-api 0.1.0

Unofficial async Rust client for the Linear GraphQL API (API-key auth)
Documentation
{
  "searchIssues": {
    "nodes": [
      {
        "id": "0193b1a0-4d5e-4000-8000-000000000042",
        "identifier": "ENG-42",
        "title": "Fix the flux capacitor",
        "description": "The flux capacitor drains the battery when idle.",
        "url": "https://linear.app/acme/issue/ENG-42/fix-the-flux-capacitor",
        "priority": 2,
        "estimate": 3,
        "metadata": {
          "matchType": "fullText",
          "score": 12.5
        },
        "createdAt": "2026-07-01T12:00:00.000Z",
        "updatedAt": "2026-07-04T08:30:00.000Z",
        "state": {
          "id": "11111111-1111-4111-8111-111111111111",
          "name": "In Progress",
          "type": "started",
          "color": "#f2c94c"
        },
        "team": {
          "id": "22222222-2222-4222-8222-222222222222",
          "key": "ENG",
          "name": "Engineering"
        },
        "assignee": {
          "id": "33333333-3333-4333-8333-333333333333",
          "name": "Ada Lovelace",
          "displayName": "ada"
        },
        "labels": {
          "nodes": [
            {
              "id": "55555555-5555-4555-8555-555555555555",
              "name": "bug",
              "color": "#eb5757"
            }
          ]
        }
      },
      {
        "id": "0193b1a0-4d5e-4000-8000-000000000091",
        "identifier": "OPS-9",
        "title": "Flux capacitor spare parts inventory",
        "description": null,
        "url": "https://linear.app/acme/issue/OPS-9/flux-capacitor-spare-parts-inventory",
        "priority": 0,
        "estimate": null,
        "metadata": {},
        "createdAt": "2026-05-20T08:00:00.000Z",
        "updatedAt": "2026-05-21T08:00:00.000Z",
        "state": {
          "id": "11111111-1111-4111-8111-111111111115",
          "name": "Triage",
          "type": "triage",
          "color": "#fc7840"
        },
        "team": {
          "id": "22222222-2222-4222-8222-222222222223",
          "key": "OPS",
          "name": "Operations"
        },
        "assignee": null,
        "labels": { "nodes": [] }
      }
    ],
    "pageInfo": {
      "hasNextPage": false,
      "hasPreviousPage": false,
      "startCursor": "s0",
      "endCursor": "s1"
    }
  }
}