I want to design an issue workflow that is well integrated with GitHub (or more generally, with the DVCS that the project is using).
Specifically, I want to prevent someone from marking the story as "Done" until all pull requests have been closed.
I have read a bit about Script Runner scripts and understand that development debugging is a bit painful; however, I'm willing to learn Groovy and do some experimentation. I've even browsed the source for the DVCS plugin and I am familiar with some of its classes and interfaces.
My problem is that I don't know how to get access to the DVCS plugin .. the Groovy script's binding contains an issue object, but JIRA's Issue class has no direct references to plugin-related objects. There is a DVCS PullRequestService interface, but there's no way for me to access an implementation of that interface given only an Issue.
What's the best way for me to get started? I would imagine that this is a fairly common use case; perhaps someone else in the JIRA community has done it before.
P.S. I noticed that JIRA has canned conditions for "no open Crucible reviews" and "no open changesets" – but neither of these works with the DVCS plugin. That's a great pity, because otherwise my task would be done and I wouldn't need to learn Groovy or experiment!