Integration with Jira

This part of the wiki describes processes and functionalities of Epicflow system integration with JIRA.

All topics are set in step by step order to make process of integration intuitive and native.

JIRA account creation

As a first step JIRA account for integration with Epicflow must be created. User should posses read and write rights to the defined projects for import into Epicflow and additionally rights to operate with API.

A permission can be granted to a group, project role, or issue role that the user is a member of, or granted directly to a user. For additional information about different approaches please refer to official JIRA documentation.

The most common permissions are:

  • Administer the Cloud site: Users in the site-admins group have this permission.
  • Administer Jira: Granted by the Jira Administrators global permission. Users in the administrators group have this permission.
  • Administer a project in Jira: Granted by the Administer projects project permission for a project. This can be granted to a user, a group, a project role, and more.
  • Access a project in Jira: Granted by the Browse projects project permission for a project. This can be granted to a user, a group, a project role, and more.
  • Access Jira: Granted by the Jira Users global permission. Users in the [product]-users (for example, jira-software-users) group have this permission.

For additional information please refer to official documents regard Manage groups and Managing global permissions for details.

Account creation can be performed with the next set of rights:

Admin rights

  • Log in with the administrator account to the JIRA environment
  • Go to Site administration and Invite user by selecting corresponding button at the top right corner, located at Users page of USER MANAGEMENT block.
  • If it’s applicable for you, select the products from the Application access list that it should have access to. In this case, at least choose Jira Core.
  • Specifies next set of groups:
    • administrators
    • site-admins
    • jira-developers
    • jira-users
    • users
  •  Specify separate email for the user
  • Click Invite user and proceed with invitation email to accomplish user creation.
Note

Please note, that administrators and  site-admins groups are required for Web-hooks creation or change of such. Epicflow system use them to monitor and process changes from JIRA in real time mode. If such groups are not defined for the user auto-update from JIRA to Epicflow will be done once per hour and you would need to manage the scope of visible projects for the user through a creation of a separate group or usage of previously created.

Read-write rights

The difference to the previously described option will be only in the scope of set groups:

  • jira-developers
  • jira-users
  • users
  • <other groups> specially created to define read-write access to the projects prepared for the import into Epicflow system.
Note

Usage of this approach, as well as account rights limitation at JIRA level, is NOT RECOMMENDED, since

  • expectation and observation results could be confusing for inexperienced user.
  • real time update won’t be working. Only hourly update from JIRA to Epicflow will be possible.
  • it will bring additional complexity to configuration of Epicflow system at Import from the prospective of input scope verification

Read rights only

For this approach you would need to define only a set of

  • <other group(s)> specially created to define read access to the projects prepared for the import into Epicflow system.

In case of necessity to use Epicflow system in configuration when it doesn’t write anything back to JIRA and has only one way synchronization from JIRA to Epicflow, please communicate with Epicflow team to proceed with it. A special mode can be activated for such needs.

Note

Usage of this approach, as well as account rights limitation at JIRA level, is NOT RECOMMENDED, since

  • expectation and observation results could be confusing for inexperienced user.
  • real time update won’t be working. Only hourly update from JIRA to Epicflow will be possible.
  • it will bring additional complexity to configuration of Epicflow system at Import from the prospective of input scope verification

 

API Tokens

API tokens is the must for JIRA authentication usage when configure connection between Epicflow and JIRA system.

For two steps verification  REST API token must be used.

Create an API token

To create an API token

  • Log in to your JIRA environment https://<Company_Name>.atlassian.net
  • Go to your Profile by selecting “Profile” option in context menu appearing on left mouse click over your Account Icon at the left bottom corner.
  • Click over “Atlassian account” link to be redirected on “Manage your account” page and select “Security” tab.

Screen #1 – JIRA-API token creation

  • In API token chapter select “Create and manage API tokens” and as soon as you are at “Manage your account” -> API tokens confirm token creation by left click over “Create API token” button.

Screen #2 – JIRA-API token creation

Screen #3 – JIRA-API token creation

  • After label identification your system will grant you token which you would need to use for the Import.
Note

  • For security reasons it isn’t possible to view the token after closing the creation dialog; if necessary, create a new token.
  • You should store the token securely, just as for any password.

JIRA scope Filter

As a step of preparation you would need to create a filter (query) in JIRA to define the scope of projects, epics and tasks defined for the Import itself.

  • Log in to the JIRA environment with previously created account.
  • Choose the JIRA icon “Issues and filters”
  • Select “Search issues”
    • If basic search is shown instead of advanced search, click Advanced (next to the icon).
  • Enter your JQL query. As you type, Jira will offer a list of “auto-complete” suggestions based on the context of your query.
    • Note, auto-complete suggestions only include the first 15 matches, displayed alphabetically, so you may need to enter more text if you can’t find a match.
  • Press Enter or click to run your query. Your search results will display in the issue navigator.

To limit the scope and decrease the load on your system we would recommend to use query similar to the next one:

category = Epicflow AND NOT updatedDate < “YYYY/MM/DD”

where “YYYY/MM/DD” defines period not higher than one year.

