|
20 | 20 | - Assign yourself as the reviewer for this issue/PR |
21 | 21 | - Removes any existing reviewer assignment |
22 | 22 |
|
23 | | - @guidelines-bot /release [@username] [reason] |
24 | | - - Release your assignment from this issue/PR (or someone else's with triage+ permission) |
| 23 | + @guidelines-bot /release [reason] |
| 24 | + - Release your own assignment from this issue/PR |
| 25 | + - Leaves this issue/PR unassigned |
| 26 | +
|
| 27 | + @guidelines-bot /release @username [reason] |
| 28 | + - Release someone else's assignment from this issue/PR (triage+ required) |
25 | 29 | - Does NOT auto-assign the next reviewer (use /pass for that) |
26 | 30 |
|
27 | 31 | @guidelines-bot /rectify |
|
96 | 100 | COMMANDS = { |
97 | 101 | "pass": "Pass this review to next in queue", |
98 | 102 | "away": "Step away from queue until date (YYYY-MM-DD)", |
99 | | - "release": "Release assignment (yours, or @username with triage+ permission)", |
| 103 | + "release": "Release your assignment (/release) or another's (/release @username, triage+)", |
100 | 104 | "rectify": "Reconcile this issue/PR's review state from GitHub", |
101 | 105 | "claim": "Claim this review for yourself", |
102 | 106 | "r?": "Assign a reviewer (@username or 'producers')", |
@@ -673,7 +677,8 @@ def get_issue_guidance(reviewer: str, issue_author: str) -> str: |
673 | 677 | If you need to pass this review: |
674 | 678 | - `{BOT_MENTION} /pass [reason]` - Pass just this issue to the next reviewer |
675 | 679 | - `{BOT_MENTION} /away YYYY-MM-DD [reason]` - Step away from the queue until a date |
676 | | -- `{BOT_MENTION} /release [@username] [reason]` - Release assignment (yours or someone else's with triage+ permission) |
| 680 | +- `{BOT_MENTION} /release [reason]` - Release your own assignment and leave this issue unassigned |
| 681 | +- `{BOT_MENTION} /release @username [reason]` - Release another reviewer's assignment (triage+ required) |
677 | 682 |
|
678 | 683 | To assign someone else: |
679 | 684 | - `{BOT_MENTION} /r? @username` - Assign a specific reviewer |
@@ -709,7 +714,8 @@ def get_fls_audit_guidance(reviewer: str, issue_author: str) -> str: |
709 | 714 | If you need to pass this review: |
710 | 715 | - `{BOT_MENTION} /pass [reason]` - Pass just this issue to the next reviewer |
711 | 716 | - `{BOT_MENTION} /away YYYY-MM-DD [reason]` - Step away from the queue until a date |
712 | | -- `{BOT_MENTION} /release [@username] [reason]` - Release assignment (yours or someone else's with triage+ permission) |
| 717 | +- `{BOT_MENTION} /release [reason]` - Release your own assignment and leave this issue unassigned |
| 718 | +- `{BOT_MENTION} /release @username [reason]` - Release another reviewer's assignment (triage+ required) |
713 | 719 |
|
714 | 720 | To assign someone else: |
715 | 721 | - `{BOT_MENTION} /r? @username` - Assign a specific reviewer |
@@ -753,7 +759,8 @@ def get_pr_guidance(reviewer: str, pr_author: str) -> str: |
753 | 759 | If you need to pass this review: |
754 | 760 | - `{BOT_MENTION} /pass [reason]` - Pass just this PR to the next reviewer |
755 | 761 | - `{BOT_MENTION} /away YYYY-MM-DD [reason]` - Step away from the queue until a date |
756 | | -- `{BOT_MENTION} /release [@username] [reason]` - Release assignment (yours or someone else's with triage+ permission) |
| 762 | +- `{BOT_MENTION} /release [reason]` - Release your own assignment and leave this PR unassigned |
| 763 | +- `{BOT_MENTION} /release @username [reason]` - Release another reviewer's assignment (triage+ required) |
757 | 764 |
|
758 | 765 | To assign someone else: |
759 | 766 | - `{BOT_MENTION} /r? @username` - Assign a specific reviewer |
@@ -1437,7 +1444,8 @@ def handle_commands_command() -> tuple[str, bool]: |
1437 | 1444 | f"**Pass or step away:**\n" |
1438 | 1445 | f"- `{BOT_MENTION} /pass [reason]` - Pass this review to next in queue (current reviewer only)\n" |
1439 | 1446 | f"- `{BOT_MENTION} /away YYYY-MM-DD [reason]` - Step away from queue until a date\n" |
1440 | | - f"- `{BOT_MENTION} /release [@username] [reason]` - Release assignment (yours or someone else's with triage+ permission)\n\n" |
| 1447 | + f"- `{BOT_MENTION} /release [reason]` - Release your own assignment and leave this unassigned\n" |
| 1448 | + f"- `{BOT_MENTION} /release @username [reason]` - Release another reviewer's assignment (triage+ required)\n\n" |
1441 | 1449 | f"**Assign reviewers:**\n" |
1442 | 1450 | f"- `{BOT_MENTION} /r? @username` - Assign a specific reviewer\n" |
1443 | 1451 | f"- `{BOT_MENTION} /r? producers` - Request the next reviewer from the queue\n" |
@@ -1572,10 +1580,19 @@ def handle_release_command(state: dict, issue_number: int, |
1572 | 1580 | # Trying to release self when not assigned |
1573 | 1581 | if tracked_reviewer: |
1574 | 1582 | return (f"❌ @{comment_author} is not the current reviewer. " |
1575 | | - f"Current reviewer: @{tracked_reviewer}"), False |
| 1583 | + f"Current reviewer: @{tracked_reviewer}\n\n" |
| 1584 | + f"If you meant to release @{tracked_reviewer}, use " |
| 1585 | + f"`{BOT_MENTION} /release @{tracked_reviewer}` " |
| 1586 | + f"(triage+ required)."), False |
1576 | 1587 | elif current_assignees: |
1577 | | - return (f"❌ @{comment_author} is not assigned to this issue/PR. " |
1578 | | - f"Current assignee(s): @{', @'.join(current_assignees)}"), False |
| 1588 | + response = (f"❌ @{comment_author} is not assigned to this issue/PR. " |
| 1589 | + f"Current assignee(s): @{', @'.join(current_assignees)}") |
| 1590 | + if len(current_assignees) == 1: |
| 1591 | + current_assignee = current_assignees[0] |
| 1592 | + response += (f"\n\nIf you meant to release @{current_assignee}, use " |
| 1593 | + f"`{BOT_MENTION} /release @{current_assignee}` " |
| 1594 | + f"(triage+ required).") |
| 1595 | + return response, False |
1579 | 1596 | else: |
1580 | 1597 | return "❌ No reviewer is currently assigned to release.", False |
1581 | 1598 |
|
|
0 commit comments