LinearDataProvider Introduction
The LinearDataProvider module provides a data provider API for Linear issue tracking services.
Linear is a modern issue tracking and project management tool designed for software teams. This module enables integration with Linear through its GraphQL API, supporting operations on:
- Issues (create, read, update, archive, search)
- Teams (read, search)
- Projects (create, read, update, archive, search)
- Cycles/Sprints (create, read, update, archive, search)
- Labels (create, read, update, archive, search)
- Comments (create, read, update, delete)
To use this module, use "%requires LinearDataProvider" in your code.
Authentication
Linear supports two authentication methods:
- **API Key**: Personal API keys can be created in Linear settings. Use the
token option.
- **OAuth 2.0**: For third-party applications. Use oauth2_client_id and oauth2_client_secret.
- Example:
//!/usr/bin/env qore
%new-style
%strict-args
%require-types
%enable-all-warnings
%requires LinearDataProvider
LinearDataProvider provider({"token": ENV.LINEAR_TOKEN});
AbstractDataProviderRecordIterator i = provider.getChildProvider("teams").searchRecords();
while (i.next()) {
printf("Team: %s (%s)\n", i.getValue().name, i.getValue().key);
}
hash<auto> issue = provider.getChildProvider("issues").createRecord({
"teamId": "team-id-here",
"title": "New issue from Qore",
"description": "Created via LinearDataProvider",
"priority": 2,
});
printf("Created issue: %s\n", issue.identifier);
Release Notes
LinearDataProvider v1.0
- Initial release of the LinearDataProvider module