-
Notifications
You must be signed in to change notification settings - Fork 7.7k
issue edit, pr edit: Support special non-interactive (flags) assignee name @copilot
#10991
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
issue edit, pr edit: Support special non-interactive (flags) assignee name @copilot
#10991
Conversation
- Introduced CopilotReplacer to handle `@copilot` mentions in assignee lists.
babakks
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 🎉
andyfeller
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
| 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated in 748afb6
andyfeller
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 <[email protected]> * Apply suggestion from @babakks Co-authored-by: Babak K. Shandiz <[email protected]> --------- Co-authored-by: Babak K. Shandiz <[email protected]>
snstgithub
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- [ ]

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