Sync Linear issues and documents into Knowledge with the Linear sign-in

The Linear connector now syncs as well as giving agents its tools, from
one connection. Linear's MCP server is its own OAuth issuer, so its
tokens are read through the same MCP tools the agents use (list_issues,
get_issue, list_comments, list_documents) rather than Linear's GraphQL
API, and no OAuth app has to be registered.

A source picks teams and projects, with comments (on by default) and the
projects' documents. Each issue becomes one document with its state,
assignee, priority, labels, description and comments, filed under its
team and citing its Linear URL. Each sync reads up to 500 issues and 100
documents again. /api/connections/<id>/linear lists the teams and
projects to pick from. Sources sync on their schedule with the owner's
connection, and pause when the sign-in needs reconnecting.
This commit is contained in:
arc53-machine committed 2026-09-29 11:32:40 +01:00
1 parent 805e65eeb4
commit 03d1b10897
9 files changed
+1168 -16

No files matched your search

+3 -1
View File
@@ -5,6 +5,7 @@ from docsgpt.parser.remote.crawler_loader import CrawlerLoader
from docsgpt.parser.remote.web_loader import WebLoader
from docsgpt.parser.remote.reddit_loader import RedditPostsLoaderRemote
from docsgpt.parser.remote.github_loader import GitHubLoader
from docsgpt.parser.remote.linear_loader import LinearLoader
from docsgpt.parser.remote.s3_loader import S3Loader
@@ -26,6 +27,7 @@ class RemoteCreator:
"reddit": RedditPostsLoaderRemote,
"github": GitHubLoader,
"s3": S3Loader,
"linear": LinearLoader,
}
@classmethod
@@ -88,5 +90,5 @@ def normalize_remote_data(source_type, remote_data):
return json.dumps(remote_data)
return remote_data
# s3's loader accepts a dict or JSON string; pass it through unchanged.
# s3's and linear's loaders accept a dict or JSON string; pass it through unchanged.
return remote_data