Skip to content

GitHub action that automatically assigns issues and pull requests to specified assignees.

License

Notifications You must be signed in to change notification settings

gustavofreze/auto-assign

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Auto assign

License

Overview

GitHub action that automatically assigns issues and pull requests to specified assignees.

How to use

Before configuring your .yml file, let's understand the configuration parameters.

Parameter Type Required Default Description
assignees string Yes N/A Comma-separated list of usernames. Assignments will be made to them.
github_token string Yes N/A GitHub app installation access token.
allow_self_assign boolean No True Flag that allows self-assignment to an issue or pull request.
allow_no_assignees boolean No False Flag that prevents the action from failing when there are no assignees.
assignment_options string No ISSUE Assignment options in a GitHub action related to automatically assigning issues and pull requests.

By default, write permission allows the GitHub action only to create and edit issues in public repositories. You must use admin permission or a more restricted setting for private repositories. You can generate a personal access token with the required scopes.

Working only with issues

Example of how to configure your .yml file to auto-assign users only for issues.

name: Auto assign issues

on:
  issues:
    types:
      - opened

jobs:
  run:
    runs-on: ubuntu-latest
    permissions:
      issues: write
    steps:
      - name: Assign issues
        uses: gustavofreze/[email protected]
        with:
          assignees: 'user1,user2'
          github_token: '${{ secrets.GITHUB_TOKEN }}'
          assignment_options: 'ISSUE'

Working only with pull request

Example of how to configure your .yml file to auto-assign users only for pull requests.

name: Auto assign pull requests

on:
  pull_request:
    types:
      - opened

jobs:
  run:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
      - name: Assign pull requests
        uses: gustavofreze/[email protected]
        with:
          assignees: 'user1,user2'
          github_token: '${{ secrets.GITHUB_TOKEN }}'
          assignment_options: 'PULL_REQUEST'

Working with issues and pull requests

Example of how to configure your .yml file to auto-assign users for issues and pull requests.

name: Auto assign issues and pull requests

on:
  issues:
    types:
      - opened
  pull_request:
    types:
      - opened

jobs:
  run:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      pull-requests: write
    steps:
      - name: Assign issues and pull requests
        uses: gustavofreze/[email protected]
        with:
          assignees: 'user1,user2'
          github_token: '${{ secrets.GITHUB_TOKEN }}'
          assignment_options: 'ISSUE,PULL_REQUEST'

Working with issues and pull requests in a non-restrictive way

Example of configuring your .yml file to automatically assign users for issues and pull requests.

The difference in approach consists of the following:

  • If the only assignable user were the one who started the workflow, it would be assigned.
  • No items will be assigned if users are not assignable, including those who started the workflow. However, no error will occur.
name: Auto assign issues and pull requests

on:
  issues:
    types:
      - opened
  pull_request:
    types:
      - opened

jobs:
  run:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      pull-requests: write
    steps:
      - name: Assign issues and pull requests
        uses: gustavofreze/[email protected]
        with:
          assignees: 'user1,user2'
          github_token: '${{ secrets.GITHUB_TOKEN }}'
          allow_self_assign: 'true'
          allow_no_assignees: 'true'
          assignment_options: 'ISSUE,PULL_REQUEST'

License

Auto-assign is licensed under MIT.

Contributing

Please follow the contributing guidelines to contribute to the project.