-Dplugin.script.roots="/home/jira/jira-data/scripts/"
Learn more about how to add or change parameters in jvm args here .
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.MutableIssue IssueManager issueManager = ComponentAccessor.getIssueManager() // PRJ-1 issue. MutableIssue curIssue = issueManager.getIssueObject("PRJ-1") String result = curIssue.key + ": " + curIssue.summary
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
After that, open the configuration Run> Edit Configurations , add a new Remote Config. On the Configuration tab, enter the name of the configuration, for example, “Jira Debug” and specify the host where your JIRA is located. Naturally, the port number for debugging should be the same as you specified it in the address parameter in jvm args.
import com.atlassian.crowd.embedded.api.User import com.atlassian.jira.ComponentManager import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.event.type.EventDispatchOption import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.ModifiedValue import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.issue.fields.CustomField import com.atlassian.jira.issue.util.DefaultIssueChangeHolder // - ComponentManager componentManager = ComponentManager.getInstance() IssueManager issueManager = ComponentAccessor.getIssueManager() CustomFieldManager customFieldManager = componentManager.getCustomFieldManager() // User curUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() // issue MutableIssue curIssue = issueManager.getIssueObject("PRJ-1") // 1. Summary. // issue. curIssue.summary = "New summary" // issue Jira. // , event IssueUpdated, , . // issue, issue, . issueManager.updateIssue(curUser, curIssue, EventDispatchOption.ISSUE_UPDATED, false) // 2. . (1) // . CustomField cfReleaseVersion = customFieldManager.getCustomFieldObjectByName("Release Version") // event curIssue.setCustomFieldValue(cfReleaseVersion, "3.5") issueManager.updateIssue(curUser, curIssue, EventDispatchOption.ISSUE_UPDATED, false) // 3. . (2) // id. CustomField cfUpdateVersion = customFieldManager.getCustomFieldObject("customfield_13500") // "" , event issue. cfUpdateVersion.updateValue(null, curIssue, new ModifiedValue(null, "2.4"), new DefaultIssueChangeHolder())
import com.atlassian.crowd.embedded.api.User import com.atlassian.jira.bc.issue.search.SearchService import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.web.bean.PagerFilter IssueManager issueManager = ComponentAccessor.getIssueManager() SearchService searchService = ComponentAccessor.getComponent(SearchService.class) User curUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() // JQL- issue, String JqlQuery = "created > -2d" def parseResult = searchService.parseQuery(curUser, JqlQuery) def searchResult = searchService.search(curUser, parseResult.getQuery(), PagerFilter.getUnlimitedFilter()) def IssuesByJql = searchResult.issues.collect { issueManager.getIssueObject(it.id) } return IssuesByJql
import com.atlassian.crowd.embedded.api.User import com.atlassian.jira.ComponentManager import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.link.IssueLinkManager import com.atlassian.jira.issue.link.IssueLinkType import com.atlassian.jira.issue.link.IssueLinkTypeManager IssueManager issueManager = ComponentAccessor.getIssueManager() IssueLinkManager issueLinkManager = ComponentManager.getInstance().getIssueLinkManager() IssueLinkTypeManager issueLinkTypeManager = (IssueLinkTypeManager) ComponentManager.getComponentInstanceOfType(IssueLinkTypeManager.class) User curUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() // IssueLinkType duplicateLinkType = issueLinkTypeManager.getIssueLinkTypesByName("Duplicate")?.first() if (duplicateLinkType != null) { def issue_1 = issueManager.getIssueObject("PRJ-1") def issue_2 = issueManager.getIssueObject("PRJ-2") // PRJ-1 duplicates PRJ-2 issueLinkManager.createIssueLink(issue_1.id, issue_2.id, duplicateLinkType.id, null, curUser) }
package Listeners // %scriptroot%/Listeners import com.atlassian.jira.event.issue.AbstractIssueEventListener import com.atlassian.jira.event.issue.IssueEvent import com.atlassian.jira.issue.Issue import org.apache.log4j.Level import org.apache.log4j.Logger class SimpleListener extends AbstractIssueEventListener { Logger log = Logger.getLogger(this.class.simpleName) @Override void workflowEvent(IssueEvent event) { this.customEvent(event) } @Override void customEvent(IssueEvent event) { Issue curIssue = event.issue log.setLevel(Level.DEBUG) log.debug("Event catch: ${event.eventTypeId} fired for ${curIssue.key} (${curIssue.issueTypeObject.name}).") } }
Source: https://habr.com/ru/post/271805/