Back to Super Productivity

Add a New Issue Integration

docs/wiki/2.17-Add-a-New-Issue-Integration.md

18.4.41.7 KB
Original Source

Add a New Issue Integration

How to add a new issue tracker (e.g. Jira, GitHub, GitLab-style) to Super Productivity.

New integrations implement the shared IssueProvider pattern: models, API service, and a common-interfaces service that implements IssueServiceInterface. The integration is then registered in core issue model and config.

High-level Steps

  1. Create a directory under src/app/features/issue/providers/ (e.g. my-provider/).
  2. Add model files (config and issue types), API service, and a common-interfaces service implementing IssueServiceInterface.
  3. Add constants and config form section; implement required interface methods (e.g. isEnabled, testConnection$, getById$, searchIssues$, getFreshDataForIssueTask).
  4. Register the provider in issue.model.ts (IssueProviderKey, IssueIntegrationCfg, IssueIntegrationCfgs, IssueProvider), issue.const.ts (type constant, ISSUE_PROVIDER_TYPES, DEFAULT_ISSUE_PROVIDER_CFGS, ISSUE_PROVIDER_FORM_CFGS_MAP), and ensure the issue service injects and uses it.
  5. Optionally add UI (issue content, header, config) in provider-specific subfolders.
  6. Run the app, add the integration in settings, and test connection and issue flow.

Full Guide

Step-by-step instructions, file templates, and the exact interface methods to implement are in the repository:

docs/add-new-integration.md

Use an existing provider (e.g. GitHub or GitLab under src/app/features/issue/providers/) as a reference.

  • [[2.07-Manage-Task-Integrations]]
  • [[4.24-Integrations]]
  • [[3.07-Issue-Integration-Comparison]]