Skip to content

Support removing issue types - #2999

Draft
zwick wants to merge 5 commits into
mainfrom
zwick-clear-issue-types
Draft

Support removing issue types#2999
zwick wants to merge 5 commits into
mainfrom
zwick-clear-issue-types

Conversation

@zwick

@zwick zwick commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Allow consolidated issue_write and granular update_issue_type to remove an issue type with an explicit empty-string input.

Why

Related: github/plan-track-agentic-org#193

GitHub's REST API removes an issue type with "type": null, while both MCP tools already expose their issue-type input as a string. We use an empty string at the MCP boundary because it:

  • preserves the existing string-only schemas and generated client/docs behavior;
  • distinguishes omission (leave the current type unchanged) from an explicit clear; and
  • keeps this fix in the server tools without requiring MCP App or docs-generator changes.

The server translates the empty string into one REST PATCH containing "type": null.

What changed

  • Treat an explicitly supplied empty type or issue_type as a clear operation.
  • Preserve existing behavior for omitted inputs and non-empty type names.
  • Add focused schema and request-body coverage for consolidated and granular tools.

MCP impact

  • No tool or API changes
  • Tool behavior changed - empty issue type inputs remove the current type.
  • New tool added

Prompts tested (tool changes only)

  • "Set this issue type to Bug"
  • "Remove the type from this issue"

Security / limits

  • No security or limits impact - this uses the existing issue update permission and endpoint.
  • Auth / permissions considered
  • Data exposure, filtering, or token/size limits considered

Tool renaming

  • I am renaming tools as part of this PR (e.g. a part of a consolidation effort)
    • I have added the new tool aliases in deprecated_tool_aliases.go
  • I am not renaming tools as part of this PR

Lint & tests

  • Linted locally with ./script/lint
  • Tested locally with ./script/test

Focused tests cover omitted, non-empty set, empty-string clear, create omission, required granular input, and exact PATCH JSON. Live validation with the locally built stdio server confirmed both clear paths read back type: null on a disposable issue that was then closed.

Docs

  • Not needed
  • Generated tool reference artifacts updated; generator unchanged

zwick added 5 commits August 3, 2026 10:19
Co-authored-by: Copilot App <[email protected]>

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
Co-authored-by: Copilot App <[email protected]>

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
Co-authored-by: Copilot App <[email protected]>

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
Co-authored-by: Copilot App <[email protected]>

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
Co-authored-by: Copilot App <[email protected]>

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant