News Stay informed about the latest enterprise technology news and product updates.

Converting subtasks in JIRA with a Watir script

Whenever I do large data uploads into JIRA, I often find that I have a number of tickets that require a parent/child relationship. That is, some of my tickets get imported as tasks, and I want them to be subtasks. To solve this problem, I wrote a simple Watir script that will subtask out all my tickets for me after upload. There’s nothing that special about it, but it can be quite a time saver.

The only assumption I have in my script is that you’ll have a hyphen in your subtasks and no hyphens in your parent tasks. When I import data like this, I often following the pattern “<parent summary> – <child summary>” for my Summary fields when I import. For example, a parent ticket might be “Write a book on testing” and a couple of subtasks for that ticket might be “Write a book on testing – Chapter 1” and “Write a book on testing – Chapter 2.”

The first step is to setup a query of only the tickets you want to task and subtask. Often, this is as simple as creating a query in the Issue Navigator where you select the project, Issue Type, and whatever other compoents/values uniquely identify that subset of data. I’ll then sort by Summary, so my parent tickets will always be before my child tickets — again because of my naming convention.

Below, the link to that filter is where you start your browser in the second line of code. In the third line, I simply click on the first result returned. Then the code loops through all the tickets and establishes the parent/child relationships as needed.

require 'watir'
b = Watir::Browser.start("http://jira..com/secure/IssueNavigator.jspa?reset=true&jqlQuery=project...etc...+ORDER+BY+summary+ASC%2C+priority+DESC")
b.link(:text, "KEY-2332").click

for i in (1..800)
if b.table(:index, 9).table(:index, 2).cells[1].text.split('-')[1] == nil then
ticket = b.url.split("/")[-1]
else
b.link(:text, "Convert").click
b.text_field(:name, "parentIssueKey").set ticket
b.button(:name, "Next >>").click
b.button(:name, "Next >>").click
b.button(:name, "Finish").click
end

b.link(:text, "Next >>").click
end

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

-ADS BY GOOGLE

SearchMicroservices

TheServerSide.com

SearchCloudApplications

SearchAWS

SearchBusinessAnalytics

SearchFinancialApplications

SearchHealthIT

DevOpsAgenda

Close