Hello everyone!
I try ty make a script, that creates user in Jira, added comment to task with login/password and then close the issue.
If i try it in Script Console everything works fine, but if i try to use Script Listener with "Issue created" event, i can't transition issue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.bc.user.UserService
import com.atlassian.jira.issue.IssueInputParametersImpl
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def admin = ComponentAccessor.getUserManager().getUserByKey('admin')
def commentManager = ComponentAccessor.commentManager
def userService = ComponentAccessor.getComponent(UserService)
def userUtil = ComponentAccessor.getUserUtil()
def issueService = ComponentAccessor.getIssueService()
final boolean sendNotification = false
Issue issue = issue as Issue
if (issue.issueType.name=="New user") {
String email = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject("customfield_11700"))
String name = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject("customfield_11702"))
List email_list
String login
String password = "123456789"
def actionId = 11
def transitionValidationResult = issueService.validateTransition(admin, issue.id, actionId, new IssueInputParametersImpl())
def group = userUtil.getGroup("cw-freelance")
if (email =~ /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/) {
email_list = (email =~ /^([a-zA-Z0-9_\-\.]*)/)[0] as List
log.warn(email_list)
login = email_list[0] as String
log.warn(login)
def user = ComponentAccessor.getUserManager().getUserByKey(login)
if (!user) {
def newCreateRequest = UserService.CreateUserRequest.withUserDetails(admin, login, password, email, name)
.sendNotification(sendNotification)
def createValidationResult = userService.validateCreateUser(newCreateRequest)
assert createValidationResult.isValid(): createValidationResult.errorCollection
userService.createUser(createValidationResult)
def new_user = ComponentAccessor.getUserManager().getUserByKey(login)
userUtil.addUserToGroup(group, new_user)
commentManager.create(issue, admin, "Новый пользователь:\nlogin: " + login + "\npassword: " + password, true)
issueService.transition(admin, transitionValidationResult)
} else {
commentManager.create(issue, admin, "пользователь уже существует: " + user.displayName, true)
issueService.transition(admin, transitionValidationResult)
}
} else {
commentManager.create(issue, admin, "Ошибка в почте", true)
log.warn("bad email")
}
}else{
return null
}
What should i do, to avoid this?
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.