auto-assign-action icon indicating copy to clipboard operation
auto-assign-action copied to clipboard

Allow teams to be auto-assigned

Open rogerzxu opened this issue 5 years ago • 19 comments

This would be a nice feature to have, I tested this thinking it might work, but it unfortunately doesn't. When you try to assign a team as a reviewer, the workflow will succeed, but the PR will not have the team added as a reviewer.

rogerzxu avatar Dec 03 '19 17:12 rogerzxu

Same here, is this the expected behavior? Teams are not supported as reviewers?

gmazzo avatar May 14 '20 20:05 gmazzo

A couple of weeks ago, I went and tested every permutation I could thing of for this:

  • "@org/team"
  • "org/team"
  • team
  • "@team"
  • "The Org Team Long Name"

None of these appeared to work.

brianeclow avatar May 14 '20 23:05 brianeclow

I had tested it to work with teams around March but isn't working anymore 😞 . - org/team was the format that worked for me.

adipatel avatar May 22 '20 07:05 adipatel

I don't think assigning a PR/issue to a team would be possible. You can request a team to review a PR but you cant assign the PR to a team. The assignment can be done to users only.

You can verify that by going to the Github and trying to assign a PR to a team. It doesn't allow you to. Also, I think these API's confirm this theory:

  • This is the "pr request review" api which allow us to add reviewers and/or team_reviewers https://octokit.github.io/rest.js/v17#pulls-create-review-request

  • Whereas the "assign issue" api only allows assignees (and not something like team_assignees) https://octokit.github.io/rest.js/v17#issues-add-assignees

I hope I'm wrong but that's the conclusion I reached after some investigation.

marcel-ribeiro avatar Jun 03 '20 20:06 marcel-ribeiro

I don't think assigning a PR/issue to a team would be possible. You can request a team to review a PR but you cant assign the PR to a team. The assignment can be done to users only.

You can verify that by going to the Github and trying to assign a PR to a team. It doesn't allow you to. Also, I think these API's confirm this theory:

  • This is the "pr request review" api which allow us to add reviewers and/or team_reviewers https://octokit.github.io/rest.js/v17#pulls-create-review-request
  • Whereas the "assign issue" api only allows assignees (and not something like team_assignees) https://octokit.github.io/rest.js/v17#issues-add-assignees

I hope I'm wrong but that's the conclusion I reached after some investigation.

Actually that's not true at least for GitHub's Enterprise UI (not sure about API). Currently, you can assign a team as a reviewer, and also configure some rules in the settings to tell the strategy on how to spread it into a list of users (round-robin, etc). This also works for CODEOWNERS.

gmazzo avatar Jun 03 '20 20:06 gmazzo

@gmazzo Maybe there's a misunderstanding there.

I completely agree with you when you say:

Currently, you can assign a team as a reviewer,...

Actually that's exactly what I meant in my comment as well:

You can request a team to review a PR

What I said that wasn't possible has nothing to do with the "reviewers" of a PR. "Reviewers" and "Assignees" are 2 completely different features. Please check this post for more info

Your comment and my comment are in agreement regarding the "Reviewers" feature. What I said wasn't possible was related to the "Assignee" feature.

marcel-ribeiro avatar Jun 03 '20 20:06 marcel-ribeiro

@gmazzo Maybe there's a misunderstanding there.

I completely agree with you when you say:

Currently, you can assign a team as a reviewer,...

Actually that's exactly what I meant in my comment as well:

You can request a team to review a PR

What I said that wasn't possible has nothing to do with the "reviewers" of a PR. "Reviewers" and "Assignees" are 2 completely different features. Please check this post for more info

Your comment and my comment are in agreement regarding the "Reviewers" feature. What I said wasn't possible was related to the "Assignee" feature.

You are totally right! Sorry for the confusion

gmazzo avatar Jun 03 '20 22:06 gmazzo

When you try to assign a team as a reviewer

This issue is about assigning a team as a reviewer, not the assignee. And to be clear, that is what I was testing.

brianeclow avatar Jun 04 '20 15:06 brianeclow

