014fd17fa3
Ports the gating from PR #2553 onto main (the original merge landed on a stack base that did not make it to main). Changes: - pkg/inventory: FeatureFlagDisable becomes []string (any-listed-on → hide). FeatureFlagEnable stays as a single string. This avoids the AND-of-enable semantics from the earlier proposal, which encoded dependencies rather than rollout knobs and had no real call site. Disable-OR is the case that does need the slice (LegacyIssueWrite below). - pkg/github/issues.go: split IssueWrite into IssueWrite (flag-enabled, exposes issue_fields) and LegacyIssueWrite (flag-disabled, omits it). Both register as 'issue_write'; mutually exclusive flag annotations pick exactly one at runtime. Refactored into a shared buildIssueWrite helper instead of duplicating the ~250-line tool definition. - pkg/github/issues.go: GetIssue field_values enrichment now requires the flag at runtime. The verbose REST IssueFieldValues is always cleared from the response. - Existing single-flag Disable call sites converted to slices. - New toolsnap variant issue_write_ff_remote_mcp_issue_fields.snap; the canonical issue_write.snap is owned by LegacyIssueWrite. - README + flag docs regenerated. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
97 lines
2.5 KiB
Plaintext
97 lines
2.5 KiB
Plaintext
{
|
|
"_meta": {
|
|
"ui": {
|
|
"resourceUri": "ui://github-mcp-server/issue-write",
|
|
"visibility": [
|
|
"model",
|
|
"app"
|
|
]
|
|
}
|
|
},
|
|
"annotations": {
|
|
"title": "Create or update issue"
|
|
},
|
|
"description": "Create a new or update an existing issue in a GitHub repository.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"assignees": {
|
|
"description": "Usernames to assign to this issue",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"body": {
|
|
"description": "Issue body content",
|
|
"type": "string"
|
|
},
|
|
"duplicate_of": {
|
|
"description": "Issue number that this issue is a duplicate of. Only used when state_reason is 'duplicate'.",
|
|
"type": "number"
|
|
},
|
|
"issue_number": {
|
|
"description": "Issue number to update",
|
|
"type": "number"
|
|
},
|
|
"labels": {
|
|
"description": "Labels to apply to this issue",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"method": {
|
|
"description": "Write operation to perform on a single issue.\nOptions are:\n- 'create' - creates a new issue.\n- 'update' - updates an existing issue.\n",
|
|
"enum": [
|
|
"create",
|
|
"update"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"milestone": {
|
|
"description": "Milestone number",
|
|
"type": "number"
|
|
},
|
|
"owner": {
|
|
"description": "Repository owner",
|
|
"type": "string"
|
|
},
|
|
"repo": {
|
|
"description": "Repository name",
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"description": "New state",
|
|
"enum": [
|
|
"open",
|
|
"closed"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"state_reason": {
|
|
"description": "Reason for the state change. Ignored unless state is changed.",
|
|
"enum": [
|
|
"completed",
|
|
"not_planned",
|
|
"duplicate"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"description": "Issue title",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"description": "Type of this issue. Only use if the repository has issue types configured. Use list_issue_types tool to get valid type values for the organization. If the repository doesn't support issue types, omit this parameter.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"method",
|
|
"owner",
|
|
"repo"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"name": "issue_write"
|
|
} |