Please note that category should be defined and set separately.

  • Save you filter by pressing “Save As” button located above the inserted JQL query.
    • Note, if you have used any different account than that which is going to be used for the Import you would need to share your filter with it. For that
      • go to the Filters list and locate your previously stored JQL query filter.
      • select “Edit filter details” from the context menu at the right side in-front of the current filter.
      •  share your filter with required user, group or project and save.

For additional information please refer to official JIRA documentation regard JQL(JIRA Query Language).

First data Import

  • Before start, please, verify with your Epicflow System Administrator that your account has required permissions to access and configure Import page.
  • Login into Epicflow system and navigate to the menu item “Import”, which is located at the bottom part of the left menu column. You’ll be automatically redirected to the Connection configuration page.

Connection

Screen #4 – JIRA – Connection

  • At first Step you have to specify your Jira Instance, Username, and JIRA token and press “Next” button.
  • At a next step, you have to configure and define Scope and Projects.

 Scope and Projects

Screen #5 – JIRA – Scope and Projects

Bellow you’ll find description for all settings of this configuration part.

  • Jira Scope – select previously created JIRA Scope Filter.
    • Note, that selection of the “Whole Jira Scope” option will force the system to work with whole set of available data, which is NOT RECOMMENDED. In such way you create unnecessary load on Epicflow and JIRA systems. Even if you would like to import everything from JIRA it will be better to limit amount of data to the last year via separate filter creation. 
  • Project Field Mapping – defines what you would like to have as a project in Epicflow: 
    • Project – Each separately created project in JIRA will be imported as a Project to the Epicflow
    • Epic – Each Epic will be presented as a separate project in the Epicflow
    • Query – Each selected query will be defined as a separate project in the Epicflow
  • If you put a tick on Automatic Import, the system will automatically import any newly appeared projects from the defined scope if related projects have no shared tasks between projects. Be aware, that in case you have unchecked any Project in the Projects list (despite the automatic import button is on), the project won’t be imported to the system neither now, not later automatically, unless it’s selected again.
  • On pressing “Expand” text, to the right side from the “Field Mapping” label, Epicflow will expand additional block with the advanced configuration settings. All settings are grouped into the separate blocks:
    • “Common fields” – defines set of parameters used for mapping of appropriate fields in JIRA to particular fields in Epicflow system. Usually you don’t need to change them. 
      • ID – defines which parameter (Key or ID) will be used as a primary ID in Epicflow
      • Name – defines name of the issue which can be either ID or Key or Summary or Description etc.
      • Notes – usually this field contains Description but again you can redefine it accordingly.
      • Task Predecessors – defines type of connection used to define link between issue and its predecessor. By default it’s “blocks” but a multiple one can be selected in case of need.
      • Tags – only one possible option – “Labels”. Used for budget tasks identification.
    • “Task Fields” – next block of parameters defines mapping for values which should be used as Original and Remaining work 
      • Original Work – Original Estimate is a default setting which shouldn’t be changed
      • Remaining Work– Remaining Estimate is a default setting which shouldn’t be changed
    • “Parent field” – here you can defines parameters which must be accepted as a Start Date of the Project or End Date.
    • “Milestone fields” – additionally to the previous block you can also set milestones’ parameter.
    • “Compound task fields” – if you are using multiple assignment for one issue with identification of different roles required to finish the task you may use this part to configure such relation and work separation between two defined assignee.
      • Compound issue type – defines type of issue (Bug, Sub-task, Task, etc.) which need to be processed as compound task (separated accordingly into two related tasks)
      • Second assignment field – usually as a second assignee QA engineer is defined.
      • Work ratio – defines ratio of work between first and second assignee. In result initial estimation will be divided accordingly to the defined value (30, 40, 50, 60 or 80)
      • First assignment done status – defines status of the issue when first assignee has finished his part and second assignee should be involved.
      • Second assignment done status – defines issue status when all work is done and issue is accomplished.
      • First Assignment prefix – special prefix, automatically added to the task name, used to identify compound task of the first assignee in Epicflow system.
      • Second Assignment prefix – special prefix, automatically added to the task name, used to identify compound task of the second assignee in Epicflow system.
      • Work – this parameter is used to define field which is used for estimation of Compound tasks. It could be or Story points or Task progress or compound issue estimation parameters.
      • Time unit – unit of measure: hours, minutes or seconds
      • Second assignment group field – if any field is used for the second assignment group identification you can configure it here.
      • Default group for second assignment – Group name from JIRA which must be used in Epicflow for the second assignment
    •  “Budget fields” – part for budget tasks configuration. Please refer to Budget section for additional information regard topic
      • Enable budget processing – deselecting this field will switch off budget processing for the whole list of projects but you can switch it on later in Project Card for a specific project.
      • Use ‘relates to’ as link to budget – besides specially defined rules, how tasks can be connected to the specific budget task, you can also specify such connection directly by the setting up link of “relates to” type. Can be configured for each project separately in the Project Card.
      • Identifier of budget tasks – key which should be used for budget tasks identification. Also can be configured for each project separately in the Project Card.
      • Budget mark text – marker for the task to make it more convenient for end user to identify such. Can be configured for each project separately in the Project Card.
    • Backlog fields” – this part defines work with backlog and additional configuration of the sprints. All settings can be configured separately for each project at Project Card.
      • Import backlog – defines if we should import tasks from the backlog
      • Set default start/end dates for new sprints – will enable automatic calculation of start\end dates for the upcoming not started sprints in accordance to bellow settings.
      • Interval between sprints, working days – parameter is applied for the future automatically calculated sprints.
      • Default sprint duration – parameter is applied for the future automatically calculated sprints.
      • Max parallel sprints – amount of sprints which should be started in parallel.
    • Version as Milestone fields” – allows you to use additional milestones for oyu project such as :
      • Use release date as Milestone
      • Use start date as Milestone
    • Jira Status fields” – this part helps to define additional business rules what to do with remaining hours for tasks which has been transferred to “Done” status.
      • Set remaining to 0 for `Done` tasks
      • Add remaining to spent for `Done` tasks

 

  • As Scope and Field Mapping is configured you can proceed with refinement of the Projects list. By selecting and deselecting projects you can define those which will be imported into the system. Nevertheless this list, as all other settings, can be edited later.