I'm also having the same issue. I'm trying to assign a team as the PR reviewer but it's not working.

In the log output of the action run it says:

Added reviewers to PR #NNN: @org/team

Which is what you expect, except in the UI the team org/team isn't assigned. (real names omitted)

If you look at the GitHub REST API for adding pull request reviewers, team reviewers are supposed to be supplied separately from regular user reviewers. However, a brief dive into the code for this action shows that only the reviewers parameter is supplied - not the team_reviewers parameter, see: https://github.com/kentaro-m/auto-assign-action/blob/eea5ee2e4421078bf163287c05e72d162781b30c/src/pull_request.ts#L14

I think if you updated the action to pass any users with names like @org/team as team_reviewers instead of reviewers it would probably work as expected.

Nadock avatar Jun 16 '20 10:06 Nadock

I was trying to fix this but I have no idea how to compile the lib outputs of tsc to dist/index.js so that I can test it. I keep getting

##[warning]Validation Failed

If anyone can help me with this, that would be great: https://github.com/tmayad/auto-assign-action

TMaYaD avatar Aug 13 '20 02:08 TMaYaD

Just came across this action and thought it was a perfect solution to my needs! But it seems I am just here to add my +1 to this issue as a desired feature.

I see it's been around since December 2019, with last update in August 2020, so i'm guessing that this project may not be particularly active, which is unfortunate.

@kentaro-m Are you able to weigh in on this at all?


I believe that GitHub users aren't allowed to have a / in their name, and at least in the cases I have seen, groups will always have a / in their name. So perhaps we can split this list of users to assign into 'users' and 'groups' and pass them into the appropriate separate fields in the addUsers call as mentioned by @Nadock in https://github.com/kentaro-m/auto-assign-action/issues/12#issuecomment-644665750


I was trying to fix this but I have no idea how to compile the lib outputs of tsc to dist/index.js so that I can test it.

@TMaYaD Do the package scripts build and/or package help with this at all?

https://github.com/kentaro-m/auto-assign-action/blob/master/package.json#L10-L16

0xdevalias avatar Mar 02 '21 23:03 0xdevalias

@kentaro-m This is a really important feature. Can you please let us know when this feature can be expected approximately?

vaidehi27 avatar Jul 13 '21 14:07 vaidehi27

+1 need possibility to assign team as reviewer

runmael avatar Dec 02 '21 15:12 runmael

I've worked around this by using CODEOWNERS and setting branch protection rule to require review from them.

TMaYaD avatar Jan 18 '22 03:01 TMaYaD

name: 'Auto Assign'
on:
  pull_request:
    types: [opened, ready_for_review, reopened]

jobs:
  add-reviews:
    runs-on: ubuntu-latest
    steps:
      - uses: octokit/[email protected]
        id: request_review
        with:
          route: POST /repos/repository-owner-name/${{ github.event.repository.name }}/pulls/${{ github.event.pull_request.number  }}/requested_reviewers
          team_reviewers: '["teamA"]'
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_BOT_TOKEN }} // use PAT instead of GITHUB_TOKEN
      - run: "echo 'latest release: ${{ steps.request_review.outputs.data }}'"

amondnet avatar Dec 13 '22 06:12 amondnet

@amondnet interesting solution indeed.

Quick question, why using a PAT instead of GITHUB_TOKEN?

chabroA avatar Jan 27 '23 15:01 chabroA

@chabroA If you'd like to use GitHub teams to specify reviewers, you need to make a new PAT because the default GITHUB_TOKEN doesn't have the permission to request a review from a team.

The PAT needs to have the repo scope and the account the PAT belongs to needs to have the write permission to the repository.

amondnet avatar Jan 27 '23 18:01 amondnet

@amondnet you still shouldn't use a PAT. Use the new Github Permissions system to add more permissions to the generated GITHUB_TOKEN secret.

Add this snippet to your workflow and I expect it to work:

permissions:
  issues: write
  pull-requests: write

env:
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

ringods avatar Jun 28 '23 06:06 ringods