Support removing issue types - #2999
Conversation
There was a problem hiding this comment.
Pull request overview
Adds empty-string support for clearing issue types in consolidated and granular issue tools.
Changes:
- Sends
"type": nullwhen clearing an issue type. - Bypasses form deferral to preserve explicit clears.
- Adds exact request-body tests and updates generated documentation.
Show a summary per file
| File | Description |
|---|---|
README.md |
Documents issue-type removal. |
pkg/github/issues.go |
Implements consolidated clear behavior. |
pkg/github/issues_test.go |
Tests set, omit, clear, and form bypass. |
pkg/github/issues_granular.go |
Implements granular clear behavior. |
pkg/github/granular_tools_test.go |
Tests granular clear and validation. |
pkg/github/__toolsnaps__/update_issue_type.snap |
Updates granular schema snapshot. |
pkg/github/__toolsnaps__/issue_write.snap |
Updates consolidated schema snapshot. |
docs/insiders-features.md |
Updates generated insiders documentation. |
docs/feature-flags.md |
Updates generated feature documentation. |
Review details
- Files reviewed: 9/9 changed files
- Comments generated: 0
- Review effort level: Balanced
tommaso-moro
left a comment
There was a problem hiding this comment.
Suggested clears are supported by the API using {"type" {"value":null,"suggest":true}}. However, looking at issues_granolar.go it seems to be that {"issue_type":"","is_suggestion":true} currently sends {"type":null} and clears the type immediately? Is this intentional or should we preserve the suggestion flag here?
|
1✨✨✨✨✨✨✨✨✨✨✨✨
…On Wed, Aug 5, 2026, 5:17 PM Tommaso Moro ***@***.***> wrote:
***@***.**** commented on this pull request.
Suggested clears are supported by the API using {"type"
{"value":null,"suggest":true}}. However, looking at issues_granolar.go it
seems to be that {"issue_type":"","is_suggestion":true} currently sends
{"type":null} and clears the type immediately? Is this intentional or
should we preserve the suggestion flag here?
—
Reply to this email directly, view it on GitHub
<#2999?email_source=notifications&email_token=B5TQM2MVYDVTZYZ2PZKVXB35IM3GJA5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTIOBWGUYDIOBTGMZ2M4TFMFZW63VHMNXW23LFNZ2KKZLWMVXHJLDGN5XXIZLSL5RWY2LDNM#pullrequestreview-4865048333>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/B5TQM2P6XPSYP2IFWBVJ6L35IM3GJAVCNFSNUABFKJSXA33TNF2G64TZHM4TIMRXG4YTEOBUHNEXG43VMU5TKMBVGA4DCMZYGMY2C5QC>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
2666a34 to
3611fb2
Compare
|
Looking at |
|
@tommaso-moro Very nice catch. Adding a validation to prevent this from making the API call accompanied with a test |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
Summary
Allow consolidated
issue_writeand granularupdate_issue_typeto remove an issue type with explicit JSONnull.Why
Related: github/plan-track-agentic-org#193
What changed
anyOfschemas (stringwithminLength: 1ornull), avoiding nullable type arrays for client compatibility noted in fix: use anyOf instead of nullable type array #325.issue-writeMCP App: omitted values may use existing-issue prefill, strings select a type, and explicit null or “Clear selection” submits null."type": nulland render schema unions asstring | nullin generated docs.MCP impact
Prompts tested (tool changes only)
Security / limits
Tool renaming
deprecated_tool_aliases.goNote: if you're renaming tools, you must add the tool aliases. For more information on how to do so, please refer to the official docs.
Lint & tests
./script/lint./script/testFocused Go tests cover omitted, string, null, empty-string rejection, exact PATCH JSON, granular suggestions, and metadata rejection without a request. The MCP App passes typecheck and production build. Existing live validation confirmed set and clear through the built server; separate backend/live validation confirmed suggested null removal clears immediately with no pending suggestion.
Docs