Linear Connector
Keep your product team aligned by pushing updates into Linear directly from LoopCLI.
Required secrets
| Vault key | Description |
|---|---|
linear-api-key |
Linear personal API key. |
loopcli secret add linear-api-key --value lin_api_...
Common automations
- Create bug tickets when monitors fire.
- Update issue status after deployments finish.
- Sync customer feedback from Notion or Supabase into Linear.
Example loop
name: linear-post-deploy
description: Move Linear issues to "Shipped" after deployment completes.
steps:
- id: list
name: Fetch issues
type: http
config:
url: https://api.linear.app/graphql
method: POST
headers:
Authorization: "Bearer {{secret:linear-api-key}}"
Content-Type: application/json
body:
query: |
query Issues($label: String!) {
issues(filter: {labels: {name: {eq: $label}}, state: {name: {eq: "In QA"}}}) {
nodes { id identifier title }
}
}
variables:
label: "{{env:DEPLOY_LABEL}}"
- id: update
name: Move to shipped
type: http
config:
url: https://api.linear.app/graphql
method: POST
headers:
Authorization: "Bearer {{secret:linear-api-key}}"
Content-Type: application/json
body:
query: |
mutation Complete($issueId: String!) {
issueUpdate(id: $issueId, input: {stateId: "{{env:LINEAR_SHIPPED_STATE}}"}) {
success
}
}
variables:
issueId: "{{steps.list.response.body.data.issues.nodes[0].id}}"
LoopCLI GraphQL requests can batch multiple issues by iterating in a CLI step if needed.