A new project needed to just receive emails, create an issue and then close it. Steps 1 & 2 are simple with IMAP & Mail listeners. But I wasn't aware of a way to carry out 3.
Enter stage left Jelly Scripts. Scripting language supported within JIRA. Turned out to be rather simple and a couple of hours work turned out :
<!-- This script will parse all tickets matching "${filterNum}" and transition them to Closed state. -->
<!-- Paul Regan 27/2/2013 (Thats a UK Date people !) -->
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:core="jelly:core" xmlns:log="jelly:log">
<!-- Login as automation user -->
<jira:Login username="<jira-user>" password="<password>">
<!-- Set Some variables -->
<!-- 2 = Close Issue Transition (NB//TRANSITION NOT STATUS). Can be seen on the transition URL -->
<core:set var="workflowStep" value="2" />
<core:set var="workflowUser" value="<jira-user>" />
<core:set var="comment" value="This topic has been closed by jelly script automation" />
<!-- Run the SearchRequestFilter Against a filer. 15231 = All Tickets -1 Day or 15232 = All Open Tickets-->
<!--The numeric comes from the filters URL -->
<core:set var="filterNum" value="15232" />
<!--Run the search using filter defined above -->
<jira:RunSearchRequest filterid="${filterNum}" var="issues" />
<!-- Build array of issues matching filter & run through it -->
<core:forEach var="issue" items="${issues}">
<!-- Log updates are written to /opt/atlassian/jira/data/log/atlassian-jira.log. -->
<log:warn>Closing issue ${issue.key}</log:warn>
<jira:TransitionWorkflow key="${issue.key}" user="${workflowUser}" workflowAction="${workflowStep}" comment="${comment}"/>
<!-- Useful debugging aid. Remark the actions and just use this to write a comment in results -->
<!-- <jira:AddComment comment="This would be closed" issue-key="${issue.key}"/> -->
<!-- Useful debugging aid. Remark the actions and just use this to display results -->
<!-- ${issue.key} -->
</core:forEach>
</jira:Login>
</JiraJelly>
No comments:
Post a Comment