Skip to main content

Default Assignee

This tutorial explains how to specify default assignees of issues via some example setups.

Note: OneDev ships with a multi-valued Assignees field (type User, Allow Multiple enabled). Scripts used as its default value should return a list of user login names.

Auto-assign Issues to Project Owners

  1. Define a groovy script to return all project owners. Since Assignees is multi-valued, the script returns a list of login names:

    Groovy Script

Content of the script is as below:

import io.onedev.server.model.*

def project = Project.get()
def owners = project.userAuthorizations.findAll {it->it.role.owner}*.user.name
owners += project.groupAuthorizations.findAll {it->it.role.owner}*.group.members.flatten()*.name
return owners.unique()
  1. Modify custom issue field Assignees to use groovy script defined above as default value:

    Assignees Default Value

Auto-assign Issues to Module Leader

  1. Add custom issue field Module from issue setting of administration menu:

    Default Assignee Module

  2. Define a groovy script to return corresponding module leader based on module name

    Default Assignee Groovy Script

Script content is as below:

import io.onedev.server.util.EditContext

def moduleLeaders = ["Front End":"tommy", "Back End":"jerry"]
def defaultAssignee = moduleLeaders[EditContext.get().getInputValue("Module")]
return defaultAssignee != null ? [defaultAssignee] : []
  1. Modify custom issue field Assignees to use groovy script defined above as default value:

    Default Assignees Default Value