Skip to content

feat(destination): add Jira connector with create/update support#236

Merged
masukai merged 2 commits into
drt-hub:mainfrom
Muawiya-contact:feat/jira-destination-158
Apr 12, 2026
Merged

feat(destination): add Jira connector with create/update support#236
masukai merged 2 commits into
drt-hub:mainfrom
Muawiya-contact:feat/jira-destination-158

Conversation

@Muawiya-contact

Copy link
Copy Markdown
Collaborator

What does this PR do?

Adds a new Jira destination connector to drt, with support for:

  • Creating Jira issues (POST /rest/api/3/issue)
  • Updating Jira issues (PUT /rest/api/3/issue/{issueIdOrKey})

It also includes:

  • New Jira destination config model (type: jira) with env-based auth fields
  • CLI destination wiring so Jira can be selected from sync YAML
  • Unit tests for create/update behavior, template rendering, and missing env var handling
  • Minimal Jira example files for local smoke testing

Issues Closes

Closes #158


Checklist

  • Tests pass (make test)
  • Linter passes (make lint)
  • Updated CHANGELOG.md

Copilot AI review requested due to automatic review settings April 8, 2026 21:41
@github-actions

github-actions Bot commented Apr 8, 2026

Copy link
Copy Markdown


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 Jira destination connector to drt-core, enabling syncs to create or update Jira issues via the Jira REST API v3, with config driven by environment variables and Jinja2 templates.

Changes:

  • Introduces JiraDestination with create (POST /rest/api/3/issue) and update (PUT /rest/api/3/issue/{issueIdOrKey}) support.
  • Adds JiraDestinationConfig to the discriminated destination config union and wires Jira into the CLI destination factory.
  • Adds unit tests and example YAML/data for local smoke testing.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
drt/destinations/jira.py Implements Jira issue create/update logic, templating, retry, and row-level error recording.
drt/config/models.py Adds JiraDestinationConfig and registers it in DestinationConfig union.
drt/cli/main.py Wires type: jira to JiraDestination() in the destination factory.
tests/unit/test_config.py Adds config defaults coverage for JiraDestinationConfig.
tests/destinations/test_jira.py Adds mocked-httpx unit tests for create/update/template/env-var failure paths.
examples/jira_test/test_data.py Provides sample rows for manual smoke testing.
examples/jira_test/jira_test_sync.yml Provides an example sync config for Jira destination smoke testing.

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

Comment thread drt/destinations/jira.py
Comment thread drt/destinations/jira.py
Comment thread drt/destinations/jira.py
Comment thread drt/destinations/jira.py
Comment thread drt/destinations/jira.py Outdated
Comment thread drt/destinations/jira.py
Comment thread drt/destinations/jira.py Outdated
Comment thread drt/config/models.py
Comment thread tests/unit/test_jira_destination.py
@Muawiya-contact

Copy link
Copy Markdown
Collaborator Author

Taking a break for now — will sign the CLA and follow up on tests later. Thanks!

@masukai

masukai commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

Thanks for the PR! I’ll be away for a few days, so my review will be delayed. Hang tight!

@Muawiya-contact

Copy link
Copy Markdown
Collaborator Author

recheck

@Muawiya-contact

Copy link
Copy Markdown
Collaborator Author

@cla-assistant recheck

@Muawiya-contact

Copy link
Copy Markdown
Collaborator Author

Hi @masukai,

I’ve read and agree to the Contributor License Agreement, including the grant of copyright and patent licenses for my contribution.

Please let me know if anything else is needed from my side. Thanks!

@Muawiya-contact

Copy link
Copy Markdown
Collaborator Author

recheck

@Muawiya-contact

Copy link
Copy Markdown
Collaborator Author

check-cla

@Muawiya-contact

Copy link
Copy Markdown
Collaborator Author

@cla-assistant recheck

@github-actions github-actions Bot locked and limited conversation to collaborators Apr 10, 2026
@drt-hub drt-hub unlocked this conversation Apr 12, 2026

@masukai masukai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Welcome to drt, @Muawiya-contact! 🎉 This is an excellent first contribution — and a substantial one.

What's great about this PR:

  • Clean Destination Protocol implementation with proper type narrowing
  • All Copilot review comments addressed in the updated code
  • Actually improves on existing patterns: uses sync_options.retry with fallback (vs hardcoded in HubSpot), default=str in record preview, and proper on_error="fail" within the batch loop
  • Good test coverage (7 tests) covering create, update, templates, env validation, error handling, and non-serializable row safety
  • ADF conversion for Jira v3 API handled correctly
  • Example files are a nice touch for users trying out the connector

I appreciate your patience with the CLA process — I know it took a few tries to get sorted out. Thanks for sticking with it!

I'll handle a small post-merge cleanup (adding Jira to API_REFERENCE docs).

Would you be interested in helping maintain this connector going forward? Adding support for custom fields or transitions would be great follow-ups. I'll also open an issue to align the error handling/retry patterns you introduced here across other destinations — would love your help on that too!

Thanks for the contribution! If you enjoy using drt, a ⭐ on the repo would mean a lot. Happy to see more PRs from you!

@masukai masukai merged commit 3caed3c into drt-hub:main Apr 12, 2026
1 of 2 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 12, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

good first issue: add Jira destination (create/update issues)

3 participants