Functionality: · Link JIRA issues to RequirementOne requirements · Connect your RequirementOne project to your JIRA project in one easy step · Automatic bi-directional synchronization between then two systems · Option for doing a full synchronization
Description: RequirementOne is a cloud based web platform for requirement management, user needs/specifications gathering, project management, time registration, issue tracking and tender management. You can think of it like an equivalent of SalesForce for projects.
Many of the platform users prefer using RequirementOne for requirement management and Jira for issue tracking. Bugs and issues usually arise because the original requirement has not been delivered successfully and this means that issues and requirements need to be connected. Both Jira and RequirementOne support that via external links, but a mechanism is needed to automatically synchronize the links between the two systems and this is exactly where the R1 to Jira integration application comes in place.
The application is built using the RequirementOne’s support for external applications, which allows developers to extend the platform with new functionalities and seamlessly integrate them RequirementOne user interface.
The integration between RequirementOne and Jira is done at project level. Requirements from a RequirementOne project are only synchronized to issues from a Jira project. Synchronizations are either user triggered or background continuous. The user triggered ones are usually performed only in the initial stage after setting up the integration between two projects and they involve parsing all the requirements and issues, identifying the links between them and making sure they are available both ways.
The continuous background synchronization has a different implementation for RequirementOne and Jira. On the RequimentOne side, webhooks are being used to get notifications for when links are added or deleted from requirements. If the integration application detects that the link points to a Jira issue, then it will create or delete the link from the referenced issue that points back to the referencing requirement. Creating or deleting issues in Jira is done using the Jira REST API. The continuous webhooks based synchronization is very fast and efficient. Usually it will take just a few seconds between the moment when a link is created in RequirementOne and when it gets replicated in Jira.
On the Jira side, the continuous background replication is a scheduled based full synchronization. It involves reading all the web links from all the issues inside a project, identifying those pointing to RequirementOne requirements, then identify all the ones that are new or deleted and then replicate them in RequirementOne. Retrieving the Jira issues and links is done via the Jira REST API. Adding or deleting links in RequirementOne is done using the RequirementOne API. Identifying the issues that are new or deleted is done very efficiently using a cache inside the integration application. Because of its scheduled nature, it will usually take between 15 and 30 minutes for links created in Jira to be synchronized in RequirementOne. The time will increase depending on the number of issues inside the Jira project.
We like webhooks much more than we like scheduled based polling. The reason why we haven’t used the Jira webhooks during the continuous synchronization is because in their current implementation they don’t get triggered in relation to remote link actions. We will be keeping an eye on this feature and as soon as it becomes available, we will update our implementation.
Besides replicating links from one side to the other, the synchronization process also makes sure that the links get correct titles. The title of the link from RequirementOne to Jira will include the name of the referenced issue and the title of the link from Jira to RequirementOne will include the name of the referenced requirement.
The RequirementOne to Jira integration application doesn’t need a plugin to be deployed into Jira. It solely relies on the Jira API. This means it is available to both Jira OnDemand and for user deployed versions.