Linear integration
In short
Query and create issues, projects and comments. Connect it on the Integrations page; your app then calls Linear through Sapilon without ever holding a Linear credential.
Lets your app read and write Linear data — issues, projects, cycles, comments — through Linear’s GraphQL API, as the workspace member whose API key you use.
Connecting
On the Integrations page choose Connect on Linear and fill in:
- Personal API key — Linear → Settings → Security & access → Personal API keys → New API key. Limit it to the teams and permissions the app needs.
Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.
What your app can do
Only these requests are available; anything else is refused.
POST /graphql
How the agent uses it
Use integrations.request('linear', …). Everything is one GraphQL endpoint, relative to https://api.linear.app.
POST /graphql—body: { query, variables }. Read:{ method: 'POST', path: '/graphql', body: { query: '{ issues(first: 20, filter: { state: { type: { eq: "started" } } }) { nodes { id identifier title assignee { name } } } }' } }. Create:body: { query: 'mutation($input: IssueCreateInput!) { issueCreate(input: $input) { success issue { identifier url } } }', variables: { input: { teamId, title: 'Login fails' } } }.
List teams first ({ teams { nodes { id key name } } }): creating an issue needs a teamId. GraphQL errors come back with HTTP 200 in body.errors — check it. What the key may change is set on the key in Linear.
More from Linear: https://linear.app/developers/graphql