There are often times when we want to offer our developers specific actions, which we use to enforce and simplify workflow. The way that we typically do that now is to add a transition which does not change the status, but has post actions in Scriptrunner which do any custom work.
This seems like a hack though. Some of the issues we have with this are:
1) You can not reject the "action" if the user does not provide certain fields because Scriptrunner in cloud cannot reject a transaction because it's async
2) You can't have forms for the action which contains fields which are not associated with the ticket. This results in us creating custom fields that the ScriptRunner scripts have to clear when the action is done. For example: We have our own "Create Linked Issue" transition for our projects which are not Service Desk. To create this, we needed to add a "NewIssueAssignee" field and "NewIssueLinkType" field, which the script can use to create the new ticket, but then it needs to clear them on the original ticket. This seems like a big hack, plus, because it's not necessarily atomic, you could have an issue where two people running the same action on the same ticket have colliding data. (i.e. one removes the other ones changes, or uses the wrong values in the script).
How do other people create "actions" for their users?
Recommended Learning For You
Level up your skills with Atlassian learning
Learning Path
Jira Administrator
Configure Jira Software, Jira Core, or Jira Service Management, including global settings, permissions, and schemes.
Managing Jira Projects Cloud
Learn to create and configure company-managed projects in Jira Software and partner effectively with Jira Admins.
Learning Path
Become an effective Jira Software Project Admin
This learning path is designed for team leaders who configure Jira Software projects to match a team's processes.