Skip to content

Instantly share code, notes, and snippets.

package examples.docs
import com.atlassian.greenhopper.service.rapid.view.RapidViewService
import com.atlassian.greenhopper.service.sprint.SprintIssueService
import com.atlassian.greenhopper.service.sprint.SprintManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.onresolve.scriptrunner.runner.customisers.JiraAgileBean
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
package examples.docs
import com.almworks.jira.structure.api.PermissionLevel
import com.almworks.jira.structure.api.StructureServices
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.onresolve.scriptrunner.runner.customisers.PluginModule
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
@WithPlugin("com.almworks.jira.structure")
package examples.old
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.history.ChangeItemBean
import com.atlassian.jira.issue.Issue
import com.atlassian.core.util.DateUtils
def componentManager = ComponentManager.getInstance()
def changeHistoryManager = componentManager.getChangeHistoryManager()
package examples
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.jql.operand.QueryLiteral
import com.atlassian.jira.jql.query.QueryCreationContext
import com.atlassian.jira.util.MessageSet
import com.atlassian.query.clause.TerminalClause
import com.atlassian.query.operand.FunctionOperand
import com.onresolve.jira.groovy.jql.AbstractScriptedJqlFunction
package com.onresolve.jira.groovy.jql
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.jql.query.QueryCreationContext
import com.atlassian.jira.util.MessageSet
import com.atlassian.query.clause.TerminalClause
import com.atlassian.query.operand.FunctionOperand
import org.apache.lucene.search.Query
class ABC extends AbstractScriptedJqlFunction implements JqlQueryFunction{
package examples
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.onresolve.scriptrunner.canned.jira.utils.WorkflowUtils
import com.opensymphony.workflow.loader.ActionDescriptor
import com.opensymphony.workflow.loader.WorkflowDescriptor
/**
package examples
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.sal.api.ApplicationProperties
import com.atlassian.streams.api.UserProfile
import com.atlassian.streams.api.common.Either
import com.atlassian.streams.thirdparty.api.Activity
import com.atlassian.streams.thirdparty.api.ActivityService
import com.atlassian.streams.thirdparty.api.ValidationErrors
package examples
import com.atlassian.jira.issue.Issue
import com.onresolve.scriptrunner.canned.jira.utils.CopyIssueWithAttachments
def subTaskObjects = (issue as Issue).subTaskObjects
if (subTaskObjects) {
def util = new CopyIssueWithAttachments()
util.copyAttachments(issue, subTaskObjects.last(), Closure.IDENTITY)
}
package examples.answers
// https://answers.atlassian.com/questions/319646/customfield-id-for-scripted-fields?page=1#comment-319992
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.link.IssueLink
import com.atlassian.jira.issue.link.IssueLinkManager
FormField fixfield = getFieldById(getFieldChanged())
def versions = fixfield.getValue() as List<Version>
// Make sure all versions consist of 2 '.' separated numeric fields.
// sometimes versions list can have a null in it... don't ask
versions.remove(null)
def badVersionNames = versions.findAll {! it.name.matches(/^\d+\.\d+$/)}*.name
if (badVersionNames) {