How to Set up a Bidirectional Jira GitHub Integration

Written by exalate | Published 2023/09/19
Tech Story Tags: jira | jira-to-github | jira-integration | two-way-sync-integrations | third-party-app-integrations | bidirectional-integration | epic-child-relationship | good-company | hackernoon-es | hackernoon-hi | hackernoon-zh | hackernoon-vi | hackernoon-fr | hackernoon-pt | hackernoon-ja

TLDRTo bridge the gap between development teams using GitHub and service teams using Jira, a bidirectional integration is needed. This guide explains how to set up this integration using Exalate, a third-party tool. It outlines when such an integration is needed and factors to consider when choosing an integration tool. The steps for integrating Jira and GitHub using Exalate are provided, including installing Exalate on both platforms, connecting the instances, configuring the connection, and creating automated synchronization triggers. Common integration scenarios are also discussed, such as collaborating with open-source communities, streamlining customer service and engineering collaboration, and improving product development and quality assurance processes.via the TL;DR App

Here is a common scenario in most organizations: The development team is using the GitHub repository, while the service team is using Jira Service Management. However, sharing information proves challenging since both teams are on platforms that are not cross-compatible.

To bridge the gap, the project manager introduces a third-party Jira GitHub integration to aid both teams in sharing data automatically.

In this guide, I’ll show you how to set up a bidirectional integration between Jira and GitHub.

When Do You Need a Jira GitHub Integration?

Following the example scenario mentioned earlier, developers and customer service teams need a Jira GitHub integration to share data and centralize efforts.

Suppose a customer lodges a complaint with the service team. In that case, the reporting agent will create a Jira issue with a description, which will also be visible to developers on the GitHub issue.

Now, when the developer makes changes to the issue — or it is resolved — the changes will also reflect on the Jira issue. No need for manual updates; no need to leave their respective work management platforms.

Another case for using Jira GitHub integration is to replicate the Epic-child relationship using GitHub Task lists. This helps maintain a semblance of hierarchy on GitHub when sharing information from multi-tiered Epics.

There are other use cases for GitHub Jira integrations, but you have to choose the right iPaaS solution to explore these possibilities.

How to Choose the Right Integration Tool

Here are some factors to consider before choosing any integration tool for Jira and GitHub.

  • Flexibility and Scalability

    The integration solution should be able to adapt to different synchronization scenarios through the use of customizable mappings or scripting engines. This will help teams adjust their workloads without overloading the network.

  • Security

    You need an integration tool that guarantees security because you are giving it access to your codebase and repository. So, always look out for role-based access controls, as well as authentication and encryption protocols.

  • Decentralization

    As part of security, you need to isolate your system architecture, especially for cross-company collaborations. Choosing an integration tool with a single-tenant architecture gives you autonomous control over your company’s synchronization.

  • Versatility

    Integration solutions for Jira and GitHub should be able to handle different integration scenarios. Whether it is a simple mapping or a complex, code-based integration, the tool should be able to handle it gracefully.

  • Reliability

    The integration should have the capacity to handle increasing loads while maintaining maximum uptime. If a connection fails, the integration should be able to resume automatically when the connection is restored.

  • Support and error handling

    When an error occurs, the solution should provide debugging capabilities. For advanced technical issues, the support team should be able to provide in-depth troubleshooting and assistance.

One integration solution that checks all these boxes is Exalate — a bidirectional integration solution that allows two-way syncs between Jira and GitHub.

How to Integrate Jira and GitHub Using Exalate

In order to start sharing data and controlling your side of the connection how you want, you need to install Exalate on both Jira (on-premise or cloud) and GitHub.

Step 1 - Install Exalate on Jira

Go to the Atlassian marketplace and search for “Exalate Jira Issue Sync & More”.


Click the “Try it free” button, then select “Cloud” from the options that appear. Note that you can also install Exalate on a Jira Server or Data Center, as well as Docker.

Choose a site or enter the site address. Then, click “Start Free Trial”. You’ll be redirected to your Jira dashboard to confirm the free trial.

Voila! You’ve now installed Exalate on Jira Cloud.

Step 2 - Install Exalate on GitHub

Search for “Exalate Two-Way Issue Sync” in the GitHub marketplace.


*Click on “Set up plan,” and it will scroll down to the installation panel. Click “Install for free”. Then click “Complete the order and begin the installation”.

On the authorization screen, click “Install” and choose the organization you want to install Exalate on. You will be redirected to the Exalate admin console. Save this link somewhere safe.

\Choose whether to give Exalate access to all repositories or a select few. Worry not, you can always change access later.

\Click “Authorize Exalate” to give Exalate access to your repos.

Enter your contact details in the Registration screen. Click “Agree and submit” to complete registration. Exalate will now forward a verification email to your inbox.

Go to your inbox and open this verification link. Click “Verify Exalate Instance” on the screen that appears. After verification, you’ll be redirected to the Exalate console.

The next screen that appears will notify you that the validation was successful. Click “Continue” to proceed.

Enter your personal token generated from GitHub. Follow the instructions on the screen to generate a personal access token in the “Token” field.

Click on “Log in” to complete the installation process. And boom! You’re all set to start making connections.

Step 3 - Connect Your Instances

The beauty of Exalate is that it allows you to start the connection from either Jira or GitHub. The process is similar and the interface is identical on both platforms.

Click on “Initiate Connection”. Enter the destination instance URL in the designated field. If you don’t have a URL, click the “I don’t have a URL” toggle switch.

Exalate supports two configuration modes for a Jira GitHub integration:

Basic Mode (for simple pre-built configurations) and Script Mode (for advanced scripting configurations).

Let’s start with the Basic Mode.

Select the project where you want the incoming issues to go and click “Next”.

Confirm that you have admin access and click “Initiate”.

You will be automatically redirected to the remote instance. Choose a repository and click

“Confirm”. Enter the issue key and click “Exalate” to proceed.

Hurray! You’ve set up your first Basic connection.

Now let’s get to the Script Mode. Initiate connection and verify the destination instance URL as mentioned earlier. But instead of choosing Basic Mode, select Script Mode.

Enter the connection name and description before clicking “Next”. Then select the project and click “Initiate”.

Copy the invitation code to your clipboard. Go to the other side and click “Accept invitation”.

Enter the invitation code from your clipboard before clicking “Next”. Then, select a repository and confirm.

Congratulations! You’ve successfully set up a Script Mode connection.

Step 4 - Configure Your Connection

Back on the Exalate dashboard, go to the connection, and click the “Edit connection” icon.

On the “Rules” tab, you will see a scripting engine for “Outgoing sync” and “Inconming sync”. This is where the magic happens. You can customize your connections using the Groovy language.

Step 5 - Create Automated Synchronization Triggers

Next up is the “Triggers” tab. Here, you can see all active triggers for automating syncs.


To set up a trigger, click the “+ Create trigger” button.

Next, select the type of entity and enter the query. For setting up GitHub triggers, use the GitHub Advanced search syntax and specify the repo. Jira triggers use the Jira Query Language (JQL).

Step 6 - Start syncing

With the triggers set, you can now start writing rules for connecting your Jira and GitHub instances. You can also track errors using the stack trace in the console.

Play around with simple sync rules to figure out how the connection works. Once you understand the basics, you can add further rules or edit the ones you have.

Common Jira GitHub Integration Scenarios

  • Public Git Repository Project: Developers with public code can use GitHub for project management and issue tracking. Integrate Jira and GitHub to pull items into Jira, allowing you to monitor public discussions privately. Assign issues from the public codebase, decide on actions, and sync chosen fields back to GitHub. This ensures collaboration with the open-source community while keeping internal discussions confidential.

  • Customer Service & Engineering Collaboration: Customer service records issues in Jira, some requiring engineering attention. With Jira-GitHub integration, relevant issues get automatically transferred to GitHub. Once resolved, solutions are updated in Jira, enabling customer service to communicate fixes to customers.

  • Product Development & Quality Assurance: The quality team ensures products meet global legal standards. They track and address legal issues while continuously monitoring product quality. With the integration, legal and quality-related issues are auto-sent to the development team in GitHub. As developers resolve issues, the quality team is automatically updated through Jira.

Key Takeaways

Moving data between work management systems can be a difficult task. But with a reliable and secure third-party solution like Exalate, teams can share information seamlessly.

Configuring your connection with Exalate is a straightforward process. You can use the no-code Basic Mode or go for code-based Script Mode. And if you want to control tickets in bulk, you can Bulk Exalate with custom triggers.

If you have a specific use case and want to know how it can be implemented with Exalate, book a free session with an integration engineer and see it in action!

This article was written by Johnmary Ugochukwu, a technical copywriter at Exalate.


Written by exalate | Set up flexible 2-way syncs between platforms like Jira, ServiceNow, Zendesk, GitHub, Azure DevOps, Salesforce, and more
Published by HackerNoon on 2023/09/19