two-way sync

Jira GitHub Integration

Use a reliable Jira GitHub integration to connect teams internally and across companies. Seamlessly sync issues between the two platforms and give each side full transparency and control over their shared data. 

Increase productivity and project efficiency by automating development workflows. Break down silos by bidirectionally integrating Jira and GitHub. 

sync issue types, labels, priority, status...

sync any custom fields, attachments... 

sync comments, worklogs, history...

Sync title, issue body, comment...

sync users, assignees... 

Sync milestones, close, created date...

Start for free

Seamless GitHub Jira Integration For Increased Productivity

Increase the efficiency and productivity of cross-team and cross-company collaborations. Use triggers and custom sync rules to automate integrations between Jira and GitHub. 

Unidirectional and bidirectional syncs from either Jira or GitHub

Seamless workflows for devs working with GitHub and support agents using Jira.

Smooth error handling and automatic restarts

Custom triggers for better sync control

Unlimited sync capacity for Jira issues, sprints, etc.

Tailor the integration to your unique business processes.


Sync Entities Between GitHub and Jira

Decide what gets synced and what doesn’t. Your sync, your rules. Configure fields precisely using one or two-way mappings. 

Check the full list of supported fields for Jira and for GitHub

Its hard to talk about supported fields, because with Exalate you can support a lot. And it is impossible to capture on a single page. We have done cases with very weird things - certainly not limited to the ones listed on the documentation.

Get the Most out of Your Jira GitHub Integration

Start all cross-team and cross-company connections from either GitHub or Jira, whichever option you prefer. Improve the productivity of collaborations by automating workflows.

Improve the speed and accuracy of syncs by using custom automated triggers. Set up your triggers with platform-native query language to establish granular control over every sync.


Streamline your workflow using the custom Bulk Exalate and Bulk Connect features. Save time by connecting multiple existing entities with similar trigger configurations.

Let your developers implement various sync possibilities using the Groovy-based scripting engine. Create scripts that manage synchronization on your end without affecting the destination.

Decentralized Integration

Decentralize your integration across a distributed system architecture. Maintain autonomy over every sync, especially for cross-company integrations. Keep your confidential information secure, with no need to share admin rights.

Scale Faster

Start working with default mappings for basic synchronization use cases. Scale operations in record time with the help of script-based custom connections.

Top-notch Security

Protect your sensitive data from unauthorized users. Let Exalate’s single-tenant architecture help you maintain autonomous control over your instance.

For us, the autonomous two-way synchronization plus the ability to map freely between the trackers stand out as the most prominent features in Exalate. The fact that you can write Groovy scripts makes it possible to do whatever you want between the environments and I think those are great features.

Gerwin Klein |

Start for free

Start Simple, Scale As You Go

Work with simple integration templates or completely customize a sync between Salesforce and Jira.

Sync Multiple Repositories in GitHub

Connect your GitHub with multiple entities in Jira or with another GitHub instance.

if (firstSync) {
  if (replica.project.key == ‘Jira-A’) {
        issue.repository   = ‘repoA’
  else if (replica.project.key == ‘Jira-B’) {
        issue.repository  =  ‘repoB’
        issue.repository  =  ‘repoC’
issue.summary      = replica.summary
issue.description  = replica.description
issue.comments     = commentHelper.mergeComments(issue, replica)
issue.labels       = replica.labels
issue.assignee     = nodeHelper.getUserByUsername(replica.assignee?.username)
issue.reporter     = nodeHelper.getUserByUsername(replica.reporter?.username)

Replicate Jira Issue Hierarchy on GitHub

Configure all features coming from Jira Epic to appear on your GitHub repo as task lists. Retain the same Epic-Child relationship when sending data over to GitHub.

replica.”child” = []if ( == “Epic”){
def js = new groovy.json.JsonSlurper()
def jql = “cf[10014]=${issue.key}”.toString()

def localIssue = new JiraClient(httpClient).http(“GET”, “/rest/api/latest/search”, [“jql”:[jql]], null, [:]) {
response ->
if (response.code >= 300 && response.code != 404)
throw new com.exalate.api.exception.IssueTrackerException(“Failed to perform the request GET”)
if (response.code == 404)

return null
def txt = response.body as String
txt = js.parseText(txt)
txt.issues.each {
it ->
replica.”child” +=

Control GitHub project attributes from Jira

Set up your custom sync to enable users to control issue attributes on GitHub while working on the Jira issue.

replica.customFields.”GitHub Project” = issue.customFields.”GitHub Project”

replica.customFields.”GitHub Status” = issue.customFields.”GitHub Status”

Sync Milestones Between GitHub and Jira

Get information (names, descriptions, and due dates) about GitHub issues and replicate it on the Jira side (on-premise).

issue.fixVersions = replica.fixVersions.collect { v -> nodeHelper.createVersion(issue,, v.description) }

We can now handle around 500 customer incidents per week, thanks to Exalate, which is a very good result regarding the number of products we’re dealing with. It synchronizes 45x faster than our previous solution.

Christof Cuyper |


Get Started In Minutes



Install the Exalate app on Jira and GitHub so every admin has complete control over their integration.




Use the instance URL to connect the instances you want to integrate. Choose the Basic no-code set-up or the Script mode.



Configure your sync rules to make sure the right data is shared. Automate your sync with triggers.



Now your instances are connected and will automatically exchange information instantly. Happy syncing!

Start Synchronizing Your Tools​

The team was very hands-on and very responsive. If we encountered an issue, they were able to resolve it quite fast.

Maarten Cautreels |

Always Ready to Help

Get the best assistance from technical support managers and engineers. Go at your own pace or lay back while we do most of the work for you.


Answers to the most frequently asked questions

You can sync assignees, comments, issue labels, milestones, statuses, and Elements Connect fields on GitHub. On Jira, you can sync summaries, descriptions, comments, attachments, assignees, reporters, labels, priority, due dates, work logs, custom fields (check box, cascading select, group picker), components, organizations, issue links, agile boards, versions, etc. 

Jira sends data as a Wiki, while GitHub uses Markdown. To handle the formatting differences, Exalate uses converters (called Transformers) to change the incoming or outgoing data to the corresponding format on either side of the sync. Transformers can convert HTML to Wiki, Markdown to Wiki, or Wiki to HTML.

Any team or company with a dev team and a customer support team can use Exalate to automate development and service workflows between GitHub and Jira Service Management, respectively. In general, organizations that want to share data between GitHub and Jira can use Exalate to automate this connection.

There is no way to replicate the Jira issue hierarchy in your GitHub repository by default. However, you can use Exalate’s custom mappings to establish a similar Epic-Child relationship within your GitHub issue.

Exalate’s no-code Basic Mode is free to install and use for simple synchronization tasks. To get the advanced Script Mode, you need to buy the Premium Plan after a 30-day trial. Contact the sales team to get a more detailed pricing quote.

We offer Standard and Premier Support to our customers depending on their needs and the running service-level agreement. As part of our Premier Support, we’ll assign a dedicated support agent to assist with your problem. You’ll also get up-to-date progress reports about critical production issues.

Exalate has a built-in error recovery mechanism that allows you to fix problems and resume synchronization from the moment it fails. You can use the troubleshooter to examine the error stack trace to determine if the error occurred at the entity, connection, or application levels.

Yes, Exalate has a single-tenant architecture, which isolates your infrastructure and minimizes the risk of information leakage. When you deploy a node on the Exalate Cloud, it runs inside a ‘Kubernetes pod’ configured to prevent information leaks. You can also add a firewall as extra protection.

Yes, you can use Exalate to connect multiple Jira and GitHub instances. This integration solution helps to streamline collaboration between developers, salespersons, marketers, and support agents. Exalate also supports other ITSM tools like ServiceNow, Zendesk, Salesforce, and Azure DevOps. Check out our integrations for more information. 

How useful was this content?

Click on a star to rate it!

Average rating 1.7 / 5. Vote count: 113

No votes so far! Be the first to rate this post.