Skip to content

feat: add integration for Plane with issue detail and card timers#308

Open
aleksandarbasara wants to merge 1 commit intoclockify:masterfrom
aleksandarbasara:feat/plane-integration
Open

feat: add integration for Plane with issue detail and card timers#308
aleksandarbasara wants to merge 1 commit intoclockify:masterfrom
aleksandarbasara:feat/plane-integration

Conversation

@aleksandarbasara
Copy link
Copy Markdown

  • Introduced a new integration for Plane, allowing users to track time on issues directly from the Plane interface.
  • Added selectors for issue detail containers and issue cards to render Clockify timers.
  • Implemented functions to extract issue details, including title and key, from the Plane UI.
  • Styled the Clockify widget for better alignment within the Plane interface.

- Introduced a new integration for Plane, allowing users to track time on issues directly from the Plane interface.
- Added selectors for issue detail containers and issue cards to render Clockify timers.
- Implemented functions to extract issue details, including title and key, from the Plane UI.
- Styled the Clockify widget for better alignment within the Plane interface.
Copilot AI review requested due to automatic review settings April 17, 2026 11:47
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Plane integration so Clockify timers can be rendered both in Plane issue detail views and on issue cards, enabling time tracking directly from the Plane UI.

Changes:

  • Added plane.js integration script that detects Plane issue context, extracts issue metadata (title/key/project), and renders timers in detail and card views.
  • Added Plane domain match patterns and script registration in integrations.json.
  • Added Plane-specific widget styling via applyStyles.

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 2 comments.

File Description
src/integrations/plane.js Implements Plane DOM selectors + extraction logic, renders detail widget and card timers, and injects Plane-specific styles.
src/integrations/integrations.json Registers the Plane integration (URLs + script).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/integrations/plane.js
Comment on lines +243 to +254
function isIssueContext() {
return (
/\/issues\//.test(window.location.pathname) ||
/\/browse\/[A-Z]+-\d+\/?$/i.test(window.location.pathname) ||
!!$('[data-testid*="issue"]') ||
!!$('textarea#title-input') ||
!!$('[id^="issue-"]') ||
!!$('button.text-caption-md-medium.text-tertiary') ||
!!$('button.text-caption-sm-regular.text-tertiary')
);
}

Comment thread src/integrations/plane.js
Comment on lines +158 to +159
const resolvedWorkspaceName = workspaceFromCard || workspaceName;

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.

2 participants