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 GitHub integration with Jira.

When Do You Need a Jira GitHub Integration?

Following the example scenario mentioned earlier, developers and customer service teams need a  Jira to 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 issues 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 Jira GitHub integration benefits and use cases, 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.

One Jira GitHub 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 the Jira integration with GitHub. 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

Key Takeaways

Moving data between work management systems can be a difficult task. But with a reliable and secure third-party GitHub and Jira integration 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 GitHub Jira integration 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.