JQL functions script - malikovalibek/groovyForJira GitHub Wiki

import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.search.SearchProvider import com.atlassian.jira.issue.search.SearchQuery import com.atlassian.jira.jql.parser.JqlQueryParser import com.atlassian.jira.jql.query.IssueIdCollector import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.issue.ModifiedValue import com.atlassian.jira.issue.util.DefaultIssueChangeHolder import com.atlassian.jira.issue.IssueFactory import com.atlassian.jira.event.type.EventDispatchOption

import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.search.SearchProvider import com.atlassian.jira.jql.parser.JqlQueryParser import com.atlassian.jira.web.bean.PagerFilter

def JQL = "project = CASE AND resolution = Unresolved AND cf[12200] = "Office-2*" OR project = CASE AND resolution = Unresolved AND cf[12200] = "Office-3*" OR project = CASE AND resolution = Unresolved AND cf[12200] = "Office-4*""; //return JQL def all_tasks = getIssuesByJQL(JQL); return all_tasks; //def user = ComponentAccessor.userManager.getUserByName("jiraadmin") def user = ComponentAccessor.getJiraAuthenticationContext().getUser() //def issue = event.issue; def curComponentId = 12721L;//B2B def curComponent = getComponent(curComponentId); //return curComponent for (def issue in all_tasks){ //return issue; def issueComponents = issue.getComponents()?:[]; //return issueComponents issueComponents += (curComponent); //return curComponent issue.setComponent(issueComponents); //return issueComponents update(user, issue); }

def getIssuesByJQL(String jql) { def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser) def searchProvider = ComponentAccessor.getComponent(SearchProvider) def issueManager = ComponentAccessor.getIssueManager() def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()

def query = jqlQueryParser.parseQuery(jql) SearchQuery searchQuery = SearchQuery.create(query, user) IssueIdCollector collector = new IssueIdCollector() searchProvider.search(searchQuery, collector) return collector.getIssueIds().collect { getIssue(it as Long) } } def getComponent(Long id) { ComponentAccessor.projectComponentManager.find(id) } def getIssue(Long id) { ComponentAccessor.issueManager.getIssueObject(id) } def update(user, issue) { ComponentAccessor.issueManager.updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false) }