Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Create project by scriptrunner

Hello ,
I would like to be able to create jira projects with existing templates through a script.
Procedure:
1. Through the transition of a card on the board, you must create a project.
2. Projects must be created using pre-created templates in JIra.
3. For example, from a card with the id, name, type of project and scrum master the project must be created.
4. There must be a condition to compare if the card has a waterfall type field, for example, a project must be created through the waterfall template.
5. If it is Agile, a project must be created using the Agile template.

Can you help me with this?
Thank in advance,
BR

1 answer

Hi @Emanuel Paquetelima I guess I have the script you need:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.util.thread.JiraThreadLocalUtils
import com.onresolve.scriptrunner.canned.jira.admin.CopyProject
import org.apache.log4j.Logger
import org.apache.log4j.Level
def log = Logger.getLogger(getClass())
log.setLevel(Level.DEBUG)

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def projectManager = ComponentAccessor.getProjectManager()


//change this to your template source project
def srcProjectKey = 'SPK' // source project key
def getSrcProjectObject = projectManager.getProjectByCurrentKey(srcProjectKey)

def targetKey = "SP" // you must adjust for your purpose
def targetProjectName = "Some project" // you must adjust for your purpose

if(getSrcProjectObject && targetKey && targetProjectName) {


//You have to wrap the thread in JiraThreadLocalUtils in Jira 8 or no issues will be cloned
Thread executorThread = new Thread(JiraThreadLocalUtils.wrap {
def copyProject = new CopyProject()
def inputs = [
(CopyProject.FIELD_SOURCE_PROJECT) : srcProjectKey,
(CopyProject.FIELD_TARGET_PROJECT) : targetKey,
(CopyProject.FIELD_TARGET_PROJECT_NAME) : targetProjectName,
(CopyProject.FIELD_COPY_VERSIONS) : true,
(CopyProject.FIELD_COPY_COMPONENTS) : true,
(CopyProject.FIELD_COPY_ISSUES) : true,
(CopyProject.FIELD_COPY_DASH_AND_FILTERS): false,
//(CopyProject.FIELD_ORDER_BY) : "Rank", <-- no longer a valid option so I am commenting this out
]

def errorCollection = copyProject.doValidate(inputs, false)
if (errorCollection.hasAnyErrors()) {
log.warn("Couldn't create project: $errorCollection")
} else {
def util = ComponentAccessor.getUserUtil()
def adminsGroup = ComponentAccessor.getGroupManager().getGroup("jira-administrators")
assert adminsGroup // must have jira-administrators group defined
def admins = util.getAllUsersInGroups([adminsGroup])
assert admins // must have at least one admin

ComponentAccessor.getJiraAuthenticationContext().setLoggedInUser(util.getUserByName(admins.first().name))
copyProject.doScript(inputs)
}

})

//must call start Not run or the Post functions will throw an error because it tries to access a dead thread
executorThread.start()

}else{
log.error("Cannot Clone Project as source Project, target key or target project names were Not found or Not specified")
}

this script copies also issues, versions and components from source project

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Trello

📹 Favorite Trello templates

Hello Community!  My name is Brittany Joiner and I am a Trello enthusiast and Atlassian Community Leader. In this video, I'll share my favorite Trello templates. Templates mentioned in ...

75 views 4 5
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you