Finding Issues Owned by Inactive Users with JQL

Is there any way I can get the list of issues reported/assigned to inactive users using JQL easily?

For example:

reporter is inactive() or assignee is inactive()

Or should I have to the the list of inactive usernames and use them like this:

reporter in ( aaa, bbb, ccc, ddd ) or assignee in ( aaa, bbb, ccc, ddd )

Thank you in advance.

11 answers

1 accepted

7 votes
Accepted answer

Yes, there is a way.

This worked for me: Create a group called, say, "jira-SomeoneWhosGone", add the 'X' inactive user into it, and search for 

  • reporter in (membersof(jira-SomeoneWhosGone))

HTH,

Mike

Well, this approach is somewhat like what i am doing. The problem is, i am not any active directory admin that i can decide on when the inactive usernames will be removed and often, the inactive accounts are moved into a group called "CleanUp". When this group gets wiped out, is totally up to the active directory administrator in my organization. I typically duplicate the username and his information as a Crowd user and marking him InActive. Then i move these users to an InActive group, which will then be used as the top most group for JIRA in Crowd application settings. This way, i am able to mark the user as an InActive one, making this status appear correctly in JIRA, mainly due to Crowd is still unable to query / get the active directory account's inactivity status into Crowd. So your approach won't work in my organization maybe due to its size and its strict policy over active directory maintenance work not delegated to JIRA application admins. Thanks for your answer. Cheers.

Like 1 person likes this

Great idea, and no need to create new group - we all already have a group for that. You can use it to filter in Jira interface, not only in API:

  • assignee not in (membersOf("jira-software-users"))
Like 1 person likes this

@Vilnius Ramanauskas inactive users aren't removed from the jira-software-users group by default so this will not work unless the admin manually remove users from the jira-software-users group whenever they deactivate a user.

He should do that, Jira counts jira-software-users towards your license tier. You'll end up paying more if being lazy :)

@Vilnius Ramanauskas that's not accurate, Jira doesn't count jira-software-users towards your license. Jira counts active / inactive status towards your license. You can have (and we do) more users in your jira-software-users group than users you will be billed for. See Remove users from your monthly subscription

Like 1 person likes this

Although this is closed this solution might help someone else - devised using the answers above.

No need to add to a group as the access-jira group can be used

(assignee not in (membersof(access-jira)) OR reporter not in (membersof(access-jira)) ) AND statusCategory != done

 

eg, assignee or reporter of currently open issues are currently not active users.

Thanks @Emma Baxter. Best solution so far. Just need more votes! :)

@Emma Baxter this solution won't work unless you have a group called acces-jira and is automatically updated whenever a user become inactive. Maybe older Jira accounts have a this group but our account doesn't have it.

Not working with that group

JQL tricks has an inactiveUsers() function, or you could add it relatively trivially as your own function using https://jamieechlin.atlassian.net/wiki/display/GRV/Scripted+JQL+Functions.

Update: As @Matt Doar [ServiceRocket] points out below (thanks Matt), ScriptRunner has an inactiveUsers() function: https://scriptrunner.adaptavist.com/latest/jira/jql-functions.html#_inactiveusers

Thanks Jamie. However i can't find your page via your link. Can you provide a new link?

Nevermind. I found your plugin here: https://marketplace.atlassian.com/plugins/com.j-tricks.jql-plugin

Thanks. I'll look into it.

Not my plugin... happy to give a referral to the "competition" though ;-)

Like 1 person likes this

You can still provide me with your plugin link though. I am open to anything right now. :) Thanks Jamie.

@Kyle: just remove the dot (".") at the end of the URL Jamie has provided

So desu ne... Thanks a bunch.

This thread is a very good question. All too often, a user may get marked as inactive but still has unresolved issues assigned to them. Then, those issues may cease appearing in certain dashboard etc due to the assignee being inactive. Also, you can't just write a query to lookup Issues that are assigned to inactive users ... because inactive usernames won't show in the JQL auto-suggest options.

