Skip to main content

The dreaded "Clone" in Jira

Jira Cloud
Scrum Teams

Case: We clone template issues, as our work is repetitive, and get “clone” in the summary and it makes it hard to read. Built-In Jira allows you to remove "Clone" from the story you are cloning, but if you are also copying the sub-tasks there is not the option to remove it. There are ways to turn this off in Jira Server, but I could not find it in Jira cloud.

Solution:

Jira - Settings - Add-Ons - ScriptRunner - Escalation Service

The Escalation Service called: Remove Clone In Summary
As this user: (myself)
Checked - enabled
On this schedule: Every Hour
For first 50 results returned by this query: Project in (pipe) and Summary ~ "CLONE"

Will run this code: 

// check if issue.fields.summary looks like "CLONE -"
def updatedSummary =""
if (issue.fields.summary.startsWith("CLONE -")) {
    //if so, modify issue.fields.summary to not suck.
    updatedSummary = issue.fields.summary.replace("CLONE -", "")
    //update it.
    def result = put('/rest/api/2/issue/' + issue.key)
            .header('Content-Type', 'application/json')
            .body([
            fields: [
                 summary: updatedSummary
            ]
    ])
            .asString()
    if (result.status == 204) {
        // If you want to leave a comment, you can add this
        //def commentResp = post("/rest/api/2/issue/${issue.key}/comment")
        //    .header('Content-Type', 'application/json')
        //    .body([
        //    body: """The ScriptRunner Bot has updated the description of ${issue.key} due to the name looking like CLONE -"""
        //])
        return "Updated summary of ${issue.key}"
    } else {
        return "Failed to update: ${issue.key}. " + "${result.status}: ${result.body}"
    }

}

Comments

Popular posts from this blog

How do I find the Custom Field ID in Jira Cloud?

So you need to find the Custom Field ID in Jira Cloud. Perhaps you need the ID for a custom field to work on soem code, an API call or a script. How do you find it? You can find the ID in the URL when managing custom fields Jira - Settings - Issues - Fields - Custom Fields https://***.atlassian.net/secure/admin/ViewCustomFields.jspa Select "Edit" on the desired custom field .../admin/EditCustomField!default.jspa?id=12802 There you go! It is that number at the end of the URL Alternately, you can use ScriptRunner Jira - Setttings - Add-ons - Script Runner - Script Console and run the following def issueKey = '***-####' def result = get('/rest/api/2/issue/' + issueKey)         .header('Content-Type', 'application/json')         .asObject(Map) if (result.status == 200){     return result.body.fields } else {     return "Failed to find issue: Status: ${result.status} ${result....

Jira Administration

Some things I have setup in Jira to make life better for me, with the way we work. Use Case 1: You should not close a story when sub tasks are not complete How? Jira - Workflow - Edit Transition Condition, before allowing a story to Status Category Done "All sub-tasks must have one of the following statuses to allow parent issue transitions:" (All done statuses) Use Case 2: You should not close a story until the blocker or impediment is resolved. How? Jira - Workflow - Edit Transition Condition, before allowing a story to Status Category Done "Value Field" The field Flagged will have to be not equal to value '"Impediment"'. Compared as String. Use Case 3: Set resolution when completing an item. Why? If no resolution is set some reports and metrics don't calculate correctly. How? Jira - Workflow - Edit Transition Done Post Function, Status Category = Done JMWE The value(s) of field Resolution of the current...