java - JIRA - Jira post 函数——如何更新 "fix version"字段?

标签 java plugins jira

我的场景是:我的 jira 工作流程中的一个步骤应该能够取消计划任务,即将修复版本设置为“无”。

我注意到我无法在工作流发布函数中更新修复版本 - 我不知道确切原因,但无论如何我确实实现了一个 jira 插件来帮助我解决我的问题 但我知道我反对 jira 结构(即使是 java 良好的编码实践 :))。我不确定我的实现是否会导致问题,但它确实在我的 jira 实例 4.1.x 中工作。

我是如何在 post 函数中实现一个插件来更新修复版本的,两种非常相似的方式:

public class BrandsclubPostFunctionUnschedule extends AbstractJiraFunctionProvider {
    // Here I create an empty Collection to be the new value of FixVersion (empty because I need no version in Fix Version)
    public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException {
        MutableIssue issue = this.getIssue(transientVars);
        Collection<Version> newFixVersion = new ArrayList<Version>();
            issue.setFixVersions(newFixVersion);
            issue.store();
    }
}

public class BrandsclubPostFunctionUnschedule extends AbstractJiraFunctionProvider {
    // here I clear the Collection I got from "old" Fix Version and I have to set it again to make it work.
    public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException {
        MutableIssue issue = this.getIssue(transientVars);
        Collection fixVersions = issue.getFixVersions();
        fixVersions.clear();
        issue.setFixVersions(fixVersions);
        issue.store();
    }
}

我认为真正的解决方案应该使用像这样的类:ChangeItemBean、ModifiedValue、IssueChangeHolder - 以 CustomFieldImpl 的 updateValue 方法为例(来自 jira 源代码,项目:jira,包:com.atlassian.jira.issue.fields) .

我在此发布的目的是:

  • 有谁知道如何实现包含 post 函数的 jira 插件以正确更改修复版本?

最佳答案

如果你想正确地做到这一点,请查看

的代码

./jira/src/java/com/atlassian/jira/workflow/function/issue/UpdateIssueFieldFunction.java processField()

接受输入参数的后置函数似乎还没有记录。获取代码的其他地方是其他开源插件。

关于java - JIRA - Jira post 函数——如何更新 "fix version"字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4820518/

相关文章:

java - 方法是否可以知道调用它的对象的类型(即调用它的子类型)

java - 仅当 SonarQube 服务器在线时才对 Jenkins 执行 SonarQube 分析

c++ - 浏览器扩展与系统托盘应用

git - 基于提交哈希在 BitBucket 中创建 pull 请求

java - 如何在 Windows 10 中安装 Processing-Java?

java - 为什么Eclipse使用port而不是javaw

javascript - Fancytree:手动重新生成 key 以避免重复

plugins - Audacity 奈奎斯特插件

java - 如果用户没有通过 If-None-Match,如何验证 ETag 是否有效?

rest - 如何使用 ZAPI Rest api 调用从测试周期获取所有问题