1

我有一个小插件检查几件事,如果拉取请求描述包含有效的 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。应用程序链接已重做,认为这是问题所在,但事实并非如此。进一步测试,我们发现它适用于具有管理员权限的用户,但不适用于普通用户。

有什么我可以改变来解决这个问题的吗?

4

2 回答 2

0

由于我们只是在切换到 GIT 的过程中,因此我们并没有太多使用它,也没有考虑单击 JIRA 问题,因为我不需要测试应用程序链接(它正在为测试用户工作)。

当我单击提交列表中显示的问题时,我有一个窗口要求我允许 Stash 和 JIRA 之间的读写权限。这样做之后,插件就开始工作了。我现在必须为两个用户这样做,我希望到时候我不必为他们每个人都这样做。

于 2014-09-23T17:45:35.607 回答
0

我建议联系 support.atlassian.com 上的团队寻求帮助,听起来您的应用程序链接有些东西没有按预期工作。

于 2014-09-21T11:15:05.187 回答