Mapping Jira Resolution with Azure DevOps Agile and CMMI process template

Prerequisites

Create a profile that maps Resolution to ResolvedReason and Reason for Bugs

  1. For Type Mapping

    1. Map Bug to Bug

    2. “Do nothing” - anything else

  2. For Fields Mapping

    1. Map Resolution to ResolvedReason as Primary mapping

    2. Map Resolution to Reason

    3. Make sure to set “anything else” - Empty value in both mappings

Create a profile that maps Resolution to Reason for Tasks

  1. For Type Mapping

    1. Map Task to Task

    2. “Do nothing” - anything else

  2. For Fields Mapping

    1. Map Resolution to Reason

    2. Make sure to set “anything else” - Empty value

  File Modified

File Agile-Bug-Profile.json

May 10, 2022 by spg bot

File Agile-Task-Profile.json

May 10, 2022 by spg bot

File CMMI-Bug-API-Profile.json

May 10, 2022 by spg bot

File CMMI-Task-API-Profile.json

May 10, 2022 by spg bot

Why

Why map “anything else” to “Empty value”?

This is needed to handle a use case of re-opening a Jira issue.

When you move a Jira issue from Done to InProgress, the resolution is removed.

So there is no value to map.

In Azure DevOps, Reason will be changed automatically, according to workflow, for example - “Not fixed” and ResolvedReason will be set to empty. Synchronizer needs to set empty values to allow Azure DevOps to set appropriate defaults.

Why map both Reason and ResolvedReason?

Many Azure DevOps processes, including CMMI and Agile restrict the values that can be set to Reason and ResolvedReason (and many other fields) depending on several factors like status.

Furthermore, allowed values for ResolvedReason field are dependant on the Reason field, so they need to be changed in tandem.

To learn more see Default rule reference - Azure DevOps