elynch303 opened a new pull request, #9009: URL: https://github.com/apache/devlake/pull/9009
### ⚠️ Pre-requisites - [x] Check the [current PRs](https://github.com/apache/incubator-devlake/pulls) to avoid duplicates - [x] The commit message follows the [conventional commits](https://www.conventionalcommits.org/) spec - [x] All commits are signed off for the DCO (`git commit -s`) ### Summary Adds a new **ClickUp** data-source plugin so ClickUp workspaces feed DevLake's issue-tracking and DORA/velocity metrics, modeled on the Jira and Linear connectors. The plugin is registered as **Beta**. Authentication is a ClickUp **personal API token** (`pk_...`), sent verbatim in the `Authorization` header. OAuth is not yet supported. ### Design: the folder is the board The selected scope is a ClickUp **folder** (`ClickUpFolder` ≈ a Jira board), not a single list. Every list inside the folder is collected on each sync, so rolling and archived sprint lists never need to be re-scoped. | ClickUp | DevLake domain | | --- | --- | | Folder | `board` | | Sprint list (name-matched) | `sprint` + `board_sprint` | | Task | `issue` + `board_issue` | | Task in a sprint list | `sprint_issue` | | Folder member | `account` | ### What's included **Backend (`backend/plugins/clickup`)** - Folder scope with hierarchical remote-scopes (Workspace → Space → Folder). - Sprint detection by list-name pattern (default `(?i)sprint\s*\d+`); start/end dates parsed from the name, with `M/D/YY` vs `D/M/YY` disambiguated by the ">12 must be the day" rule. Archived sprint lists are collected too. - Story points from ClickUp's native sprint `points` field, or a configured custom field. - Scope config (transformation): sprint-name pattern, story-point field, force-issue-type (flag a folder `INCIDENT` for DORA CFR/MTTR), and status/type overrides. - Migration `20260722` adds `_tool_clickup_folders` plus the sprint and story-point columns. - Unit tests for sprint name/date parsing and status/type/story-point mapping. **Config UI** - ClickUp connection registration (token-paste form, Beta pill). - Boards data-scope picker + a scope-config transformation panel. - `getPluginScopeId(clickup) → folderId` so scope deletion and per-scope project selection target a single scope; also fixes a pre-existing Connections-page `chunk()` split that silently dropped some plugins. **Docs & dashboards** - Plugin `README.md` (connection, folder scope, sprints, story points, incidents, scope config). - Branded **ClickUp** Grafana dashboard for both mysql and postgresql. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
