Reporter is not able to assign reviewer in an MR

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Summary

Users with the Reporter role are not able assign a reviewer to an MR.

Steps to reproduce

  1. Add user to be a member of a project with the Reporter role (either as a direct member of the project, a member via the Reporter role in an upstream subgroup or group, or even using the Share a group with another group feature)
  2. As this Reporter user, try to assign a reviewer to an existing MR in the project, or alternatively, create a new MR and try to assign a reviewer.

What is the current behavior?

Reporter users can't see the edit buttons within the UI to add/change the reviewer of an MR. The /assign_reviewer quick action also won't appear or be usable.

What is the desired behavior?

Reporters should be able to assign a reviewer to an MR as indicated in the current Role permissions matrix.

When this issue was originally raised, there was a mistake in the Role permissions matrix which implied that Reviewers should have permissions to assign MR reviewers. This was incorrect and has since been fixed per - !139546 (merged) + #364702 (comment 1690617159)

In this case, this issue is now intended as a feature request to allow users with the Reviewer role to assign MR reviewers.

Results of GitLab environment info

This issue was originally raised with GitLab 15.0.1 being the version in use, however the behavior can still be replicated in 16.6.0

Expand for output related to GitLab environment info
\`\`\`bash System information System: Current User: git Using RVM: no Ruby Version: 2.7.5p203 Gem Version: 3.1.4 Bundler Version:2.2.33 Rake Version: 13.0.6 Redis Version: 6.2.6 Sidekiq Version:6.4.0 Go Version: unknown GitLab information Version: 15.0.1 Revision: 39b217000de Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: PostgreSQL DB Version: 12.10 URL: https://XXXX.com HTTP Clone URL: https://XXXX.com/some-group/some-project.git SSH Clone URL: ssh://git@XXXX.com/some-group/some-project.git Using LDAP: no Using Omniauth: yes Omniauth Providers: GitLab Shell Version: 14.3.0 Repository storage paths: - default: /var/opt/gitlab/git-data/repositories GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell \`\`\`

Results of GitLab application Check

Expand for output related to the GitLab application check
```bash
Checking GitLab subtasks ...

Checking GitLab Shell ...

GitLab Shell: ... GitLab Shell version >= 14.3.0 ? ... OK (14.3.0)
Running /opt/gitlab/embedded/service/gitlab-shell/bin/check
Internal API available: OK
Redis available via internal API: OK
gitlab-shell self-check successful

Checking GitLab Shell ... Finished

Checking Gitaly ...

Gitaly: ... default ... OK

Checking Gitaly ... Finished

Checking Sidekiq ...

Sidekiq: ... Running? ... yes
Number of Sidekiq processes (cluster/worker) ... 1/1

Checking Sidekiq ... Finished

Checking Incoming Email ...

Incoming Email: ... Checking Reply by email ...

IMAP server credentials are correct? ... Checking service@XXXX.com
yes
Mailroom enabled? ... skipped
MailRoom running? ... skipped

Checking Reply by email ... Finished


Checking Incoming Email ... Finished

Checking LDAP ...

LDAP: ... LDAP is disabled in config/gitlab.yml

Checking LDAP ... Finished

