mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-20 18:08:55 +00:00
* feat(azure-devops): configure auto import limit #7017 * fix(azure-devops): translate auto import limit form #7017 --------- Co-authored-by: cocojojo5213 <cocojojo5213@users.noreply.github.com>
169 lines
13 KiB
Markdown
169 lines
13 KiB
Markdown
# Issue Integration Comparison
|
||
|
||
This reference lists which capabilities each **issue provider** supports: issue import, status transitions, time tracking/worklog submission, comments, subtasks, attachments, filtering options, auto-import to backlog, story points, due dates, and other provider-specific behavior. Use it to compare providers or to see what to expect when you enable one.
|
||
|
||
For an overview of how integrations work and how to set them up, see [[4.24-Integrations]] and [[2.07-Manage-Task-Integrations]]. For a comparison of **sync** providers (WebDAV, Dropbox, SuperSync, local file), see [[3.08-Sync-Integration-Comparison]].
|
||
|
||
## Core Capabilities (All Providers)
|
||
|
||
Every issue provider supports the same basic operations: checking that the integration is enabled, testing the connection, opening the issue in the external system, fetching an issue by ID, searching issues, and adding an issue as a task in the app. All providers also support refreshing already-imported tasks so that changes in the external system (title, status, etc.) are reflected locally. Each provider has a configurable **poll interval** (or none) for how often the app checks for updates. Beyond that, support for status transitions, worklogs, comments, subtasks, attachments, and filtering depends on the provider and the external API.
|
||
|
||
## Feature Matrix Summary
|
||
|
||
| Provider | Import | Status | Worklog | Comments | Subtasks | Attachments | Filtering | Auto-import | Story pts | Due dates |
|
||
| --------------- | ------ | ------------- | ---------- | -------- | -------- | ----------- | ------------------- | ----------- | --------- | --------- |
|
||
| Jira | Yes | Yes | Yes | Yes | Yes | Yes | JQL | Yes | Yes | — |
|
||
| GitHub | Yes | No | No | Yes | No | No | Repo, assignee | Yes | — | — |
|
||
| GitLab | Yes | Auto (closed) | Deprecated | Yes | No | No | Project, scope | — | Weight | Yes |
|
||
| Gitea | Yes | No | No | No | No | No | Repo, scope, labels | Last 100 | — | — |
|
||
| OpenProject | Yes | Yes | Yes | No | No | Yes | Scope, status | — | Yes | Yes |
|
||
| CalDAV | Yes | Config | No | No | No | No | Category | — | — | Yes |
|
||
| Calendar (iCal) | Yes | No | No | No | No | No | Text search | Today | Duration | Yes |
|
||
| Redmine | Yes | No | No | No | No | No | Project, scope | Last 100 | — | — |
|
||
| Trello | Yes | No | No | No | No | Yes | Board | Yes | Yes | — |
|
||
| Linear | Yes | Auto (state) | No | No | No | Yes | Team, project | Yes | — | — |
|
||
| Azure DevOps | Yes | No | No | No | No | No | Project, scope | Config | — | Yes |
|
||
| ClickUp | Yes | Auto (status) | No | No | Yes | Yes | Team | Yes | — | — |
|
||
|
||
**Legend:** **Status** = configurable or automatic status transitions; **Worklog** = time tracking submission to the external system; **Auto-import** = automatic import of new issues into backlog (or "Last 100" / "Today" where noted).
|
||
|
||
## Per-Provider Details
|
||
|
||
### 1. Jira
|
||
|
||
- **Issue import:** Full import with JQL search.
|
||
- **Status transitions:** Configurable workflows (e.g. Open → In Progress → Done).
|
||
- **Worklog:** Full worklog submission and time-spent tracking.
|
||
- **Comments:** Comment tracking and display.
|
||
- **Subtasks:** Subtask relationship tracking and import.
|
||
- **Attachments:** Attachment mapping and display.
|
||
- **Filtering:** JQL-based search; auto-import with custom JQL.
|
||
- **Story points:** Custom field support.
|
||
- **Assignment:** Re-assignment on task start; assignee update when marking done.
|
||
|
||
### 2. GitHub
|
||
|
||
- **Issue import:** Issues and pull requests from repositories.
|
||
- **Status transitions:** Not supported (issues are read-only from the app).
|
||
- **Worklog:** Not supported.
|
||
- **Comments:** Comment tracking with optional filter by username.
|
||
- **Filtering:** Search within repo; backlog query; username-based comment filtering.
|
||
- **Auto-import:** Configurable backlog query.
|
||
|
||
### 3. GitLab
|
||
|
||
- **Issue import:** Full import from projects (cloud or self-hosted).
|
||
- **Status transitions:** Issues auto-marked as done when closed in GitLab.
|
||
- **Worklog:** Previously supported; now deprecated.
|
||
- **Comments:** Comment tracking with optional filter by username.
|
||
- **Filtering:** Project-based; scope (All, Assigned, Created); custom filter parameters.
|
||
- **Story points:** Weight field mapping.
|
||
- **Due dates:** Due date support.
|
||
|
||
### 4. Gitea
|
||
|
||
- **Issue import:** Issues from repositories (self-hosted).
|
||
- **Status transitions / Worklog / Comments / Subtasks / Attachments:** Not supported.
|
||
- **Filtering:** Repository-based; scope (All, Created by me, Assigned to me); optional comma-separated label allowlist (AND match) and denylist (NONE match), both applied client-side and supporting scoped labels (`scope/name`). Also works against Forgejo. The `labels=` query is still sent to the server as a coarse pre-filter, but Gitea's `/repos/{owner}/{repo}/issues` and `/repos/issues/search` endpoints disagree on AND vs OR semantics ([go-gitea/gitea#33509](https://github.com/go-gitea/gitea/issues/33509)), so the client filter is the source of truth.
|
||
- **Auto-import:** Last 100 issues for the project.
|
||
|
||
### 5. OpenProject
|
||
|
||
- **Issue import:** Work packages with project filtering.
|
||
- **Status transitions:** Full support with configurable workflows.
|
||
- **Worklog:** Time entry submission with activity types.
|
||
- **Comments:** Not tracked.
|
||
- **Subtasks:** Not supported.
|
||
- **Attachments:** Attachment upload support.
|
||
- **Filtering:** Scope (e.g. created-by-me, assigned-to-me); status and username filtering.
|
||
- **Story points / Time estimates:** Story point field and estimated time parsing/display.
|
||
- **Due dates:** Start date support.
|
||
- **Progress:** Percentage-done updates.
|
||
|
||
### 6. CalDAV
|
||
|
||
- **What it uses:** The app requests **VTODO** components only. It does **not** read or display VEVENTs (calendar events). If your calendar has both events and tasks, only the tasks (VTODO) appear in the app.
|
||
- **Authentication:** **Requires login** (username and password or equivalent) to the CalDAV server.
|
||
- **Issue import:** Task/todo import from CalDAV. Sub-tasks may optionally be imported along with parent. Completion status can **sync back** to the server when enabled in configuration.
|
||
- **Status transitions:** Supported when enabled in configuration.
|
||
- **Worklog / Comments / Subtasks / Attachments:** Not supported.
|
||
- **Filtering:** Category-based filtering.
|
||
- **Notes:** Task notes/description support.
|
||
- **Due dates:** Start date with time support.
|
||
- **Related tasks:** Task relationship tracking.
|
||
- **URL format (example Nextcloud):** `https://<NC-URL>/remote.php/dav/calendars/<USER>/<CALENDAR_NAME>/`. Use the **“Copy private link”** (or CalDAV URL) from your calendar—**not** the subscription/export link (that is for the iCal integration). Items without a valid VTODO are skipped.
|
||
|
||
### 7. Calendar (iCal)
|
||
|
||
- **What it uses:** The app parses **VEVENT** components only from an iCal feed. It does **not** use VTODO (tasks). Events must have a valid **start time** (DTSTART); otherwise they are skipped. All-day events (date-only start) are included.
|
||
- **Authentication:** **No login.** You only provide the calendar URL (subscription or export link).
|
||
- **Issue import:** Calendar events (VEVENT) from iCal URLs. Events appear in the Schedule/Planner; event description becomes the task note. **Completion and time/date changes are not synced back**—the feed is read-only from the app’s perspective; if you change the task in the app, the external calendar is not updated.
|
||
- **Status transitions / Worklog / Comments / Subtasks / Attachments:** Not supported.
|
||
- **Filtering:** Text-based search in event titles. Calendar provider settings can also apply optional case-insensitive include and exclude regular expressions to event titles. The include filter acts as an allowlist; the exclude filter is applied afterward.
|
||
- **Auto-import:** Current day events.
|
||
- **Time estimates:** Event duration used as task time estimate.
|
||
- **Due dates:** Event start time (all-day or timed).
|
||
- **Descriptions:** Event description as task notes.
|
||
- **URL format (example Nextcloud):** Use the **“Copy subscription link”** so the URL is in the correct form, e.g. `https://<NC-URL>/remote.php/dav/public-calendars/<CALENDAR-ID>?export`. Paste this in the app under **“URL of the iCal source.”** Do **not** use the “Copy private link”—that format is for CalDAV, not iCal.
|
||
- **Platform note:** The **Disable in web or Android app** setting suppresses iCal requests in the browser and on Android, where WebView network restrictions can produce similar failures.
|
||
|
||
### 8. Redmine
|
||
|
||
- **Issue import:** Issues from projects.
|
||
- **Status transitions / Worklog / Comments / Subtasks / Attachments:** Not supported.
|
||
- **Filtering:** Project-based; scope support.
|
||
- **Auto-import:** Last 100 issues for the project.
|
||
|
||
### 9. Trello
|
||
|
||
- **Issue import:** Cards from boards.
|
||
- **Status transitions / Worklog / Comments / Subtasks:** Not supported.
|
||
- **Attachments:** Attachment mapping and display.
|
||
- **Filtering:** Board-based filtering.
|
||
- **Story points:** Supported.
|
||
- **Auto-import:** Automatic card import to backlog.
|
||
|
||
### 10. Linear
|
||
|
||
- **Issue import:** Issues with team/project filtering.
|
||
- **Status transitions:** Issues auto-marked as done based on state.
|
||
- **Worklog / Comments / Subtasks:** Not supported.
|
||
- **Attachments:** Attachment mapping and display.
|
||
- **Filtering:** Team and project-based.
|
||
- **Auto-import:** Automatic issue import to backlog.
|
||
|
||
### 11. Azure DevOps
|
||
|
||
- **Issue import:** Work items from Azure DevOps Boards.
|
||
- **Status transitions / Worklog / Comments / Subtasks / Attachments:** Not supported.
|
||
- **Filtering:** Project-based; scope support (All, Created by me, Assigned to me).
|
||
- **Auto-import:** Configurable automatic backlog import limit, up to 200 work items.
|
||
- **Due dates:** Due date, target date, or start date support.
|
||
|
||
### 12. ClickUp
|
||
|
||
- **Issue import:** Tasks with team filtering.
|
||
- **Status transitions:** Tasks auto-marked as done based on status.
|
||
- **Worklog / Comments:** Not supported.
|
||
- **Subtasks:** Full subtask support and relationship tracking.
|
||
- **Attachments:** Attachment mapping and display.
|
||
- **Filtering:** Team-based.
|
||
- **Auto-import:** Automatic task import to backlog.
|
||
|
||
## Implementation Notes
|
||
|
||
- **Broadest feature set:** Jira and OpenProject support the most capabilities: configurable status transitions, worklog submission, and advanced filtering. OpenProject adds progress percentage and activity; Jira adds JQL, subtasks, and assignment handling.
|
||
- **Comment-focused:** GitHub and GitLab offer solid issue import and comment tracking (with optional username filtering) but do not support worklog submission; GitLab worklog support is deprecated.
|
||
- **Subtask support:** Besides Jira, only ClickUp supports full subtask import and relationship tracking among the listed providers.
|
||
- **Calendar-oriented:** CalDAV and Calendar (iCal) are geared toward calendar/todo and event integration (categories, event duration, today's events) rather than full issue-tracking features. They are **not interchangeable**: iCal uses subscription URLs and VEVENT (events) only, with no login and no sync back; CalDAV uses server login and VTODO (tasks) only, with optional completion sync. Using the wrong link type (e.g. Nextcloud “private link” in iCal or “subscription link” in CalDAV) is a common cause of the integration not working; see [[4.24-Integrations]] for the iCal vs CalDAV overview.
|
||
- **Auto-import and polling:** Most providers support automatic polling for updates and many support auto-import of new issues into the backlog; exact behavior (e.g. "last 100" vs custom query) is provider-specific.
|
||
|
||
Optional capabilities (e.g. subtasks, attachments, sending updates back to the external system) are implemented per provider depending on what the external API supports.
|
||
|
||
## Related
|
||
|
||
- [[4.24-Integrations]] — How issue and sync providers work
|
||
- [[3.08-Sync-Integration-Comparison]] — Sync provider comparison
|
||
- [[2.07-Manage-Task-Integrations]] — How to set up and use issue integrations
|
||
- [[4.09-Task-Attributes]] — How issue-linked task attributes fit into the task model
|
||
- [[4.11-Subtasks]] — Subtask behavior in the app (including issue-linked subtasks)
|