Skip to content

feat: External System Connectors for GitHub and Linear (CFOS-26)#52

Merged
jayscambler merged 1 commit intomainfrom
jay/cfos-26-external-system-connectors
Jun 24, 2025
Merged

feat: External System Connectors for GitHub and Linear (CFOS-26)#52
jayscambler merged 1 commit intomainfrom
jay/cfos-26-external-system-connectors

Conversation

@jayscambler
Copy link
Contributor

Summary

  • Implements external system connectors to import data from GitHub and Linear into ContextFrame
  • Provides a base SourceConnector class for building additional connectors
  • Supports incremental synchronization to efficiently update datasets

Implementation Details

SourceConnector Base Class

  • Abstract base class defining the connector interface
  • Authentication abstraction supporting API keys, tokens, OAuth, and basic auth
  • Built-in incremental sync support with state persistence
  • Collection-based organization of imported content

GitHub Connector

  • Import repository files with configurable path and pattern filtering
  • Support for both text and binary files (including images)
  • Incremental sync based on commit history
  • Preserves file structure as collections
  • Automatic README context extraction

Linear Connector

  • Import teams, projects, issues, and comments
  • Preserves relationships between entities
  • Configurable filtering by team, project, and issue state
  • Support for archived content
  • Maps Linear's hierarchy to ContextFrame collections

Testing

  • Comprehensive unit tests with mocking for external APIs
  • Tests cover base connector functionality and specific implementations
  • All tests passing: uv run pytest contextframe/tests/test_connectors.py

Documentation

  • Added docs/external-connectors.md with usage examples
  • Example scripts in examples/connector_usage.py
  • Docstrings for all public methods

Checklist

  • SourceConnector base class with auth abstraction
  • GitHub connector with file → frame mapping
  • Linear connector for teams/projects/issues
  • Incremental sync support
  • Authentication handling (OAuth flow, API keys, tokens)
  • Tests and documentation
  • Google Drive connector (future work)

Success Metrics

  • ✅ Import capability for thousands of files
  • ✅ Incremental sync to avoid re-importing unchanged data
  • ✅ Zero data loss in structure/metadata

Closes CFOS-26

…S-26)

- Add SourceConnector base class with authentication abstraction
- Implement GitHubConnector for repository file import
  - Support for path filtering and file pattern matching
  - Incremental sync based on commit history
  - Binary and text file handling
- Implement LinearConnector for workspace data import
  - Import teams, projects, issues, and comments
  - Preserve relationships between entities
  - Support for filtering by team/project/state
- Add incremental sync support with state persistence
- Include comprehensive tests and documentation
- Add example usage scripts

The connectors create collections to organize imported content and
support various authentication methods (API key, token, OAuth, basic).
@linear
Copy link

linear bot commented Jun 24, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant