flexible 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...

4.3/5
Highest Rated Integration App on the Atlassian Marketplace




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.

Github
Issues
+14 fields are supported, including:
- Custom fields
- User (reporter)
- Description
- Comment
- Labels
- Status
- Milestones
- Assignees
- Repository full name
- Pull Requests

Jira
Jira Software (Cloud and Data Center)
Jira Service Management
Work Items (Issues)
(Bugs, Tasks, Stories…)
+40 fields are supported, including:
- Custom fields
- Summary
- Status
- Description
- Key
- Comment
- Attachment
- Priority
- Third-party plugin fields (e.g Insights)
Sprints
All fields are supported, incuding:
- Name
- State
- Start date
- End date
- Complete goal
- Origin board ID
- Goal

It's slightly complicated to create the mapping between these Jira trackers and GitHub repositories. And that made us look for a synchronization solution like Exalate.
Gerwin Klein | Chief Scientist
Get the Most Out of Your Integration
Sync in Real-Time
Two-way, real-time sync between platforms. Updates flow automatically. No manual exports, no delays.

Connect Any Number of Instances
Connect multiple projects, instances, and platforms. Use different rules for each connection.

Know What Failed and Why
Get AI-powered recommendations for resolving the issue, including possible fixes and next steps.

AI Assisted SetUp
Describe your integration goal. Aida reviews your sync rules and connector type, then suggests script changes

Only Sync What Matches
Set various conditions for automatic synchronization.


Sync Visibility, Right Where You Work
Check the real-time status of your active syncs, spot failures, and trigger a manual push. All from a browser extension, without opening the Exalate console.


Being programmers, we first looked into writing our own synchronization solution… But it quickly became clear that this would have become a time consuming and probably an expensive side project. When looking at the solutions on the market, Exalate was the one with the right features and the most comprehensive solution.
Gerwin Klein | Chief Scientist
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.
In practice:

...Or simply write a few lines of code
if (firstSync) {
if (replica.project.key == ‘Jira-A’) {
issue.repository = ‘repoA’
}
else if (replica.project.key == ‘Jira-B’) {
issue.repository = ‘repoB’
}
else{
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.
In practice:

...Or simply write a few lines of code
replica.”child” = []if (issue.issueType.name == “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” += it.id
}}}

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.
In practice:

...Or simply write a few lines of code
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).
In practice:

...Or simply write a few lines of code
issue.fixVersions = replica.fixVersions.collect { v -> nodeHelper.createVersion(issue, v.name, v.description) }

How it Works
Connect
Easily connect multiple projects, instances, and platforms. With local, or external partners.
Customize
Set your sync rules to make sure the right data is shared.
Prompt Exalate’s AI to generate rules, or fine-tune with Groovy-based custom mappings and logic for complete control.
Automate
Set triggers to automate your sync based on specific conditions.
Synchronize
Now your connected instances will exchange information automatically. Happy syncing!




See Exalate in Action
Let us show you how Exalate can fit your unique business needs.
trusted by clients worldwide




FAQ
Answers to the most frequent questions.
Didn't find what you were looking for? Ask Aida
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 3.8 / 5. Vote count: 344
No votes so far! Be the first to rate this post.
We are sorry that this post was not useful for you!
Let us improve this post!
Tell us how we can improve this post?