Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Assigning an Issue Preserving The User Load

Info
titleRequired apps

Power Scripts™ for Jira

Level: BASIC

Info
titleAvailability

This feature is available for Jira server and cloud deployment options.

Problem

Assigning an issue preserving the user load.

Solution

1. Adding a SIL Post Function

...

Button handy
blanktrue
color#0052CC
nameSend Feedback
linkhttps://docs.google.com/forms/d/e/1FAIpQLScmToBe3vynAlb5fdKwCGxYqnTbDc66sIBgeecG2BuFDuHc7g/viewform?entry.2002826954=Assign+an+issue+while+maintaining+the+user+load+-+15482938
widthauto

Problem

You want to assign new issues to the user with the least number of tasks to balance the workload across the team.

Solution

Note

This recipe assumes that you already have a project and a workflow associated with it in your Jira installation. If

...

not, go to the Jira documentation to find out how to do

...

this.

Now create draft for the workflow and go to 'Create' transition.

Let's add a new postfunction. Under the "Post-functions" tab, click "Add" and choose "(k) SIL™ Post-function".

Image Removed

...

titleInfo

Add a SIL post function

  1. Create a draft workflow.

  2. Go to the Create transition.

  3. On the Post Functions tab, select the Add checkbox.

  4. Select (k) SIL Post-function and click Add.

Image Added

For more information on configuring workflows

...

, go to the Atlassian documentation.

Write the code

After

...

you’ve added the post function,

...

the user interface is displayed.

Enter a name for your program. This is used in the name of the file where the program

...

is saved. For more examples, go to our documentation on writing condition validators and post functions.

To assign an issue while also maintaining the user load,

...

enter the following code

...

.

Code Block
string[] prjMembers = projectMembers(project);
string minUser;
number minIssues = -1;
number issuesNumber = -1;
string query = "project = " + project + " AND status in ('Open', 'In Progress', 'Reopened') AND assignee = ";
string jql;
 
for (string user in prjMembers) {
  jql = query + user;
  issuesNumber = arraySize(selectIssues(jql));
  if ((minIssues == -1) || (issuesNumber < minIssues)) {
    minIssues = issuesNumber;
    minUser = user;
  }
}
 
assignee = minUser;

...

Click

...

Add

...

.

...

Image Added
Note

...

...

It is recommended that you move

...

the SIL™

...

post functions after all other post functions.

...

To do this, click Move Down

...

until the SIL™ post functions reach the bottom of the post functions list.

...

Test the code

...

Publish your draft workflow

...

to activate it.

To test the

...

post function, create a new issue.

...

Complete the required fields and click

...

Create

...

. The issue

...

is assigned to the user with the

...

smallest number of tasks.

...

4. Assigning issue randomly to project users example

...

Example

This is an example of how you can randomly assign an issue to project users.

...

To assign the issue randomly,

...

enter the following code and make sure to use the random function

...

.

Code Block
string[] prjMembers = projectMembers(project);
number n = arraySize(prjMembers);
 
if (n > 0) {
 assignee = arrayGetElement(prjMembers, random(n));
} else {
 assignee = projectPM(project);
}

See also

...

Table of Contents

Table of Contents