Files
TimeTracker/app/integrations/registry.py
T
Dries Peeters 12d79816d0 feat(integrations): add ActivityWatch integration for automatic time tracking
Import window and web activity from a local ActivityWatch aw-server
(https://activitywatch.net/) as automatic time entries (source='auto').

- Add ActivityWatchConnector: test_connection, sync_data, get_config_schema
- Per-user integration; config: server_url, default_project_id, lookback_days,
  optional bucket_ids (default: aw-watcher-window_* and aw-watcher-web_*)
- No OAuth; setup at /integrations/activitywatch/setup
- Idempotent sync via IntegrationExternalEventLink and external_uid
- Register connector; treat activitywatch as per-user in IntegrationService
- activitywatch_setup route and template; connect redirect and is_global updates
- View/manage: Configure and Edit Configuration links for activitywatch
- docs/integrations/ACTIVITYWATCH.md; tests for connector and idempotency
2026-01-21 15:13:46 +01:00

41 lines
2.0 KiB
Python

"""
Integration connector registry.
Registers all available connectors with the IntegrationService.
"""
from app.services.integration_service import IntegrationService
from app.integrations.jira import JiraConnector
from app.integrations.slack import SlackConnector
from app.integrations.github import GitHubConnector
from app.integrations.google_calendar import GoogleCalendarConnector
from app.integrations.outlook_calendar import OutlookCalendarConnector
from app.integrations.caldav_calendar import CalDAVCalendarConnector
from app.integrations.activitywatch import ActivityWatchConnector
from app.integrations.microsoft_teams import MicrosoftTeamsConnector
from app.integrations.asana import AsanaConnector
from app.integrations.trello import TrelloConnector
from app.integrations.gitlab import GitLabConnector
from app.integrations.quickbooks import QuickBooksConnector
from app.integrations.xero import XeroConnector
def register_connectors():
"""Register all available connectors."""
IntegrationService.register_connector("jira", JiraConnector)
IntegrationService.register_connector("slack", SlackConnector)
IntegrationService.register_connector("github", GitHubConnector)
IntegrationService.register_connector("google_calendar", GoogleCalendarConnector)
IntegrationService.register_connector("outlook_calendar", OutlookCalendarConnector)
IntegrationService.register_connector("caldav_calendar", CalDAVCalendarConnector)
IntegrationService.register_connector("activitywatch", ActivityWatchConnector)
IntegrationService.register_connector("microsoft_teams", MicrosoftTeamsConnector)
IntegrationService.register_connector("asana", AsanaConnector)
IntegrationService.register_connector("trello", TrelloConnector)
IntegrationService.register_connector("gitlab", GitLabConnector)
IntegrationService.register_connector("quickbooks", QuickBooksConnector)
IntegrationService.register_connector("xero", XeroConnector)
# Auto-register on import
register_connectors()