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]

Reply via email to