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
-
Define a groovy script to return all project owners. Since Assignees is multi-valued, the script returns a list of login names:

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()
-
Modify custom issue field Assignees to use groovy script defined above as default value:

Auto-assign Issues to Module Leader
-
Add custom issue field Module from issue setting of administration menu:

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

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] : []
-
Modify custom issue field Assignees to use groovy script defined above as default value:
