# CORE Integrations Integrations connect external services to CORE's knowledge graph, automatically capturing activities and context to build your persistent memory layer. ## Available Integrations ### 🐙 [GitHub](./github/README.md) Tracks your GitHub activities and notifications, including PRs, issues, comments, and repository events. **Features:** - Pull request creation, comments, and reviews - Issue tracking and assignments - Notification processing (mentions, reviews, assignments) - Repository watching and subscriptions - Team mentions and state changes ### 📐 [Linear](./linear/README.md) Project management and issue tracking integration. **Features:** - Issue creation and updates - Project milestone tracking - Team assignments and workflows ### 💬 [Slack](./slack/README.md) Workspace communication and activity tracking. **Features:** - Channel message monitoring - Direct message tracking - Thread participation ## How Integrations Work 1. **Authentication**: OAuth2 setup with service-specific scopes 2. **Data Collection**: Either scheduled sync (every 5 minutes) or real-time webhooks when supported 3. **Event Processing**: Converting activities into structured events 4. **Entity Extraction**: Identifying users, projects, repositories, etc. 5. **Knowledge Graph Ingestion**: Creating episodes and relationships in CORE ## Common Features ### 🔄 Data Collection Methods - **Scheduled Sync**: Periodic API polling (every 5 minutes) for services like GitHub and Linear - **Real-time Webhooks**: Instant event delivery for services that support personal webhooks (like Slack) - **Incremental Updates**: Only fetch new activities since last sync - **Deduplication**: Prevent duplicate events from being processed - **Rate Limiting**: Respect API limits with intelligent backoff - **Error Handling**: Graceful degradation on service outages ### 📊 Activity Tracking - **User Actions**: What you created, commented, or modified - **Mentions**: When others reference you in discussions - **Assignments**: Tasks or issues assigned to you - **State Changes**: Status updates on projects you follow ### 🧠 Knowledge Graph Integration - **Entities**: People, projects, repositories, issues, organizations - **Relationships**: Created, commented, assigned, mentioned, collaborated - **Temporal Context**: When events occurred and their sequence - **Cross-Integration Links**: Connections between different services ## Event Format All integrations generate events in a consistent format for knowledge graph ingestion: ```typescript { text: "{actor} {action} {object} in {context}: {details}", sourceURL: "https://service.com/link/to/event", timestamp: "2025-01-20T10:30:00Z", integration: "github" | "linear" | "slack" } ``` ### Example Events ``` john_doe created PR #123 in facebook/react: Fix memory leak in hooks alice_smith mentioned manoj_k in linear/project issue #456: Can you review? team mentioned manoj_k's team in slack/engineering: Weekly standup reminder ``` ## Configuration Each integration requires: 1. **OAuth Setup**: Service-specific authentication 2. **Scope Configuration**: Permissions for data access 3. **Sync Schedule**: How frequently to check for updates 4. **Filtering Rules**: What events to include/exclude ## Development Guide ### Adding New Integrations 1. **Create Integration Directory** ```bash mkdir integrations/{service-name} cd integrations/{service-name} ``` 2. **Required Files** ``` src/ ├── index.ts # Main entry point ├── schedule.ts # Sync logic and event processing ├── utils.ts # API utilities ├── account-create.ts # Authentication setup └── README.md # Integration documentation ``` 3. **Core Implementation** - Extend `IntegrationCLI` class - Implement OAuth2 authentication - Define sync schedule and event processing - Handle API rate limits and errors 4. **Event Processing** - Convert service events to standard format - Extract entities and relationships - Ensure consistent naming and structure - Add deduplication logic