Script Runner - Get All Issues Logged User with Status "in Progress" ?

Tiago Carpanese January 25, 2014

How do I get all the issues "in progress" of the logged in user?

2 answers

1 vote
Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 26, 2014

You have to do a search in your script with the JQL stated by Chris. You could use a method like this.

import com.atlassian.jira.bc.issue.search.SearchService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.user.ApplicationUsers
import com.atlassian.jira.web.bean.PagerFilter

static List<Issue> getFilterResult(String jqlSearch, ApplicationUser user) {
    SearchService searchService = ComponentAccessor.getComponent(SearchService.class)
    IssueManager issueManager = ComponentAccessor.getIssueManager()
    List<Issue> issues = null

    SearchService.ParseResult parseResult =  searchService.parseQuery(ApplicationUsers.toDirectoryUser(user), jqlSearch)
    if (parseResult.isValid()) {
        def searchResult = searchService.search(ApplicationUsers.toDirectoryUser(user), parseResult.getQuery(), PagerFilter.getUnlimitedFilter())
        // Transform issues from DocumentIssueImpl to the "pure" form IssueImpl (some methods don't work with DocumentIssueImps)
        // This is not needed in every place and the collect{} part maybe skipped for better performance 
        issues = searchResult.issues.collect {issueManager.getIssueObject(it.id)}
    }
    return issues
}

This method is completely without logging and only with basic error handling, so feel free to expand. :-)

Tiago Carpanese January 26, 2014

Hi Henning.

Could you show me how to pick up the logged in user and also how to do JQL?

thank you

Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 26, 2014

Yes, you can get the current user like this

ApplicationUser user = ComponentAccessor.jiraAuthenticationContext.getUser()

And the jqlSearch String is the same you would enter as an advanced search in JIRA.

String jqlSearch = 'status = "In Progress" and assignee = currentUser()'

Tiago Carpanese January 26, 2014

Wow !

Nice Job Henning, Tank s !

0 votes
Chris Hodgens January 26, 2014

status = "In Progress" and assignee = currentUser()

Suggest an answer

Log in or Sign up to answer