Skip to content

feat: add Jira Service Management (JSM) connector#9881

Open
VasuBansal7576 wants to merge 1 commit intoonyx-dot-app:mainfrom
VasuBansal7576:main
Open

feat: add Jira Service Management (JSM) connector#9881
VasuBansal7576 wants to merge 1 commit intoonyx-dot-app:mainfrom
VasuBansal7576:main

Conversation

@VasuBansal7576
Copy link
Copy Markdown

@VasuBansal7576 VasuBansal7576 commented Apr 3, 2026

/claim #2281

Summary

Adds a JiraServiceManagementConnector that indexes tickets from a specified JSM project (Service Request, Incident, Problem, Change, Service Task).

Approach

Rather than duplicating the existing JiraConnector logic, this PR implements JiraServiceManagementConnector as a thin subclass of JiraConnector, overriding only 3 hooks:

  • source → DocumentSource.JIRA_SERVICE_MANAGEMENT
  • source_display_name → Jira Service Management
  • jql_issue_type_filter → JSM-specific issue type filter

All checkpointing, authentication, pagination, slim docs, and incremental sync logic is inherited from the parent — zero duplication.

Files Changed

  • backend/onyx/connectors/jira_service_management/connector.py — new subclass (~60 lines)
  • backend/onyx/configs/constants.py — added JIRA_SERVICE_MANAGEMENT to DocumentSource
  • backend/onyx/connectors/registry.py — registered new connector
  • web/src/lib/sources.ts — added source metadata
  • web/src/lib/connectors/connectors.tsx — added frontend config
  • web/src/lib/connectors/credentials.ts — added credential config
  • web/src/lib/connectors/types.ts — added type entry
  • web/src/components/admin/connectors/ConnectorTitle.tsx — added display name
  • backend/tests/daily/connectors/jira_service_management/test_jsm_connector.py — tests

Tests

2 passed — ran: cd backend && python -m pytest tests/daily/connectors/jira_service_management/ -v

Closes #2281


Summary by cubic

Adds a JiraServiceManagementConnector to index Jira Service Management tickets with zero logic duplication by subclassing JiraConnector. Addresses Linear #2281 by meeting the requirement to ingest Service Request, Incident, Problem, Change, and Service Task issues.

  • New Features

    • Added JiraServiceManagementConnector with JSM issue type filter and DocumentSource.JIRA_SERVICE_MANAGEMENT.
    • Registered jira_service_management in the backend registry and source metadata; added UI config, credentials, autosync, and title handling.
    • Supports indexing “everything,” a specific project, or a custom JQL; inherits checkpointing, auth, pagination, slim docs, and permission sync.
  • Refactors

    • JiraConnector now exposes overridable source, source_display_name, and jql_issue_type_filter; error and credential messages use display name, and process_jira_issue accepts source.
    • Introduced onyx.connectors.onyx_jira for clean re-exports of JiraConnector and helpers.
    • Minor logging and formatting cleanups; added focused JSM tests for JQL and incremental sync.

Written for commit f9ebf2b. Summary will update on new commits.

Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 14 files

Confidence score: 5/5

  • This PR looks low risk; the only noted issue is a low-severity (3/10) maintainability concern rather than a functional bug.
  • web/src/lib/connectors/connectors.tsx duplicates Jira config for Jira Service Management, which could drift over time but should not affect current behavior.
  • Pay close attention to web/src/lib/connectors/connectors.tsx - duplicated config could diverge later.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="web/src/lib/connectors/connectors.tsx">

<violation number="1" location="web/src/lib/connectors/connectors.tsx:748">
P3: Jira Service Management’s form config is a near copy of the existing Jira config, which creates duplication that can drift when one is updated. Consider sharing a common base config or extracting the shared fields to avoid maintaining two copies.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

],
advanced_values: [],
},
jira_service_management: {
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Apr 3, 2026

Choose a reason for hiding this comment

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

P3: Jira Service Management’s form config is a near copy of the existing Jira config, which creates duplication that can drift when one is updated. Consider sharing a common base config or extracting the shared fields to avoid maintaining two copies.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At web/src/lib/connectors/connectors.tsx, line 748:

<comment>Jira Service Management’s form config is a near copy of the existing Jira config, which creates duplication that can drift when one is updated. Consider sharing a common base config or extracting the shared fields to avoid maintaining two copies.</comment>

<file context>
@@ -745,6 +745,91 @@ export const connectorConfigs: Record<
     ],
     advanced_values: [],
   },
+  jira_service_management: {
+    description: "Configure Jira Service Management connector",
+    subtext: `Configure which Jira Service Management content to index. You can index everything or specify a particular project.`,
</file context>
Fix with Cubic

@VasuBansal7576
Copy link
Copy Markdown
Author

Screenshot 2026-04-03 at 3 44 45 PM Screenshot 2026-04-03 at 3 44 59 PM Screenshot 2026-04-03 at 3 46 20 PM Demo screenshots: git diff showing 9 files changed, connector implementation showing thin subclass (~60 lines) overriding only source, source_display_name, and jql_issue_type_filter. All checkpointing/auth/pagination inherited from JiraConnector.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Jira Service Management Connector

1 participant