Note

If in the right bottom frame “Projects” you’ll deselect any Project it wont be imported in to the system despite of any other settings of automatic newly created projects import etc.

Groups and Users

Screen #6 – JIRA – Groups and Users

  • Third step will require your attention to configure and define Groups and Users for the import.
    • Import Users – Epicflow allows you to choose all users from the Jira system or users from the selected scope of Projects.
    • Group assignee – defines source of group assignee
    • Group Field Mapping and Prefix –  It will allow you to specify the Component and the Prefix which should be used to refine the groups list.

Closer to the top of the screen, you’ll see the list of Groups with the specified number of Users in the loop and a separate field displaying the names of the users and groups they belong to.

  • Review this section to determine the right relation of users to groups and select those which are needed to be imported into the Ecpiflow. Be aware that all deselected users will appear in the unmapped area and you still will be able to draw them to the process later on.

You can either remove a group relation or add a new one to a specific user by simple left mouse click. 

Finalize Import

Screen #7 – JIRA – Finalize Import

  • Now, on condition that everything’s configured correctly, you can finalize the import by left mouse click over the “Import” button. Be aware that even that this action cannot be undone Import settings can be reconfigured later as needed. 
Note

If your system uses the principle of a web-hook, then the changes made in the Jira environment will be applied immediately at both directions. If not, data synchronization between environments will be performed automatically once per hour.

Having imported your Jira data into the Epicflow system will redirect you to the Pipeline page with all projects imported into the system.

Second Import Configuration

If previously your system was already configured to connect with a different JIRA instances you’ll see a list of such connections as soon as you visit Import page. 

Screen #8 – JIRA-import Connections list

  • To create a new connection to the external JIRA system, press “New connection” button. As result you’ll be automatically redirected to the Connection configuration page . All you would need to do is to cover all steps as during First Import Configuration described above.
Note

Epicflow system doesn’t allow multiple connection to one instance.Only one connection er instance.

Edit connection

To edit any previously created connection you would need to

  • navigate to the Import page.
  • by calling a context menu as on screenshot select option “Edit”. As result you’ll be redirected to the Connection Configuration page.
  • going step by step you will be able to edit configuration but for final apply of such changes all steps must be covered and “Import” button should be clicked as designed.

Screen #8 – JIRA-import Edit Connection

The system will allow you to specify new rules and add projects you’d like to import OR remove an established connection from the list. At the end you’ll be asked to confirm your actions and in case you approve, all changes will be implemented.

Delete connection

To delete any previously created connection you would need to

  • navigate to the Import page.
  • by calling a context menu as on screenshot select option “Delete”.You’ll be asked for confirmation of your action.
  • As soon as you confirm your action Connection link will be removed as well as all projects related to that with the corresponding resource pool and mapping links. Nevertheless internal Epicflow users and groups will remain.Repeat Conneciton configuration will be treated by system as a new one and no historical or configuration data will be restored.

Data optimization

To optimize Epicflow output and bring it closer to JIRA you’ll have to complete the following steps:

  • As a first step you’ll have to invest some effort in verifying your data in Jira.

It includes:

  • Tasks and their dependency network verification 
  • A rough time and cost estimate of each task
  • Resource groups assigned to complete each task or Components identification for each task
  • Projects, epics and versions deadlines where applicable
  • Create a separate account for JIRA integration.
  • Grant access for the created account to a required scope of projects.
  • (Optional) If you would like to have Epicflow updated in real time mode also add account to the groups “administrators” and “site-admins”. Otherwise JIRA to Epicflow update will be done on hour basis.
Note

Appropriate set of rights is required for the web-hook configuration by Epicflow system. As soon as you finish import configuration you can remove account from the groups “administrators” and “site-admins” but be aware that in case of scope change and Epicflow import reconfiguration you will need to add them back. Otherwise on Import reconfiguration no changes to web-hooks will be done.

Updated on February 4, 2019

Was this article helpful?

Related Articles

Leave a Comment