Checking GitLab App ...

Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config up to date? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... yes
Systemd unit files or init script exist? ... skipped (omnibus-gitlab has neither init script nor systemd units)
Systemd unit files or init script up-to-date? ... skipped (omnibus-gitlab has neither init script nor systemd units)
Projects have namespace: ... 
2/1 ... yes
2/2 ... yes
4/3 ... yes
4/6 ... yes
4/7 ... yes
4/8 ... yes
6/9 ... yes
2/10 ... yes
2/11 ... yes
2/13 ... yes
6/14 ... yes
2/15 ... yes
9/16 ... yes
4/17 ... yes
4/18 ... yes
6/19 ... yes
2/20 ... yes
9/21 ... yes
4/22 ... yes
4/23 ... yes
6/24 ... yes
4/25 ... yes
2/26 ... yes
4/28 ... yes
4/29 ... yes
2/30 ... yes
2/31 ... yes
2/32 ... yes
2/33 ... yes
4/35 ... yes
4/36 ... yes
2/37 ... yes
4/38 ... yes
2/39 ... yes
2/40 ... yes
10/41 ... yes
10/42 ... yes
2/44 ... yes
2/46 ... yes
2/47 ... yes
2/48 ... yes
2/49 ... yes
2/50 ... yes
2/51 ... yes
2/52 ... yes
6/53 ... yes
2/54 ... yes
2/55 ... yes
2/56 ... yes
6/57 ... yes
2/58 ... yes
6/59 ... yes
6/60 ... yes
2/61 ... yes
2/62 ... yes
3/63 ... yes
2/64 ... yes
2/65 ... yes
2/66 ... yes
2/67 ... yes
2/68 ... yes
2/69 ... yes
2/70 ... yes
2/71 ... yes
2/72 ... yes
6/73 ... yes
2/74 ... yes
2/75 ... yes
2/76 ... yes
6/77 ... yes
6/78 ... yes
6/79 ... yes
2/81 ... yes
6/82 ... yes
6/83 ... yes
6/84 ... yes
6/85 ... yes
2/86 ... yes
2/88 ... yes
2/89 ... yes
2/90 ... yes
2/91 ... yes
2/92 ... yes
6/93 ... yes
13/94 ... yes
6/95 ... yes
2/96 ... yes
2/97 ... yes
2/98 ... yes
2/99 ... yes
6/101 ... yes
6/102 ... yes
2/103 ... yes
4/104 ... yes
13/105 ... yes
13/106 ... yes
2/107 ... yes
2/108 ... yes
2/109 ... yes
2/110 ... yes
1/111 ... yes
2/112 ... yes
2/113 ... yes
6/114 ... yes
2/115 ... yes
2/116 ... yes
2/117 ... yes
22/119 ... yes
2/120 ... yes
22/121 ... yes
2/122 ... yes
22/124 ... yes
22/125 ... yes
22/126 ... yes
22/127 ... yes
22/128 ... yes
22/129 ... yes
22/130 ... yes
22/131 ... yes
22/132 ... yes
22/133 ... yes
22/134 ... yes
22/135 ... yes
22/136 ... yes
22/137 ... yes
22/138 ... yes
22/139 ... yes
22/140 ... yes
2/141 ... yes
22/142 ... yes
2/143 ... yes
22/144 ... yes
22/145 ... yes
22/146 ... yes
22/147 ... yes
22/148 ... yes
22/149 ... yes
2/150 ... yes
2/151 ... yes
22/152 ... yes
2/154 ... yes
46/155 ... yes
2/156 ... yes
2/157 ... yes
22/158 ... yes
2/159 ... yes
22/161 ... yes
22/162 ... yes
6/163 ... yes
6/164 ... yes
22/165 ... yes
2/166 ... yes
22/167 ... yes
22/168 ... yes
22/169 ... yes
22/170 ... yes
22/171 ... yes
22/172 ... yes
22/173 ... yes
22/174 ... yes
22/175 ... yes
22/177 ... yes
22/178 ... yes
22/179 ... yes
2/181 ... yes
22/182 ... yes
6/187 ... yes
4/188 ... yes
2/189 ... yes
22/190 ... yes
2/191 ... yes
22/192 ... yes
22/194 ... yes
6/196 ... yes
6/197 ... yes
6/199 ... yes
6/200 ... yes
6/201 ... yes
6/202 ... yes
2/203 ... yes
6/206 ... yes
37/207 ... yes
35/208 ... yes
34/209 ... yes
2/210 ... yes
35/211 ... yes
35/212 ... yes
35/213 ... yes
35/214 ... yes
37/215 ... yes
35/216 ... yes
35/217 ... yes
35/218 ... yes
35/219 ... yes
22/220 ... yes
22/221 ... yes
22/222 ... yes
22/223 ... yes
38/224 ... yes
2/225 ... yes
35/226 ... yes
2/227 ... yes
2/228 ... yes
2/229 ... yes
25/230 ... yes
37/231 ... yes
41/232 ... yes
35/234 ... yes
35/235 ... yes
41/236 ... yes
6/237 ... yes
6/238 ... yes
35/239 ... yes
35/242 ... yes
41/246 ... yes
35/247 ... yes
46/248 ... yes
46/249 ... yes
41/250 ... yes
46/251 ... yes
46/252 ... yes
46/253 ... yes
35/254 ... yes
41/255 ... yes
22/256 ... yes
41/257 ... yes
51/259 ... yes
54/263 ... yes
54/264 ... yes
17/272 ... yes
51/275 ... yes
54/276 ... yes
51/277 ... yes
22/278 ... yes
5/280 ... yes
54/281 ... yes
51/282 ... yes
51/283 ... yes
63/286 ... yes
35/287 ... yes
51/288 ... yes
64/289 ... yes
6/291 ... yes
54/292 ... yes
5/297 ... yes
54/298 ... yes
51/299 ... yes
51/300 ... yes
54/301 ... yes
68/302 ... yes
2/303 ... yes
54/305 ... yes
69/306 ... yes
54/307 ... yes
54/308 ... yes
68/317 ... yes
68/318 ... yes
72/319 ... yes
68/324 ... yes
68/329 ... yes
68/334 ... yes
72/335 ... yes
68/336 ... yes
68/337 ... yes
68/338 ... yes
2/340 ... yes
68/341 ... yes
54/342 ... yes
54/343 ... yes
79/344 ... yes
6/345 ... yes
80/350 ... yes
54/352 ... yes
80/353 ... yes
69/354 ... yes
69/355 ... yes
69/356 ... yes
67/357 ... yes
46/358 ... yes
69/359 ... yes
54/360 ... yes
78/361 ... yes
74/362 ... yes
87/363 ... yes
87/364 ... yes
87/365 ... yes
51/366 ... yes
54/368 ... yes
60/369 ... yes
69/370 ... yes
69/371 ... yes
41/372 ... yes
107/373 ... yes
22/374 ... yes
76/375 ... yes
91/376 ... yes
98/377 ... yes
51/378 ... yes
46/379 ... yes
96/380 ... yes
67/381 ... yes
22/382 ... yes
46/383 ... yes
46/384 ... yes
54/385 ... yes
67/386 ... yes
67/387 ... yes
46/388 ... yes
54/389 ... yes
54/390 ... yes
22/391 ... yes
54/392 ... yes
54/394 ... yes
110/395 ... yes
46/396 ... yes
111/397 ... yes
22/398 ... yes
54/399 ... yes
119/400 ... yes
72/403 ... yes
54/404 ... yes
54/405 ... yes
54/406 ... yes
129/408 ... yes
22/409 ... yes
107/410 ... yes
46/411 ... yes
69/412 ... yes
54/414 ... yes
80/416 ... yes
54/417 ... yes
80/418 ... yes
67/419 ... yes
80/420 ... yes
80/421 ... yes
80/423 ... yes
22/424 ... yes
22/425 ... yes
22/426 ... yes
22/427 ... yes
80/428 ... yes
80/429 ... yes
80/430 ... yes
120/431 ... yes
54/432 ... yes
22/433 ... yes
485/434 ... yes
485/435 ... yes
485/436 ... yes
22/437 ... yes
Redis version >= 5.0.0? ... yes
Ruby version >= 2.7.2 ? ... yes (2.7.5)
Git user has default SSH configuration? ... yes
Active users: ... 30
Is authorized keys file accessible? ... yes
GitLab configured to store new projects in hashed storage? ... yes
All projects are in hashed storage? ... yes

Checking GitLab App ... Finished


Checking GitLab subtasks ... Finished
```

Edited by 🤖 GitLab Bot 🤖