Skip to content

Add Jira Cloud integration for quality issue tracking#521

Open
barbinbrad wants to merge 1 commit intomainfrom
claude/slack-plan-jira-integration-YeLxQ
Open

Add Jira Cloud integration for quality issue tracking#521
barbinbrad wants to merge 1 commit intomainfrom
claude/slack-plan-jira-integration-YeLxQ

Conversation

@barbinbrad
Copy link
Contributor

What does this PR do?

This PR adds comprehensive Jira Cloud integration to Carbon, enabling users to link and sync quality issues (non-conformances and investigations) between Carbon and Jira. The integration supports:

  • OAuth 2.0 authentication with Atlassian Cloud
  • Creating new Jira issues from Carbon tasks
  • Linking existing Jira issues to Carbon tasks
  • Bidirectional sync of issue status, assignees, and descriptions
  • Webhook support for real-time updates from Jira back to Carbon
  • Rich text conversion between Atlassian Document Format (ADF) and Tiptap/ProseMirror JSON

Key Changes

New Packages & Modules

  • packages/ee/src/jira/: Complete Jira integration library
    • client.ts: REST API client with OAuth token management and issue operations
    • service.ts: Database service layer for storing credentials and mappings
    • types.ts: TypeScript types and Zod schemas for Jira entities
    • richtext.ts: Bidirectional ADF ↔ Tiptap conversion utilities
    • utils.ts: Status mapping between Jira and Carbon
    • config.tsx: Integration configuration and setup instructions

API Routes

  • integrations.jira.install.ts: OAuth initiation endpoint
  • integrations.jira.oauth.ts: OAuth callback handler
  • integrations.jira.issue.create.ts: Create new Jira issues
  • integrations.jira.issue.link.ts: Link/unlink existing issues
  • webhook.jira.$companyId.ts: Webhook receiver for Jira events

UI Components

  • IssueDialog.tsx: Modal for managing Jira issue links
  • CreateIssue.tsx: Form to create new Jira issues
  • LinkIssue.tsx: Search and link existing Jira issues

Background Jobs

  • packages/jobs/trigger/jira.ts: Trigger.dev task for syncing Jira webhook events

Notifications

  • packages/ee/src/notifications/services/jira.ts: Service to push Carbon task updates to Jira

Database

  • Migration to register Jira as an available integration

Technical Details

  • OAuth Flow: Implements Atlassian OAuth 2.0 with HMAC-SHA256 state verification
  • Token Management: Automatic refresh token handling with 5-minute buffer before expiration
  • Rich Text: Full conversion between ADF (Jira's format) and Tiptap JSON (Carbon's format)
  • Status Mapping: Maps Jira's three status categories (new/indeterminate/done) to Carbon's task statuses
  • External Mapping: Stores Jira issue references in externalIntegrationMapping table for tracking

Mandatory Tasks

  • Self-reviewed the code
  • Integration includes proper error handling and logging
  • Type-safe implementation with Zod schemas for validation

How should this be tested?

  1. Setup: Ensure JIRA_CLIENT_ID, JIRA_CLIENT_SECRET, and JIRA_STATE_SECRET environment variables are configured
  2. OAuth Flow: Click "Connect" on Jira integration settings, authorize with Atlassian account
  3. Create Issue: From a quality issue task, create a new Jira issue via the dialog
  4. Link Issue: Search for and link an existing Jira issue to a Carbon task
  5. Sync: Verify status changes in Jira are reflected in Carbon via webhook
  6. Unlink: Test unlinking issues and verify mappings are cleaned up

The integration is fully functional with automated OAuth state verification and token refresh mechanisms.

https://claude.ai/code/session_01P9RVCjSHKjD3qXyyTZYGXe

This adds a Jira Cloud integration similar to the existing Linear integration,
allowing users to link nonConformance action tasks to Jira issues for project
tracking and collaboration.

Features:
- OAuth 2.0 authentication with Atlassian Cloud
- Search and link existing Jira issues to action tasks
- Create new Jira issues from action tasks
- Bidirectional sync of status, assignee, and notes
- Webhook support for real-time updates from Jira
- Remote links (backlinks) from Jira to Carbon

Slack thread: https://carbon-ms.slack.com/archives/C0AF1HGUZ7X/p1771179788827569

https://claude.ai/code/session_01P9RVCjSHKjD3qXyyTZYGXe
@vercel
Copy link

vercel bot commented Feb 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
academy Ready Ready Preview, Comment Feb 15, 2026 8:26pm
carbon Error Error Feb 15, 2026 8:26pm
mes Ready Ready Preview, Comment Feb 15, 2026 8:26pm

Request Review

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