Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 126 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>com.onresolve.scriptrunner.assets</groupId>
<artifactId>sr-sample-plugin</artifactId>
<version>1.0-SNAPSHOT</version>

<organization>
<name>Example Company</name>
<url>http://www.example.com/</url>
</organization>

<name>sr-dependent-plugin</name>
<description>This is a sample scripts plugin for use with Script Runner.</description>
<packaging>atlassian-plugin</packaging>

<dependencies>
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-api</artifactId>
<version>${jira.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-core</artifactId>
<version>${jira.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-jira-plugin</artifactId>
<version>${amps.version}</version>
<extensions>true</extensions>
<configuration>
<productVersion>${jira.version}</productVersion>
<productDataVersion>${jira.version}</productDataVersion>

<!--
<jvmArgs>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000</jvmArgs>
-->

<systemPropertyVariables>
<atlassian.mail.senddisabled>false</atlassian.mail.senddisabled>
<atlassian.dev.mode>false</atlassian.dev.mode>
<plugin.script.roots>${project.basedir}/src/main/resources,${project.basedir}/src/test/resources</plugin.script.roots>
</systemPropertyVariables>

<pluginArtifacts>
<pluginArtifact>
<groupId>com.onresolve.jira.groovy</groupId>
<artifactId>groovyrunner</artifactId>
<version>${scriptrunner.version}</version>
</pluginArtifact>
<pluginArtifact>
<groupId>com.atlassian.jira.plugins</groupId>
<artifactId>jira-greenhopper-plugin</artifactId>
<version>6.6.0</version>
</pluginArtifact>
</pluginArtifacts>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/resources</source>
<source>src/test/resources</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

<properties>
<jira.version>7.2.7</jira.version>
<amps.version>5.0.4</amps.version>
<plugin.testrunner.version>1.1.2</plugin.testrunner.version>
<!-- TestKit version 5.x for JIRA 5.x, 6.x for JIRA 6.x -->
<testkit.version>5.2.26</testkit.version>
<groovy.version>2.3.6</groovy.version>
<scriptrunner.version>3.0.10</scriptrunner.version>
</properties>

</project>
20 changes: 20 additions & 0 deletions src/main/resources/atlassian-plugin.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2">
<plugin-info>
<description>${project.description}</description>
<version>${project.version}</version>
<vendor name="${project.organization.name}" url="${project.organization.url}" />
<param name="plugin-icon">images/pluginIcon.png</param>
<param name="plugin-logo">images/pluginLogo.png</param>
<bundle-instructions>
<Require-Bundle>com.onresolve.jira.groovy.groovyrunner</Require-Bundle>
</bundle-instructions>
</plugin-info>

<!-- add our i18n resource -->
<resource type="i18n" name="i18n" location="sr-dependent-plugin"/>


<!-- import from the product container -->
<component-import key="applicationProperties" interface="com.atlassian.sal.api.ApplicationProperties" />

</atlassian-plugin>
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
package com.onresolve.scriptrunner.canned.jira.workflow.postfunctions

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.security.roles.ProjectRoleManager
import com.onresolve.scriptrunner.canned.CannedScript
import com.onresolve.scriptrunner.canned.jira.utils.CannedScriptUtils
import com.onresolve.scriptrunner.canned.jira.utils.DescriptionFormatter
import com.onresolve.scriptrunner.canned.util.BuiltinScriptErrors
import org.apache.log4j.Logger

class TestPF implements CannedScript {

def log = Logger.getLogger(TestPF.class)
def projectRoleManager = ComponentAccessor.getComponent(ProjectRoleManager.class)

public static String FIELD_ROLE_ID = "FIELD_ROLE_ID"
public static String FIELD_BOOLEAN_PARAM = "FIELD_BOOLEAN_PARAM"


@Override
String getName() {
"Simple Post Function Example With Params"
}

@Override
String getDescription() {
"Simple Post Function Example With Params Description"
}

@Override
List getCategories() {
["Function"]
}


@Override
List getParameters(Map params) {
[
[
Label: "Role",
Name: FIELD_ROLE_ID,
Type: "list",
Values: CannedScriptUtils.getAllRoles(false),
Description: "Role param selector",
],
[
Label: "Bool param",
Name: FIELD_BOOLEAN_PARAM,
Type: "bool",
Description: "Include some bool param",
],
]
}

@Override
BuiltinScriptErrors doValidate(Map<String, String> params, boolean forPreview) {
null
}

@Override
Map doScript(Map<String, Object> params) {
// todo: make some logic here
def issue = params["issue"] as MutableIssue

// Exmaple of getting PARAM:
// params[FIELD_BOOLEAN_PARAM] = null


params
}

@Override
String getDescription(Map<String, String> params, boolean forPreview) {
def projectRoleId = params[FIELD_ROLE_ID] as Long
def role = projectRoleManager.getProjectRole(projectRoleId)

def sb = new StringBuilder()
sb << "Role parameter is: <b>${role.name}</b>"
if (params[FIELD_BOOLEAN_PARAM]) {
sb << ", bool param true"
}
sb << "."
def customDescription = sb.toString()
DescriptionFormatter.getDescription(
params,
getName(),
forPreview,
customDescription)
}

@Override
Boolean isFinalParamsPage(Map params) {
true
}
}
2 changes: 2 additions & 0 deletions src/main/resources/sr-dependent-plugin.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#put any key/value pairs here
my.plugin.name=MyPlugin