Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to set up an Azure DevOps Jira integration: A step-by-step guide to an advanced two-way sync

Do you want to keep your deployment or testing cycles in Azure DevOps aligned with your dev team workflows in Jira?

 

With a Jira Azure DevOps integration, teams can stay aligned on important information and use these tools to their fullest capacity. 

 

To bring out the best in both these tools, I have come across companies implementing some pretty advanced integrations. 

 

But at the basic level, they all follow some simple steps to first connect Microsoft Azure DevOps with Atlassian Jira. After that, they can configure the sync any way they want. 

 

Let’s look into the steps to integrate Jira (Cloud or on-premise) with Azure DevOps using Exalate. You can also install Exalate via docker for both of these apps. 



There are a few apps on the Atlassian marketplace that help you integrate Azure DevOps and Jira. But, they lack the advanced integration capabilities that low-code tools like Exalate have. To bring forth this point, I want to share some advanced Jira Azure DevOps integration use cases we’ve helped customers with. 

 

4 easy steps to set up your Jira Azure DevOps integration

Step 1: Install Exalate on Jira and Azure DevOps

You can install the Exalate app via the marketplace or through its integrations page. You can request for a free trial and our team will assist you with the initial setup.

The Atlassian marketplace apps can be found here: Jira and Azure DevOps

 

You can always watch some quick installation videos here

Step 2: Connect Jira to Azure DevOps

You can connect these platforms where one side initiates the connection request and the other accepts the request. 

You need some basic information like the destination instance details, the projects you want to sync between Jira and Azure DevOps, and an invitation code (that’s generated automatically for you). 

 

Exalate has two modes: the Basic mode and the Script mode. The Basic mode is for simple syncs, with no configuration support. 

 

Exalate’s Script mode is where all the advanced configuration happens. 

 

script-mode-connection-established.png

So, set up a connection in this mode by following this detailed guide

 

Step 3: Set up your sync rules

Sync rules allow you to decide what you want to send and receive. 

 

You are the master of your sync and can set these rules up any way you want. These rules are low-code Groovy scripts that help you configure the incoming and outgoing data according to your needs. 

 

The outgoing sync decides what information needs to pass over to the remote side. The incoming sync decides how you display the information coming from the remote side. These sync rules are present on both sides, so you can control the sync independently. 

 

You can configure these sync scripts to exchange a variety of default and custom fields, map statuses or issue types, sync third-party fields, add advanced logic, and much more. 

 

sync rules.png

For instance, to send a custom field from Jira to Azure DevOps, simply add it to the outgoing Jira sync as follows: 

replica.customFields.”CF name” = issue.customFields.”CF name”

On the Azure DevOps side, you get to decide the field that’ll display the Jira custom value. 

Step 4: Automate your sync with triggers

Of course, you want to filter out issues and work items that are transferred between Jira and Azure DevOps. You can set these conditions as triggers, based on which, your sync will be automated. 

 

Use Jira Query Language (JQL) on Jira and Work Item Query Language (WIQL) on Azure DevOps to set these conditions and automate your sync process. 

 

 

triggers.png

 

Some common Jira triggers in JQL: 


  • project = DEMO AND labels = sync
  • project = DEMO AND reporter = 623aa86b7910a200718add3c
  • project = DEMO AND issuetype IN (Story, Task) AND created > "2023-01-05"
  • project IN (DEMO, Discovery, EDN) AND issuetype = Bug AND priority = Highest
  • project = "Exalate Demo" AND status = "In Progress"


Some common Azure DevOps triggers in WIQL:

 

 

  • by work item type: [Work Item Type] = 'Task'
  • by multiple WorkItem types:  [Work Item Type] in ('Feature', 'Epic', 'User Story', 'Task')
  • by status: State = 'To do'
  • by multiple statuses: State in ('To do', 'Doing')


That’s it! You’ll sync your data automatically based on the rules and triggers you have set.  

 

As promised, here are some unique ways some of our customers have implemented their Jira Azure DevOps synchronization. 

Advanced Jira Azure DevOps integration use cases

The following use cases really make implementing such an integration worth the effort. 

  • Sync and maintain issue links, relations, and subtask mappings between Jira Cloud and Azure DevOps
  • Maintain parent-child hierarchy when integrating Jira on-premise with Azure DevOps
  • Sync area and iteration paths in Azure DevOps as custom fields in Jira 
  • Sync epics between Jira and Azure DevOps
  • Map and sync statuses between Jira and Azure DevOps
  • Map and sync Jira issue types with Azure DevOps work items
  • Maintain rich-text formatting 
  • Advanced comment sync between Jira and Azure DevOps 
  • Exchange third-party app data
  • Sync any issue and work item field available via REST APIs

 

Indeed, an integration can open up a new world of possibilities! 


If you want to learn more about what you can sync between Jira and Azure DevOps, don’t hesitate to get in touch with our team to discuss your use case.

 

6 comments

Comment

Log in or Sign up to comment
francis
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
February 21, 2024

Watch the video of an Azure DevOps Jira integration here --> https://bit.ly/49KGHCf

David Berclaz
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 21, 2024

Hi @francis

Thank you for sharing! I recall facing similar synchronization challenges at Nestlé, where we decided to avoid duplicating information across several tools because synchronization, especially bi-directional, is always a challenge.

It's encouraging to see Exalate addressing these issues. However, I believe it's always preferable to avoid duplication in the first place.

For organization using:

  • Jira for development backlog/ticketing, and
  • Azure DevOps for code repositories and deployment pipelines (which appears to be the standard use case, although I may be biased by our customer base),

we offer a free Azure DevOps Extension that connects to our Golive App and covers these use cases:

  • Display in Jira issues the environment and timing of deployments (based on Azure DevOps commit messages).
  • Create missing Jira versions.
  • Synchronize versions across multiple Jira projects, if necessary.
  • Add Jira issues to versions (updating the fixVersion field).
  • Create missing environments in Golive, if necessary.

✅ Developers no longer need to update Jira tickets manually.
✅ The QA Team can easily track where the Jira tickets are deployed.
✅ Release Managers always have access to updated release notes.

An added bonus: this solution also works for Jira Data Center, providing the equivalent (and more) of the Deployments feature from Jira Cloud right in your Jira Data Center. 💪

Cheers,

David

Like # people like this
francis
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
February 21, 2024

Hi @David Berclaz ,

We do see the value of this type of integration which is more like a viewport to the remote system in the context of your work environment - which is a totally valid approach.

Each approach has its own applicability. 

We do see a lot of ADO - JC where teams of different organisations need to collaborate.  With the synchronisation capability, everyone can cooperate without the need to swivle seats. 

Like David Berclaz likes this
David Berclaz
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 21, 2024

Yes, I definitely see how such an approach can improve collaboration and save time. How do you manage the mapping of users between the different systems? Because that was one of the main issues we faced when we synchronized HP ALM and Jira using ConnectALL.

Move Work Forward
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 21, 2024

Hi,

Nice article.

If you need to bring development information from Azure DevOps to Jira, like pull requests, builds, branches, deployments - check out Azure DevOps for Jira.

Cheers,
Leo

John Funk
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 24, 2024

This is helpful stuff! I see more and more clients wanting to do this synchronization. 

TAGS
AUG Leaders

Atlassian Community Events