I have customer listener script that updates fixVersions from epic to story. It works fine.
I need to add criteria that will only allow set fixVersoins from epic to story only when
'Merge' custom field is set to "Yes".
'Merge' is checkbox field.
I added following lines. But it does not work. Could you please take a look? Thank you
def CustomField customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName('Merge');
def value = issueObject.getCustomFieldValue(customField);
if (epicissue.getIssueType().getName() == "Epic")
issueLinkManager.getOutwardLinks(epicissue.id).each { issueLink ->
MutableIssue issue = issueLink.getDestinationObject() as MutableIssue;
if (issueLink.issueLinkType.name == "Epic-Story Link" &&
issue.getIssueType().name == "Story" && value == "Yes"
Additionally tried this
issue.getCustomFieldValue('Incremental Dev Merge') == "Yes"
Here is script
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.event.issue.IssueEvent;
import com.atlassian.jira.event.type.EventDispatchOption;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.customfields.CustomFieldType;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItemImpl;
import com.atlassian.jira.issue.index.IssueIndexingService;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.link.IssueLinkManager;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.project.version.VersionManager;
import com.atlassian.jira.util.ImportUtils;
import org.apache.log4j.Category;
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
def epicissue = event.issue as MutableIssue
def issueObject = event.issue as Issue
def issueManager = ComponentAccessor.getIssueManager();
def versionManager = ComponentAccessor.getVersionManager();
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def CustomField customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName('Merge');
def value = issueObject.getCustomFieldValue(customField);
if (epicissue.getIssueType().getName() == "Epic")
issueLinkManager.getOutwardLinks(epicissue.id).each { issueLink ->
MutableIssue issue = issueLink.getDestinationObject() as MutableIssue;
if (issueLink.issueLinkType.name == "Epic-Story Link" &&
issue.getIssueType().name == "Story" && value == "Yes"
//issue.getCustomFieldValue('Incremental Dev Merge') == "Yes"
)
{
def currentValue = epicissue.getFixVersions()
issue.setFixVersions(currentValue);
issueManager.updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false)
boolean wasIndexing = ImportUtils.isIndexIssues();
IssueIndexingService indexing = (IssueIndexingService) ComponentAccessor.getComponent(IssueIndexingService.class)
indexing.reIndex(issue)
ImportUtils.setIndexIssues(wasIndexing)
}
}
-----------------------------------------------------------------------------------------------------------
Tried this but still does not work.
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.event.issue.IssueEvent;
import com.atlassian.jira.event.type.EventDispatchOption;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.customfields.CustomFieldType;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItemImpl;
import com.atlassian.jira.issue.index.IssueIndexingService;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.link.IssueLinkManager;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.project.version.VersionManager;
import com.atlassian.jira.util.ImportUtils;
import org.apache.log4j.Category;
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
def epicissue = event.issue as MutableIssue
def issueObject = event.issue as Issue
def issueManager = ComponentAccessor.getIssueManager();
def versionManager = ComponentAccessor.getVersionManager();
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
if (epicissue.getIssueType().getName() == "Epic")
issueLinkManager.getOutwardLinks(epicissue.id).each { issueLink ->
MutableIssue issue = issueLink.getDestinationObject() as MutableIssue;
//def CustomField customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Merge");
// def value = issue.getCustomFieldValue(customField);
def CustomField customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Merge");
def value = issue.getCustomFieldValue(customField)
if (issueLink.issueLinkType.name == "Epic-Story Link" &&
issue.getIssueType().name == "Story" && value == "YES"
)
{
def currentValue = epicissue.getFixVersions()
issue.setFixVersions(currentValue);
issueManager.updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false)
boolean wasIndexing = ImportUtils.isIndexIssues();
IssueIndexingService indexing = (IssueIndexingService) ComponentAccessor.getComponent(IssueIndexingService.class)
indexing.reIndex(issue)
ImportUtils.setIndexIssues(wasIndexing)
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.