issue edit, pr edit: Support special non-interactive (flags) assignee name @copilot#10991
Conversation
- Introduced CopilotReplacer to handle `@copilot` mentions in assignee lists.
andyfeller
left a comment
There was a problem hiding this comment.
Changes seem straight forward. Aside from other places where @copilot changes might apply, I wanted to ask about whether you planned for acceptance testing changes in the final PR.
- Added tests for handling nil and empty slices in the Copilot replacer. - Simplified test structure by removing unnecessary wantErr field.
pkg/cmd/pr/edit/edit.go
Outdated
There was a problem hiding this comment.
question: should we mention that @copilot at this time does not work with --add-reviewer or --remove-reviewer flags in support of https://github.blog/changelog/2024-10-29-github-copilot-code-review-in-github-com-private-preview/?
There was a problem hiding this comment.
I wonder if we should actively error with a specific error message if someone uses @copilot in this use case even.
There was a problem hiding this comment.
question: should we mention that
@copilotat this time does not work with--add-revieweror--remove-reviewerflags in support of https://github.blog/changelog/2024-10-29-github-copilot-code-review-in-github-com-private-preview/?
I don't have a strong opinion on this one - though I loosely think not stating that it is supported might be enough. Again, I don't have a strong opinion, so I'm happy to add it if that is where you are leaning. Let me know 😁
I wonder if we should actively error with a specific error message if someone uses
@copilotin this use case even.
Here's the current error experience:
❯ gh pr edit 2 --add-reviewer "@copilot"
'@copilot' not found
There was a problem hiding this comment.
suggest: Middle of the road might be adding a line in the long description, which we can point users to it if they try to use the feature and don't understand "@copilot not found" really means "You cannot use @copilot as a reviewer currently"
There was a problem hiding this comment.
What do you think about this:
| The %[1]s--add-assignee%[1]s and %[1]s--remove-assignee%[1]s flags both support | |
| the following special values: | |
| - %[1]s@me%[1]s: assign or unassign yourself | |
| - %[1]s@copilot%[1]s: assign or unassign Copilot | |
| The %[1]s--add-assignee%[1]s and %[1]s--remove-assignee%[1]s flags both support | |
| the following special values: | |
| - %[1]s@me%[1]s: assign or unassign yourself | |
| - %[1]s@copilot%[1]s: assign or unassign Copilot | |
| The %[1]s--add-reviewer%[1]s and %[1]s--remove-reviewer%[1]s flags do not support | |
| these special values. |
Since I realized @me is also not supported.
gh pr edit 3 --add-reviewer @me
'@me' not found
3a8cdda
into
kw/gh-cli-epic-900-actors-are-assignable
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [cli/cli](https://github.com/cli/cli) | minor | `v2.72.0` -> `v2.73.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>cli/cli (cli/cli)</summary> ### [`v2.73.0`](https://github.com/cli/cli/releases/tag/v2.73.0): GitHub CLI 2.73.0 [Compare Source](cli/cli@v2.72.0...v2.73.0) ####Copilot Coding Agent Support You can now assign issues to GitHub Copilot directly from `gh`, just as you would assign them to a teammate. Use `gh issue edit <number> --add-assignee @​copilot` to assign the GitHub Copilot coding agent, and Copilot will work in the background to understand the issue, propose a solution, and open a pull request when it's ready for your review. If you run `gh issue edit` interactively, `Copilot (AI)` will be displayed as a potential assignee. This feature is available for GitHub Copilot Pro+ and Copilot Enterprise subscribers. For more details, refer to [the full changelog post for Copilot coding agent](https://github.blog/changelog/2025-05-19-github-copilot-coding-agent-in-public-preview/). #### What's Changed ##### ✨ Features - Copilot is assignable to issues and pull requests with `issue edit` and `pr edit` by [@​BagToad](https://github.com/BagToad) in cli/cli#10992 - `gh issue edit`: actors are assignable to issues by [@​BagToad](https://github.com/BagToad) in cli/cli#10960 - `gh pr edit`: Assign actors to pull requests by [@​BagToad](https://github.com/BagToad) in cli/cli#10984 - `issue edit`, `pr edit`: handle display names in interactive assignee editing by [@​BagToad](https://github.com/BagToad) in cli/cli#10990 - `issue edit`, `pr edit`: Support special non-interactive (flags) assignee name `@copilot` by [@​BagToad](https://github.com/BagToad) in cli/cli#10991 - \[gh issue/pr comment] Add support for last comment delete for issues and MRs by [@​sinansonmez](https://github.com/sinansonmez) in cli/cli#10596 - \[gh issue view] Expose `closedByPullRequestsReferences` JSON field by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10941 - Accessible prompter always displays selection defaults in a format readable by a screen reader by [@​BagToad](https://github.com/BagToad) in cli/cli#10937 ##### 🐛 Fixes - Fix `StatusJSONResponse` usage by [@​babakks](https://github.com/babakks) in cli/cli#10810 - Fix panic on `gh pr view 0` by [@​nopcoder](https://github.com/nopcoder) in cli/cli#10729 - Fix flakey test for accessible prompter by [@​BagToad](https://github.com/BagToad) in cli/cli#10918 - Fix accessible prompter flaky tests by [@​babakks](https://github.com/babakks) in cli/cli#10977 - Handle missing archive URLs on release download by [@​williammartin](https://github.com/williammartin) in cli/cli#10947 - Fix bug when removing all MR reviewers by [@​babakks](https://github.com/babakks) in cli/cli#10975 ##### 📚 Docs & Chores - Feature detect v1 projects on pr view by [@​williammartin](https://github.com/williammartin) in cli/cli#10821 - Feature detect v1 projects on non-interactive pr create by [@​williammartin](https://github.com/williammartin) in cli/cli#10909 - Feature detect v1 projects on web mode pr create by [@​williammartin](https://github.com/williammartin) in cli/cli#10911 - Feature detect v1 projects on interactive `pr create` by [@​williammartin](https://github.com/williammartin) in cli/cli#10915 - Feature detect v1 projects on pr edit by [@​williammartin](https://github.com/williammartin) in cli/cli#10942 - Move predicate type filtering in `gh attestation verify` by [@​malancas](https://github.com/malancas) in cli/cli#10670 - Improve assertion for disabled echo mode by [@​babakks](https://github.com/babakks) in cli/cli#10927 #####
Dependencies - chore(deps): bump actions/attest-build-provenance from 2.2.2 to 2.3.0 by [@​dependabot](https://github.com/dependabot) in cli/cli#10886 - chore(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.6 to 2.0.7 by [@​dependabot](https://github.com/dependabot) in cli/cli#10869 #### What's Changed #### New Contributors - [@​sinansonmez](https://github.com/sinansonmez) made their first contribution in cli/cli#10596 - [@​nopcoder](https://github.com/nopcoder) made their first contribution in cli/cli#10729 **Full Changelog**: cli/cli@v2.72.0...v2.73.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNS4wIiwidXBkYXRlZEluVmVyIjoiNDAuMTUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
…` and `--remove-assignee` Following up on cli#10991, this updates the help text for `issue edit` and `pr edit`'s `--add-assignee` and `--remove-assignee` options to mention that you can use `@copilot`. This is already mentioned in the command-level help text, but not at the argument level, whereas the `@me` macro is.
…` and `--remove-assignee` (#11056) * Document support for `@copilot` in `gh [pr|issue] edit --add-assignee` and `--remove-assignee` Following up on #10991, this updates the help text for `issue edit` and `pr edit`'s `--add-assignee` and `--remove-assignee` options to mention that you can use `@copilot`. This is already mentioned in the command-level help text, but not at the argument level, whereas the `@me` macro is. * Apply suggestion from @babakks Co-authored-by: Babak K. Shandiz <babakks@github.com> * Apply suggestion from @babakks Co-authored-by: Babak K. Shandiz <babakks@github.com> --------- Co-authored-by: Babak K. Shandiz <babakks@github.com>

This introduces functionality to handle
@copilotmentions in assignee flag lists by replacing them with the appropriate login.