feat(clickup): add account and issue integration by Hungnguyen720 · Pull Request #3251 · generalaction/emdash · GitHub
Skip to content

feat(clickup): add account and issue integration - #3251

Draft
Hungnguyen720 wants to merge 1 commit into
generalaction:mainfrom
Hungnguyen720:feature/clickup-integration
Draft

Hungnguyen720 wants to merge 1 commit into
generalaction:mainfrom
Hungnguyen720:feature/clickup-integration

Conversation

@Hungnguyen720

Copy link
Copy Markdown

Description

Add a read-only ClickUp integration to Settings → Integrations and Add Task → From Issue, using the existing integration/issue plugin architecture rather than a separate UI.

  • Connect with a personal API token and an explicit Workspace ID, or automatically select a sole accessible Workspace. Persist normalized credentials through the existing encrypted account store, with stable workspace/user identity.
  • List open assigned tasks (including subtasks), search the most recently updated 500 assigned tasks, and resolve custom IDs, opaque internal IDs, and ClickUp task URLs directly. Direct lookup supports closed/unassigned tasks while enforcing the connected Workspace, including workspace-qualified URLs.
  • Map descriptions, status, assignees, folder/List, priority, checklists, parent and subtask links into issue context. Preserve Markdown in the full context.
  • Register ClickUp in linked-issue persistence and durable mention schemas.
  • Refresh a selected issue's details before creating a task, preserve the captured source account, honor issue-derived name capitalization, and avoid overwriting a manual branch name or re-including issue context the user removed when details arrive.
  • Document setup, search limits and read-only behavior in docs/clickup.md.

Scope and risk: This adds a value to the linked-issue JSON provider allowlist; there are no SQL migrations. Requests are GET-only against the fixed ClickUp HTTPS API, with redirects rejected, timeouts, and sanitized errors. No new dependencies, local app branding/profile changes, packaging changes, updater changes, or release automation are included. Comments, attachments and linked Docs are not imported.

Related issues

No linked upstream issue.

Testing

  • pnpm --filter @emdash/plugins test — 462 tests passed across 76 files.
  • Focused desktop node tests — 150 tests passed across 14 files, covering issue adapters, linking/mentions, task creation, context refresh, issue selection and initial conversation behavior.
  • pnpm --filter @emdash/plugins typecheck — passed.
  • pnpm --filter @emdash/emdash-desktop typecheck — passed after preparing workspace dependencies with Nx.
  • pnpm exec nx run-many -t lint -p @emdash/plugins @emdash/emdash-desktop — passed; existing warnings remain in unrelated editor/desktop-wire files. Final task-form changes also passed focused lint.
  • oxfmt --check --ignore-path /dev/null on the 18 changed TS/TSX files — passed. The explicit ignore path avoids the repository's catch-all .prettierignore; .oxfmtrc.json still applies.
  • git diff --check — passed.
  • Independent standards/spec review followed by fixes and regression tests, including workspace-qualified URLs, canonical credentials, short/internal IDs, context loading, and preserving user choices during loading.
Focused desktop test command

From the repository root:

pnpm --dir apps/emdash-desktop exec vitest run --project node \
  src/core/primitives/linked-issues \
  src/core/primitives/issues \
  src/core/features/issues \
  src/core/features/integrations/node/plugin-issue-provider.test.ts \
  src/core/features/integrations/node/controller.test.ts \
  src/core/features/tasks/browser/create-task-modal \
  src/core/features/tasks/browser/issue-context \
  src/core/features/tasks/browser/components/issue-selector \
  src/core/features/tasks/browser/task-config/initial-conversation-section.test.ts

Not run: live ClickUp account/API smoke testing, Electron UI testing, or the full workspace/browser/native-DB test suite. ClickUp HTTP behavior is tested with mocked responses; no real tokens or account data are included.

Screenshot/Recording (if applicable)

Not captured. This uses the existing generated integration connection form and issue picker; the live desktop flow still needs manual verification.

Checklist
  • I kept this PR focused on ClickUp and the task-context fixes needed for its flow
  • I ran a self-review before opening this PR
  • I ran the relevant local checks or explained why not
  • I updated docs when behavior or setup changed
  • I added or updated tests when behavior changed
  • I only added comments where the logic is not obvious
  • I used Conventional Commits for the commit message and PR title

@greptile-apps

greptile-apps Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

@Hungnguyen720
Hungnguyen720 marked this pull request as draft September 21, 2026 18:19

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant