我有一个小插件检查几件事,如果拉取请求描述包含有效的 Jira 票等。
以下代码在 Stash 3.2.4 上测试时工作正常,但在第二天我们将 Stash 升级到 3.3.0 时停止工作(这可能不是直接原因,因为插件仍在开发中)。
public JiraServiceImpl(ApplicationLinkService applicationLinkService)
{
this.applicationLinkService = applicationLinkService;
}
private ApplicationLink getJiraApplicationLink()
{
ApplicationLink applicationLink = applicationLinkService.getPrimaryApplicationLink(JiraApplicationType.class);
if (applicationLink == null)
{
throw new IllegalStateException("Primary JIRA application link does not exist!");
}
return applicationLink;
}
public boolean doesIssueExist(IssueKey issueKey) throws CredentialsRequiredException, ResponseException
{
checkNotNull(issueKey, "issueKey is null");
final ApplicationLinkRequestFactory fac = getJiraApplicationLink().createAuthenticatedRequestFactory();
ApplicationLinkRequest req = fac.createRequest(Request.MethodType.GET, "/rest/api/2/issue/"+issueKey.getFullyQualifiedIssueKey());
return req.execute(new ApplicationLinkResponseHandler<Boolean>()
{
@Override
public Boolean credentialsRequired(Response response) throws ResponseException
{
throw new ResponseException(new CredentialsRequiredException(fac, "Token is invalid"));
}
@Override
public Boolean handle(Response response) throws ResponseException
{
return response.isSuccessful();
}
});
}
抛出异常消息:“您没有远程资源的授权访问令牌。”
我没有 Stash 管理员权限,无法返回 3.2.4。应用程序链接已重做,认为这是问题所在,但事实并非如此。进一步测试,我们发现它适用于具有管理员权限的用户,但不适用于普通用户。
有什么我可以改变来解决这个问题的吗?