Open rogerzxu opened 4 years ago
Same here, is this the expected behavior? Teams are not supported as reviewers?
A couple of weeks ago, I went and tested every permutation I could thing of for this:
None of these appeared to work.
I had tested it to work with teams around March but isn't working anymore 😞 .
- org/team
was the format that worked for me.
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.
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/orteam_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-assigneesI 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 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 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
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.
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.
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
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
@kentaro-m This is a really important feature. Can you please let us know when this feature can be expected approximately?
+1 need possibility to assign team as reviewer
I've worked around this by using CODEOWNERS
and setting branch protection rule to require review from them.
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 }}'"
@amondnet interesting solution indeed.
Quick question, why using a PAT instead of GITHUB_TOKEN?
@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 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 }}
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.