mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-05-17 18:38:46 -05:00
507266fbbf
- Document CSV import, bulk actions, Idempotency-Key, and token rate limits in REST_API and scopes. - Clarify session vs token CSV import in import/export README; mobile offline idempotency note. - Add docs/integrations/LINEAR.md; refresh CODE_BASED_ANALYSIS_REPORT (v5.3.0, 14 connectors). - env.example: API_TOKEN_RATE_LIMIT_*; setup.py version; CD release workflow tweak; Zapier webhook sample.
1.7 KiB
1.7 KiB
Linear integration
TimeTracker can import Linear issues as tasks using a Personal API key and the public GraphQL API (Linear API docs).
Authentication
Linear is not OAuth in this connector: you create a Personal API Key in Linear (Settings → API) and paste it into TimeTracker when you connect the integration. The key is stored like other integration credentials.
What gets synced
- Issues are fetched from Linear (paginated) and upserted as tasks under per-team projects (created or matched by integration metadata).
- Task name:
IDENTIFIER: title(e.g.ENG-42: Fix login). - Description: issue URL (when available).
- Status: mapped to
donewhen the Linear workflow state name is done/completed/canceled (case-insensitive); otherwisetodo.
Optional JSON custom_fields on tasks stores integration metadata (e.g. Linear identifier and URL) for matching on later syncs.
Configuration
| Field | Purpose |
|---|---|
| API key | Linear personal API key |
| Team keys (optional) | Comma-separated team keys (e.g. ENG,MOB). If empty, issues from all accessible teams are considered (subject to API visibility). |
| Automatic sync | When enabled, runs on the integration schedule like other connectors. |
Use Test connection to verify the key; use Sync now for a manual import.
Limits and notes
- Sync walks up to a bounded number of GraphQL pages per run to avoid runaway imports.
- The TimeTracker server must reach
https://api.linear.app. - Webhooks are not required; sync is pull-based from Linear.