Story: a JIRA administrator (or JIRA user) wants to perform some set of actions many hundreds of times. These actions are available via the web to the user.
Many administrators open a new tab for each action in turn, because there is no easy way to automate bulk operations, e.g. changing a scheme on a project.
Aim: make JIRA configuration and maintenance scale as well as JIRA data does by making it easier for users to automate actions in JIRA
Currently administrators have a few choices. Users have fewer choices. All these choices are:
1. UI tools (Selenium) - pretty crude and sensitive to UI changes
2. A SOAP/REST plugin to expose an API to execute the set of operations, and then use a client-side script. This is probably the most common approach right now.
3. A plugin to execute just that set of operations - can be a fair amount of work, not clear which internal APIs to use or how to use them
4. A Jelly script - outdated, little support in the last three years
5. (JIRA 4.3 and later) Speakeasy is the client-side approach to doing this in the browser, but it doesn't allow access to all the actions that administrators or users may want to use.
There are at least two plugins available that let you execute Groovy, JRuby, Jython etc scripts inside JIRA. They are Script Runner (https://plugins.atlassian.com/plugin/details/6820) and JIRA REST CLI (http://leonardinius.blogspot.com/2011/03/release-announcement-jira-rest-cli-05.html and https://plugins.atlassian.com/plugin/details/40268)
This issue is the result of a number of discussions at Summit, plus feedback received on "Practical JIRA Administration" (O'Reilly, 2011).