feat(clickup): add ClickUp data-source plugin (folder-scope boards, sprints, DORA)#9009
Draft
elynch303 wants to merge 2 commits into
Draft
feat(clickup): add ClickUp data-source plugin (folder-scope boards, sprints, DORA)#9009elynch303 wants to merge 2 commits into
elynch303 wants to merge 2 commits into
Conversation
Add a new DevLake data-source plugin for ClickUp, mirroring the linear (structure) and trello (REST client) tracker plugins. - models: ClickUpConnection (token auth, no Bearer prefix), ClickUpList scope (keyed by list id), ClickUpTask, ClickUpUser, ClickUpTaskComment (stub), ClickUpScopeConfig (status + type mapping) - migrationscripts: register + addInitTables creating all _tool_clickup_* tables via migrationhelper.AutoMigrateTables - tasks: task/user collectors (page-based + member REST), extractors, convertors to ticket.Issue/BoardIssue/IssueAssignee, crossdomain.Account and ticket.Board; shared status/type/time helpers - api: connection CRUD + test-connection (GET /team), scope, scope-config, hierarchical remote-scopes (Team→Space→Folder→List), proxy, blueprint v200 - impl: all required plugin interfaces incl. GetTablesInfo listing every model, dependency-ordered SubTaskMetas and PrepareTaskData - register clickup in plugins/table_info_test.go go build ./plugins/clickup/... and go vet pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…s, and DORA Add a new ClickUp data-source plugin so ClickUp workspaces feed DevLake's issue-tracking and DORA/velocity metrics, modeled on the Jira/Linear connectors. Backend: - Folder is the data-source scope (ClickUpFolder ~= a Jira board); lists are child entities collected every sync, so rolling/archived sprint lists never need re-scoping. - Sprint lists (name-matched) -> ticket.Sprint + board_sprints; start/end parsed from the list name (M/D vs D/M disambiguated by the >12 rule). - Tasks -> issues + board_issues; sprint-list tasks also -> sprint_issues. - Story points from ClickUp native sprint points (or a configured custom field). - Scope config: sprint-name pattern, story-point field, force-issue-type (flag a folder INCIDENT for DORA CFR/MTTR), status/type overrides. - remote-scopes walks Workspace -> Space -> Folder (folders selectable). - migration 20260722 adds _tool_clickup_folders + sprint/story-point columns. - Unit tests for sprint name/date parsing and status/type/story-point mapping. Config UI: - ClickUp connection registration (personal-token auth) with a Beta pill. - Boards data-scope picker + scope-config transformation panel. - getPluginScopeId(clickup) -> folderId so scope delete and per-scope project selection target one scope; fix a pre-existing Connections-page chunk() split that silently dropped plugins. Docs & dashboards: - Plugin README (connection, folder scope, sprints, story points, incidents). - Branded ClickUp Grafana dashboard (grafana/dashboards/ClickUp.json). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Evan Lynch <e.lynch303@gmail.com>
elynch303
marked this pull request as draft
July 21, 2026 22:12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 inthe
Authorizationheader. OAuth is not yet supported.Design: the folder is the board
The selected scope is a ClickUp folder (
ClickUpFolder≈ a Jira board), nota single list. Every list inside the folder is collected on each sync, so
rolling and archived sprint lists never need to be re-scoped.
boardsprint+board_sprintissue+board_issuesprint_issueaccountWhat's included
Backend (
backend/plugins/clickup)(?i)sprint\s*\d+); start/enddates parsed from the name, with
M/D/YYvsD/M/YYdisambiguated by the">12 must be the day" rule. Archived sprint lists are collected too.
pointsfield, or a configuredcustom field.
force-issue-type (flag a folder
INCIDENTfor DORA CFR/MTTR), andstatus/type overrides.
20260722adds_tool_clickup_foldersplus the sprint andstory-point columns.
Config UI
getPluginScopeId(clickup) → folderIdso scope deletion and per-scopeproject selection target a single scope; also fixes a pre-existing
Connections-page
chunk()split that silently dropped some plugins.Docs & dashboards
README.md(connection, folder scope, sprints, story points,incidents, scope config).