JIRA - Функция поста Jira - Как обновить поле «исправить версию»? - PullRequest
9 голосов
/ 27 января 2011

Мой сценарий: Один шаг в моем рабочем процессе jira должен иметь возможность отменять планирование задачи, т. Е. Установить для версии исправления значение «Нет».

Я заметил, что не смогобновить исправить версию в функции публикации рабочего процесса - я точно не знаю, почему, но в любом случае Я реализовал плагин jira, чтобы помочь мне решить мою проблему , но я знаю, что яидти против структуры jira (даже java хорошие практики кодирования :)).Я не уверен, что моя реализация может вызвать проблемы, но на самом деле она работает в моем экземпляре jira 4.1.x.

Как я реализовал плагин для обновления версии исправления в функции post, 2очень похожие способы:

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 - взяв в качестве примера методы updateValue из CustomFieldImpl (из исходного кода jira, проект: jira, пакет: com.atlassian.jira.issue.fields).

Моя цель опубликовать это здесь:

  • Кто-нибудь знает, как реализоватьплагин jira, содержащий функцию поста для корректного изменения версии исправления?

Ответы [ 3 ]

4 голосов
/ 28 января 2011

Если вы хотите сделать это правильно, посмотрите в коде для

. / Jira / src / java / com / atlassian / jira / рабочий процесс / function / issue / UpdateIssueFieldFunction.java processField()

Постфункции, принимающие входные параметры, пока не документированы.Другие места для кода - другие плагины с открытым исходным кодом.

1 голос
/ 08 марта 2012

У Atlassian есть учебник, посвященный тому, что вы хотите делать, здесь :

0 голосов
/ 28 мая 2015

Я делаю это, как в этом фрагменте:

List<GenericValue> genericValueList = issueManager.getIssues(issues);
versionManager.moveIssuesToNewVersion(genericValueList, lastVersion, newVersion);
...