JIRAv5.xのトランジションポスト関数を作成しようとしています。問題にリンクされているConfluenceページがすでに存在するかどうかを確認し、存在しない場合はページを作成してリンクする必要があります。これは、JAVAAPIにアクセスできるGroovyスクリプトとscriptrunnerプラグインを使用して開発しています。
Confluenceページを作成するのはかなり簡単でしたが、リモートの問題のリンクに苦労しています。
- 新しいリモート課題リンクを作成するにはどうすればよいですか?
- 問題のリンクがすでに存在するかどうかを確認するにはどうすればよいですか?
これが私がリンクを作成しようとする方法です:
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.bc.issue.link.RemoteIssueLinkService
import com.atlassian.jira.issue.link.RemoteIssueLinkBuilder
//I use a wrapper class for the moment so I can run via scriptrunner and debug it in IDEA
class myWrapper {
def doStuff() {
//get the issue, this would already be available in an post action
def issueService = ComponentManager.getInstance().getIssueService();
def authContext = ComponentManager.getInstance().getJiraAuthenticationContext()
def issueResult = issueService.getIssue(authContext.getUser(), "DEV-1");
def issue = issueResult.getIssue()
//build link
def linkBuilder = new RemoteIssueLinkBuilder()
linkBuilder.issueId(issue.id)
linkBuilder.applicationName("myconluence")
linkBuilder.applicationType("com.atlassian.confluence")
linkBuilder.relationship("Wiki Page")
linkBuilder.title("testpage")
linkBuilder.url("http://localhost:8090/display/LIN/testpage")
linkBuilder.build()
def validationResult = RemoteIssueLinkService.validateCreate(authContext.getUser(), linkBuilder)
}
}
(new myWrapper()).doStuff()
コードを実行すると、次の例外が発生します。
javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: static com.atlassian.jira.bc.issue.link.RemoteIssueLinkService.validateCreate() is applicable for argument types: (com.atlassian.crowd.embedded.ofbiz.OfBizUser, com.atlassian.jira.issue.link.RemoteIssueLinkBuilder) values: [admin:1, com.atlassian.jira.issue.link.RemoteIssueLinkBuilder@180ca9]
私には、 RemoteIssueLinkServiceを正しく取得していないように見えますが、それを修正するために何をしなければならないのかわかりません。