PageRenderTime 26ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/src/test/resources/examples/EasyKarma.groovy

https://bitbucket.org/sorin/jira-plugin-intellij
Groovy | 53 lines | 43 code | 10 blank | 0 comment | 4 complexity | b9cbcf71234ef56288a15fc4838ce25a MD5 | raw file
  1. package examples
  2. import com.atlassian.crowd.embedded.api.User
  3. import com.atlassian.jira.ComponentManager
  4. import com.atlassian.jira.issue.Issue
  5. import com.atlassian.jira.issue.search.SearchRequest
  6. import com.atlassian.jira.jql.builder.JqlQueryBuilder
  7. import com.atlassian.jira.project.Project
  8. import com.atlassian.jira.security.roles.ProjectRoleManager
  9. import com.atlassian.jira.web.bean.PagerFilter
  10. import com.atlassian.query.Query
  11. def projectKey = "JRA"
  12. def roleName = "KingOfTheHill"
  13. def jqlQueryBuilder = JqlQueryBuilder.newBuilder()
  14. def componentManager = ComponentManager.getInstance()
  15. def searchProvider = componentManager.getSearchProvider()
  16. def watcherManager = componentManager.getWatcherManager()
  17. def issueManager = componentManager.getIssueManager()
  18. ProjectRoleManager projectRoleManager = (ProjectRoleManager) componentManager.getComponentInstanceOfType(ProjectRoleManager.class);
  19. Project project = componentManager.getProjectManager().getProjectObjByKey(projectKey)
  20. def anyOldAdminUser = componentManager.getUserUtil().getJiraAdministrators().toList().first() as User
  21. def role = projectRoleManager.getProjectRole(roleName)
  22. Query query = jqlQueryBuilder.where().project(projectKey).and().issueTypeIsStandard().and().status().notEq("Closed").buildQuery()
  23. def sr = new SearchRequest(query)
  24. def roleMembers = projectRoleManager.getProjectRoleActors(role, project).getRoleActors()*.getUsers().flatten()
  25. def results = searchProvider.search(sr.getQuery(), anyOldAdminUser, PagerFilter.getUnlimitedFilter())
  26. results.issues.each {Issue docIssue ->
  27. def issue = issueManager.getIssueObject(docIssue.id)
  28. log.debug("Looking at issue: ${issue.key}")
  29. if (issue.subTaskObjects.any {it.summary == "HelpTylerHesNotSmart"}) { // todo: update this
  30. roleMembers.each {user ->
  31. log.debug("Add user ${user.name} to ${issue.key}")
  32. watcherManager.startWatching(user, issue.genericValue)
  33. }
  34. }
  35. else {
  36. roleMembers.each {user ->
  37. if (watcherManager.isWatching(user as User, issue.genericValue)) {
  38. log.debug("Remove user ${user.name} from ${issue.key}")
  39. watcherManager.stopWatching(user, issue.genericValue)
  40. }
  41. }
  42. }
  43. }