JIRA: Require User Time Tracking
Time tracking in JIRA is a nice feature, but we have to get people to do it. My initial attempts to enforce time tracking ran into trouble, but I was able to develop a Jython Validator to hook on to transitions to the Resolved state. Now it is mandatory for our users to log time worked before they can resolve an issue:
# -*- coding: UTF-8 -*- import com.atlassian.jira.issue.worklog.Worklog from com.atlassian.jira import ComponentManager # Time Already Logged timespent = issue.getTimeSpent() # Time Logged via current screen try: timelogged = dict(issue.getModifiedFields())['worklog'] except: timelogged = False # Duplicate Issue? It is as good as logged! resolution = issue.getResolution() if resolution['name'] == "Duplicate": timelogged = True if resolution['name'] == "Self Corrected": timelogged = True # Nagios likes to close tickets, but doesn't get paid user = ComponentManager.getInstance().getJiraAuthenticationContext().getUser() if user.getName() == "nagios": timelogged = True if timespent < = 0 and timelogged == False: result = False description = "Please log the time you spent on this ticket."
2012-01-24 Update: the script now contains additional logic, which exempts the nagios user from enforcement and allows resolution of duplicated or self-correcting issues which may not require time tracking. Hopefully this example is useful to somebody.