So, thanks @Jamie for mentioning the JQLtricks plugin. I happen to have that, and in seconds I had my answer by using:

assignee in (inactiveUsers()) and resolution in (Unresolved)

This is a massive jira instance (so don't be shocked when I say): I can now see >400 issues assigned to inactive users. Yikes, thats not good, but at least I can measure and now go manage that :) Thanks folks.

Adding a comment here since this page comes up early in Google.

ScriptRunner now has an inactiveUsers() function too

https://scriptrunner.adaptavist.com/latest/jira/jql-functions.html#_inactiveusers

No plugin required: "assignee not in (membersOf("jira-users"))" @Vilnius Ramanauskas wins.

Perfect, .... Unless your system is integrated with AD/LDAP, in which case you need to jump through some hoops to identify the users in the first place in order to remove them from jira-users. 

True, if you allow the AD/LDAP to fully manage the user management.  Ours is integrated with LDAP, but ours is set up where we manage the users internally and just use LDAP for authentication only, so every user we want to have access we have to create and manage an account in JIRA, just leave the password stuff to the LDAP integration.  I think we were too worried about the history being broken once the user was removed.  OP didn't really specify the disappearing user problem.

Just search for Assignee = {UserID}. Where {UserID} need to be replaced with the user ID of the inactive user.

Although the inactive user will not come up in JQL autocomplete but it's still searchable and there are many ways to find the userID of inactive users, here's 2 ways:

If you're the admin: go to: Site Administration > Users > Click on user name > User ID will be in your browser's URL 

Example: https://samplecompany.atlassian.net/admin/users/view?username=userID

If you're not the Admin: you can find the userID by clicking anywhere on their name (comment, mention, etc'...) > go to their profile page, the userID will be in the URL in the browser's address bar...

example: https://company.atlassian.net/people/4aa826dd544d8c1a0c124ef1

Then you can make a JQL query like: assignee = 4aa826dd544d8c1a0c124ef1

Hope this helps.

JQL Query:

assignee = X AND resolution is EMPTY

where, X= Inactive/active user whom you search for. This query list all the related tickets assigned to that person.
 

Just use assignee in (inactiveUsers())

I get this error: "Unable to find JQL function 'inactiveUsers()'Screen Shot 2018-12-25 at 10.51.28 AM.png

You need the ScriptRunner Add-on for this

Use the free Addon Jira Misc Custom Fields

Create a new calculated textfield "Assignee.active" with

<!-- @@Formula: (issue.get("assignee").Active != null ? issue.get("assignee").Active : 0) -->

You can search in JQL for this new field, which Returns false when a user is marked inactive

Use this one to set the unassigned ones to 0

 

<!-- @@Formula:
if (issue.get("assignee") == null)
return 0;

issue.get("assignee").Active
-->

its not free anymore...

Hi @Kyle,
 If you are using Jira Server you can install the FREE app called JQL Booster Pack throught Atlassian Marketplace and use the requested functionality.

After install this app, you should be able to create a query using inactiveUsers() function, that will allow you to find issues reported/assigned to inactive users.

 

You can find the complete information about this JQL function at its Function Reference page.

Kind regards.

Thanks @Jack Nolddor [Sweet Bananas]. Our experience with free apps in Atlassian market place isn't great. We do not want to depend on free apps as they can become commercial apps.

It is entirely understandable.

Nice, I  appreciate it to be free!
I hope it stays this way.... :-)

Suggest an answer

Log in or Sign up to answer
Community showcase
Published 8 hours ago in Jira

How you can achieve compact and easy-to-maintain workflows in your JIRA( Server)

This approach requires you to have the JIRA administrative rights. The main aim of this article is to help you achieve an organized, easy-to-maintain workflows in your JIRA instance thereby, reducin...

104 views 0 0
Read article

Atlassian User Groups

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

Find a group

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

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you