Make Worklog Description Mandatory Under Specific Conditions

Most of the time work performed on an issue is already recorded with a commit message to GIT or directly obvious from issue itself. But under specific situations you may want to make work description required for example if you are billing each worklog to your customer your customer may want you to record work description. Following scripts make worklog description required under various conditions.

Make Work Description Required If Issue Summary Contains Specific Words

These words may be anything, for example an invoice number a contract number. You may also use a regular expression to check for patterns in issue summary or you can use any other field on the issue.

1 2 3 4 5 6 7 def specialWordsThatRequreWorkDescription = ["PP0212", "AA2013"]; //update words inside this array for your case def issueSummary = worklog.issue.summary; def foundWord = specialWordsThatRequreWorkDescription.find {sw -> issueSummary.indexOf(sw) > -1}; if (foundWord != null) { return "You need to specify a work description because issue summary contains " + foundWord; } return null;

Make Work Description Required For Specific Projects

Some of your projects may be specific to clients and billed to them so they may require record a description of every worklog, they are the paying for worklogs in the end.

1 2 3 4 5 6 7 8 9 def mandatoryWorkDescriptionForProjects = ["ERP", "ACN"]; //worklog description is required for these projects def issue = worklogResult.getWorklog().getIssue(); def project = issue.getProjectObject(); if (mandatoryWorkDescriptionForProjects.contains(project.getKey())) { def workDescription = worklog.getComment(); if (workDescription == null || workDescription.length() < 3) { //if no description of it's length is less than 3 don't accept worklog return "Work description is mandatory for " + project.getName(); } }