DEV Community

Cover image for How to Sync Jira Work Items and GitHub Issues Using Exalate
Teja Bhutada
Teja Bhutada

Posted on

How to Sync Jira Work Items and GitHub Issues Using Exalate

A tech company recently came to us with a pretty common challenge—they wanted to make sure all the important updates from GitHub issues were automatically syncing with their Jira work, and vice versa.

Their dev team was working in GitHub, while the project managers were in Jira. But both teams kept running into problems with status updates, comments, and other key info not showing up where they needed to.

Basically, they wanted both teams to stay in the loop, no matter which platform they were using. GitHub for Jira didn’t give them the level of flexibility they wanted, which prompted the system admin to reach out to us for assistance.

Our solution was to set up an integration that would keep everything in sync between GitHub and Jira, so both sides would always have the latest info and no updates would get lost in the shuffle.

What Jira to GitHub Integration Use Cases Are Possible?

Here are some scenarios where you can connect Jira Service Management (JSM), Jira Software, and other Jira products to GitHub.

  • Bidirectional synchronization of work item/issue statuses: Ensure that status updates are reflected across both platforms. For instance, when a GitHub issue is closed, the corresponding Jira work item is updated automatically, and vice versa.

  • Enhanced visibility of development activities: Link GitHub issues to JSM tickets for real-time visibility, helping support agents understand development context and improve customer interactions.

  • Sync task lists and assignees: Establish a two-way mapping between Jira Software and GitHub in order to fetch information about the user or issue/work. This will help users on both platforms to keep track of in-house and open-source contributions.

  • Custom field synchronization between JSM and GitHub: Sync custom fields (priority levels, labels, picklists, checkboxes, etc.) between JSM and GitHub to maintain consistency in issue (ticket) categorization and reporting across both platforms.

  • Sharing product change updates: Developers in GitHub can sync updates to Jira, allowing project managers to receive real-time information about code changes and more. Comments from Jira are also forwarded to developers in GitHub in real time.

How Exalate Handles Jira GitHub Issues Integration

Let’s check out how you can configure syncs between GitHub and Jira using Exalate.
Exalate provides two modes for connecting Jira with GitHub Issues.

The Basic mode allows you to sync issues on both sides, primarily descriptions, attachments, comments, and other default entities.

The Script mode provides a scripting engine that uses the Groovy programming language for syncing complex use cases, including statuses, priorities, and custom fields. This mode also supports AI-based integration.

  • To use Exalate, you must first install it in your GitHub repo and Jira. You can get both connectors from the Atlassian and GitHub marketplaces. You can follow the entire installation process through a video tutorial.

  • After installation, you can now set up the connection starting from either side. For this specific demonstration, I’ll start with Jira.

Exalate Connection Interface

  • On the connection screen, choose Script mode. Then, enter the name and description of the connection for clarity. A code will be generated, which you must copy to your clipboard. Copy it and head over to GitHub. Then click “Accept Invitation” and paste the code there.

  • All done. You can now configure the connection. Click the “Edit connection” icon, then click on the “Rules” tab.

Exalate Script mode sync rules

  • Here, you can see two sets of rules using the Groovy scripting language: outgoing sync rules and incoming sync rules. This code snippet ensures that all synced issues will have the specified value (comment, description, attachment, etc.).
  • Auto-generate the code with Exalate’s AI-powered chat feature called AI Assist, which you can use to configure both the incoming and outgoing sync rules. Suppose you want to sync issue statuses from GitHub with work statuses in Jira, input the following: “Map GitHub status ‘open’ to Jira’s ‘Open,’ and ‘closed’ to ‘Done’ in the GitHub incoming configuration.”

Exalate AI Assist

  • After some time, AI Assist will generate the script based on your input, current configurations, and Exalate’s scripting API. Changes will be highlighted: red lines represent deletions, while green lines show new additions. You can choose to accept or reject these suggestions.
  • Once satisfied, you can publish your changes. Once the changes have been saved, the sync will start operating automatically. You can also set up triggers to give you granular control over the sync based on specific conditions.

To get a visual representation of how the sync actually works, check out this video by one of our engineers.

Watch The YouTube Tutorial Here

Conclusion

Using Exalate to connect Jira work items (tickets) and GitHub issues makes it possible to explore endless synchronization opportunities, including custom fields and advanced mappings.

This also helps developers and QA teams (or other teams using Jira) to stay in perfect sync during collaborations in order to share updates and process feedback in real time.

Want to connect your GitHub repo with your Jira instance? Reach out to us to get started right away.

Top comments (0)