kentaro-m / auto-assign-action

An action which adds reviewers to the pull request when the pull request is opened.
MIT License
301 stars 91 forks source link

Allow teams to be auto-assigned #12

Open rogerzxu opened 4 years ago

rogerzxu commented 4 years ago

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.

gmazzo commented 4 years ago

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

brianeclow commented 4 years ago

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

None of these appeared to work.

adipatel commented 4 years ago

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

marcel-ribeiro commented 4 years ago

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:

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

gmazzo commented 4 years ago

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:

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.

marcel-ribeiro commented 4 years ago

@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.

gmazzo commented 4 years ago

@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

brianeclow commented 4 years ago

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.

Nadock commented 4 years ago

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.

TMaYaD commented 4 years ago

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

0xdevalias commented 3 years ago

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

vaidehi27 commented 3 years ago

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

runmael commented 2 years ago

+1 need possibility to assign team as reviewer

TMaYaD commented 2 years ago

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

amondnet commented 1 year ago
name: 'Auto Assign'
on:
  pull_request:
    types: [opened, ready_for_review, reopened]

jobs:
  add-reviews:
    runs-on: ubuntu-latest
    steps:
      - uses: octokit/request-action@v2.1.7
        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 }}'"
chabroA commented 1 year ago

@amondnet interesting solution indeed.

Quick question, why using a PAT instead of GITHUB_TOKEN?

amondnet commented 1 year ago

@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.

ringods commented 1 year ago

@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 }}