feat(destination): add Jira connector with create/update support#236
Conversation
|
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. |
There was a problem hiding this comment.
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
JiraDestinationwith create (POST /rest/api/3/issue) and update (PUT /rest/api/3/issue/{issueIdOrKey}) support. - Adds
JiraDestinationConfigto 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.
|
Taking a break for now — will sign the CLA and follow up on tests later. Thanks! |
|
Thanks for the PR! I’ll be away for a few days, so my review will be delayed. Hang tight! |
|
recheck |
|
@cla-assistant recheck |
|
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! |
|
recheck |
|
check-cla |
|
@cla-assistant recheck |
masukai
left a comment
There was a problem hiding this comment.
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.retrywith fallback (vs hardcoded in HubSpot),default=strin record preview, and properon_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!
What does this PR do?
Adds a new Jira destination connector to
drt, with support for:POST /rest/api/3/issue)PUT /rest/api/3/issue/{issueIdOrKey})It also includes:
type: jira) with env-based auth fieldsIssues Closes
Closes #158
Checklist
make test)make lint)CHANGELOG.md