Skip to main content

Default Assignee

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

Auto-assign Issues to Project Owners

  1. Define a groovy script to return project owners

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

    Assignee 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 editContext = EditContext.get()

    def defaultAssignee

    if (editContext != null)
    defaultAssignee = moduleLeaders[editContext.getInputValue("Module")]

    if (defaultAssignee != null)
    return [defaultAssignee]
    else
    return []
  3. Modify custom issue field Assignee to use groovy script defined above as default value:

    Default Assignee Default Value