Advertisement
Guest User

Untitled

a guest
Mar 4th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 5.23 KB | None | 0 0
  1. import com.atlassian.jira.component.ComponentAccessor
  2. import com.atlassian.jira.issue.MutableIssue
  3. import com.atlassian.jira.event.type.EventDispatchOption
  4. import com.atlassian.jira.issue.CustomFieldManager
  5. import com.atlassian.jira.issue.fields.CustomField
  6. import com.atlassian.jira.bc.issue.search.SearchService
  7. import com.atlassian.jira.web.bean.PagerFilter
  8. import com.atlassian.jira.issue.link.IssueLink
  9. import com.atlassian.jira.issue.Issue
  10. import org.apache.log4j.Category
  11.    
  12.    
  13. // Logs
  14.    
  15. Category log = log
  16. log.setLevel(org.apache.log4j.Level.DEBUG)
  17.    
  18.    
  19.  
  20.    
  21. // Manager
  22.    
  23. CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()
  24. def issueManager = ComponentAccessor.getIssueManager()
  25.    
  26.  
  27.  
  28. // Constants
  29.    
  30. List<MutableIssue> listIssue = new ArrayList<MutableIssue>()
  31. def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
  32. SearchService searchService = ComponentAccessor.getComponent(SearchService.class)
  33. def TopRiskJQL = "issuetype = 'Top Risk'  AND issueFunction in hasLinks()"
  34. SearchService.ParseResult parseResultTopRisk =  searchService.parseQuery(user, TopRiskJQL)
  35.    
  36.    
  37.    
  38. // Treatment
  39.    
  40. // Store all issues with even ID in a list (listIssue)
  41. if (parseResultTopRisk.isValid()) {
  42.     def searchResult = searchService.search(user, parseResultTopRisk.getQuery(), PagerFilter.getUnlimitedFilter())
  43.     def jqlIssue = searchResult.issues.collect {issueManager.getIssueObject(it.id)}
  44.     for(MutableIssue issueSearch : jqlIssue){
  45.         log.debug("issue Top Risk : " + issueSearch.getKey())
  46.         String currentIssue = issueSearch
  47.         listIssue.add(issueSearch)
  48.     }
  49. }
  50. else {
  51.     log.error("Invalid JQL: " + TopRiskJQL)
  52. }
  53. log.debug(listIssue)
  54.  
  55. log.info("...................")
  56. log.info("Linked issues")
  57. log.info("...................")
  58.  
  59.  
  60. List<MutableIssue> listIssueActionPlan = new ArrayList<MutableIssue>()
  61.  
  62. for(int element=0 ; element<listIssue.size() ; element++)
  63. {
  64.     CustomField customFieldReaders = customFieldManager.getCustomFieldObject("customfield_10101")  
  65.     def valueReaders = listIssue[element].getCustomFieldValue(customFieldReaders)
  66.          
  67.     List<MutableIssue> listIssueLinkedPlan = new ArrayList<MutableIssue>()
  68.     def ActionPlanJQL = "issue in linkedissues(" + listIssue[element] + ")"
  69.     SearchService.ParseResult parseResultActionPlan =  searchService.parseQuery(user, ActionPlanJQL)
  70.      
  71.      
  72.     if (parseResultActionPlan.isValid())
  73.     {
  74.         def searchResult = searchService.search(user, parseResultActionPlan.getQuery(), PagerFilter.getUnlimitedFilter())
  75.         def jqlIssue = searchResult.issues.collect {issueManager.getIssueObject(it.id)}
  76.         for(MutableIssue issueSearch : jqlIssue)
  77.         {
  78.              
  79.             String currentIssue = issueSearch
  80.             listIssueLinkedPlan.add(issueSearch)
  81.         }
  82.         if (listIssueLinkedPlan[0])
  83.         {
  84.             log.debug("issue Action Plan : " + listIssueLinkedPlan[0] + ", linked to Top Risk : " + listIssue[element])
  85.             listIssueActionPlan.add(listIssueLinkedPlan[0])
  86.             listIssueLinkedPlan[0].setCustomFieldValue(customFieldReaders, valueReaders)
  87.          
  88.             ComponentAccessor.getIssueManager().updateIssue(user, listIssueLinkedPlan[0], EventDispatchOption.ISSUE_UPDATED, false)
  89.  
  90.             log.debug("Action Plan Readers : " + listIssueLinkedPlan[0].getCustomFieldValue(customFieldReaders))
  91.             log.debug(" ")
  92.         }
  93.     }
  94.     else
  95.     {
  96.         log.error("Invalid JQL: " + ActionPlanJQL)
  97.     }  
  98. }
  99.  
  100. log.debug(listIssueActionPlan)
  101.  
  102. log.info("...................")
  103. log.info("Subtasks")
  104. log.info("...................")
  105.  
  106. for(int element=0 ; element<listIssueActionPlan.size() ; element++)
  107. {
  108.     CustomField customFieldReaders = customFieldManager.getCustomFieldObject("customfield_10101")  
  109.     def valueReaders = listIssueActionPlan[element].getCustomFieldValue(customFieldReaders)
  110.          
  111.     List<MutableIssue> listChild = new ArrayList<MutableIssue>()
  112.     def ActionJQL = "parent = " + listIssueActionPlan[element]
  113.     SearchService.ParseResult parseResultAction =  searchService.parseQuery(user, ActionJQL)
  114.      
  115.      
  116.     if (parseResultAction.isValid())
  117.     {
  118.         def searchResult = searchService.search(user, parseResultAction.getQuery(), PagerFilter.getUnlimitedFilter())
  119.         def jqlIssue = searchResult.issues.collect {issueManager.getIssueObject(it.id)}
  120.         for(MutableIssue issueSearch : jqlIssue)
  121.         {
  122.              
  123.             String currentIssue = issueSearch
  124.             listChild.add(issueSearch)
  125.         }
  126.         if (listChild[0])
  127.         {
  128.             log.debug("issue Action : " + listChild[0] + ", linked to Action Plan : " + listIssueActionPlan[element])
  129.             listChild[0].setCustomFieldValue(customFieldReaders, valueReaders)
  130.          
  131.             ComponentAccessor.getIssueManager().updateIssue(user, listChild[0], EventDispatchOption.ISSUE_UPDATED, false)
  132.  
  133.             log.debug("Action Readers : " + listChild[0].getCustomFieldValue(customFieldReaders))
  134.             log.debug(" ")              
  135.         }
  136.     }
  137.     else
  138.     {
  139.         log.error("Invalid JQL: " + ActionJQL)
  140.     }  
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement