super-productivity/docs/wiki/2.17-Add-a-New-Issue-Integration.md
Corey Newton c2b18683d8
docs/wiki content v0.7 (#6568)
* docs(wiki): add new Quickstart to help with using Sync

There is a slew of notes that try to explain or show this so a
Quickstart can help bring everything into one place.

* docs(wiki): combine "First Steps" into single note with relevant links

* docs(wiki): update index notes

* docs(wiki): fix remaining broken external links

* docs(wiki): add core developer How-To guides to orient first-time devs

The majority of the documentation is currently spread across several
files ins "docs/" and READMEs. Over time these can be consolidated into
the wiki while retaining the common CONTRIBUTING.md as a valid entry
point.

* docs(wiki): add basic guides for plugins and issue integration

As with the core development docs, there is too much to add here right
now. These notes will serve as a simple entry to other resources.

* docs(wiki): add basic reference note for theming

* docs(wiki): add basic Translation guide

* docs(wiki): rename Theming and linting to clean up headings

* docs(wiki): add heading lint exception for GH-specific nav pages; rework sidebar and index pages

Sidebar should be a quick-access for the more common topics grouped
thematically with the X.00 notes simply enumerating all the notes where
appropriate.
2026-02-20 21:13:38 +01:00

28 lines
1.7 KiB
Markdown

# 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](https://github.com/super-productivity/super-productivity/blob/master/docs/add-new-integration.md)**
Use an existing provider (e.g. GitHub or GitLab under `src/app/features/issue/providers/`) as a reference.
## Related
- [[2.07-Manage-Task-Integrations]]
- [[4.24-Integrations]]
- [[3.07-Issue-Integration-Comparison]]