Skip to content

Commit 00fd1b4

Browse files
refactor(issues): minimize granular structured outputs
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> # Conflicts: # pkg/github/__toolsnaps__/add_sub_issue.snap # pkg/github/__toolsnaps__/remove_sub_issue.snap # pkg/github/__toolsnaps__/reprioritize_sub_issue.snap # pkg/github/granular_issue_types.go # pkg/github/issues_granular.go # pkg/github/typed_granular_issue_outputs_test.go # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # interactive rebase in progress; onto 1973eee # Last command done (1 command done): # pick 5b8f9d19 # refactor(issues): minimize granular structured outputs # No commands remaining. # You are currently rebasing. # # Changes to be committed: # modified: pkg/github/__toolsnaps__/add_issue_comment_reaction.snap # modified: pkg/github/__toolsnaps__/add_issue_reaction.snap # modified: pkg/github/__toolsnaps__/add_sub_issue.snap # modified: pkg/github/__toolsnaps__/create_issue.snap # modified: pkg/github/__toolsnaps__/hide_issue_comment.snap # modified: pkg/github/__toolsnaps__/remove_issue_comment_reaction.snap # modified: pkg/github/__toolsnaps__/remove_issue_reaction.snap # modified: pkg/github/__toolsnaps__/remove_sub_issue.snap # modified: pkg/github/__toolsnaps__/reprioritize_sub_issue.snap # modified: pkg/github/__toolsnaps__/set_issue_fields.snap # modified: pkg/github/__toolsnaps__/unhide_issue_comment.snap # modified: pkg/github/__toolsnaps__/update_issue_assignees.snap # modified: pkg/github/__toolsnaps__/update_issue_body.snap # modified: pkg/github/__toolsnaps__/update_issue_labels.snap # modified: pkg/github/__toolsnaps__/update_issue_milestone.snap # modified: pkg/github/__toolsnaps__/update_issue_state.snap # modified: pkg/github/__toolsnaps__/update_issue_title.snap # modified: pkg/github/__toolsnaps__/update_issue_type.snap # modified: pkg/github/comment_minimize_test.go # new file: pkg/github/granular_issue_types.go # modified: pkg/github/granular_tools_test.go # modified: pkg/github/issues_granular.go # new file: pkg/github/typed_granular_issue_outputs_test.go #
1 parent 1973eee commit 00fd1b4

23 files changed

Lines changed: 2829 additions & 722 deletions

‎pkg/github/__toolsnaps__/add_issue_comment_reaction.snap‎

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@
77
"title": "Add Reaction to Issue or Pull Request Comment"
88
},
99
"description": "Add a reaction to an issue or pull request comment.",
10+
"icons": [
11+
{
12+
"mimeType": "image/png",
13+
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAC2UlEQVRIicWVMUyTaRjHf/+vVUpOJOdilOYoUvVreq2CDmLOwdlAS5xMbrrhBifjYG7QjYuJw108nZx1huLgYlw0QshxChUK2koxHHcuCmgsFfieG0or3kGPSoz/8X3f5/97nvfN8z7wmaVqm9FodFfR/EnMugy5giCAwYwgI9Ff9Hl9L9Lp1zUBgsGO+rqGwnlhF4CdwBSyAUwvS1G220zHBSFgHtmVxYWvfp2ZGSj8LyAcjgfZphTQZtAr7OdsZvSP9RIJR+LtQhcNusF+d1aUfPp05M8NAavmg8AOk3cmN56+s1Hpa7U/cviUYbcw3jgex9ZCKoBgsKM+0PDuAdBq2He5zOiTzZiXtc+NxRw598GeLRcWTuTz+UUAp3ygrqFwHmgzeWdqNQd4PpFOy/gedNQfaDz3UQXRaHRX0fNPGdzNZUZO12q+VuHIoV7g5Hu/1/IinX7tABTNnwR2SvRsxRzAzOsBGuuWfAkoX5FZFzCVHR95tFVAbiI9DEwj6wLwl5YVMTRYLTDsxjuRrgGYYz/kxkbvbXRWMOBB24cKYI9ks1X8hXQDaAaa5XG9WjImZgV71wI+m8qAv8y0t1pSmP0ITANTmHO2qqvRZDALlTdgHKyjWkx2YvQ2cHtTacMxYBhWK5DoF4TCkXj7Jg02VKsbOwI0Y+qvALZrOQXMC13cKkDSJWBuJUCqAhgbG3uF7IpBcn/k8KlPNQ+78U5QQuhy/vHjuQoAYPndwi9gw4bd2ufGYrWatxz8No50ExhaKsz9Vl6vAPL5/KKzoiTGG0fOg1oqCbvxTp/juw/M+zynu/yTwjoD58CBQ02ez/pAR4E+M69ntf3/o1Y3dqR050oAQz7P6Z6cfPRRw647MkOhUMAfaDyH+AloBKYNPRT292rQHoMOSp09J3TZlt5ezWazxX97VR3638RiX9ct+RImSyBcrDT0ETMyMp4ptRIgVX7QL6J/ALSUEwJ5rdg2AAAAAElFTkSuQmCC",
14+
"theme": "light"
15+
},
16+
{
17+
"mimeType": "image/png",
18+
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABxElEQVRIibWVvW4TURCFv0vlNEDcIHAkKAERJOIKSjoUArwBPwUFFaKIIngAJARCPIgdh4cgRBYt6ZIAEYEqdhpEw0fhCbkKa68dxyNtsfNzzpnZu3NhwpYGBdUqcA+4A1wEZiK0DawD74FWSml3JAJ1CngGLAIngU1gFfgZKWeAG8AFoAu8At6mlH6VtqTOqJ/UP2pDnRuQO6c27VlbrQ0Dvq121Fulag7q5qPmW18SdSqUd9Qrw4Jn9bNR21YrRQkvYixDKy/AuB3jWjocqKpdtXFU8AxrOTqZzp2PgvnaMRDUA+tB7mypG+OCZ3hbahPgRPguAR9LihaicEu9WcKxClzOi/fU1wPAk7rjgX0uEfNG3cs7mJjtE+wA5/olpZQEHgNf6K2NJyW4NeD7v7c4WptjSc0svlMjdzyM2fbdOyOA7x/T+7mzGj9H8xgIWuquevpw4HmsivkxwBdC/WJRsBKLqqPOHgH8aqybtcJlF0m1WLndUToJ5V31q9r3NOYk7Wh1Wa0PyK3HzA3l/4H3uzIrwFNgCThF7/x/AH5EylngOnAe6AAvgXcppd9DEWRE08DdeIou/RVgJaXUGYQzUfsL+zmwV7BtIq0AAAAASUVORK5CYII=",
19+
"theme": "dark"
20+
}
21+
],
1022
"inputSchema": {
1123
"properties": {
1224
"comment_id": {
@@ -30,11 +42,13 @@
3042
},
3143
"owner": {
3244
"description": "Repository owner (username or organization)",
33-
"type": "string"
45+
"type": "string",
46+
"x-mcp-header": "owner"
3447
},
3548
"repo": {
3649
"description": "Repository name",
37-
"type": "string"
50+
"type": "string",
51+
"x-mcp-header": "repo"
3852
}
3953
},
4054
"required": [
@@ -45,5 +59,24 @@
4559
],
4660
"type": "object"
4761
},
48-
"name": "add_issue_comment_reaction"
62+
"name": "add_issue_comment_reaction",
63+
"outputSchema": {
64+
"additionalProperties": false,
65+
"properties": {
66+
"id": {
67+
"type": "string"
68+
},
69+
"url": {
70+
"type": "string"
71+
}
72+
},
73+
"required": [
74+
"id",
75+
"url"
76+
],
77+
"type": [
78+
"null",
79+
"object"
80+
]
81+
}
4982
}

‎pkg/github/__toolsnaps__/add_issue_reaction.snap‎

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@
77
"title": "Add Reaction to Issue or Pull Request"
88
},
99
"description": "Add a reaction to an issue or pull request.",
10+
"icons": [
11+
{
12+
"mimeType": "image/png",
13+
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAC2UlEQVRIicWVMUyTaRjHf/+vVUpOJOdilOYoUvVreq2CDmLOwdlAS5xMbrrhBifjYG7QjYuJw108nZx1huLgYlw0QshxChUK2koxHHcuCmgsFfieG0or3kGPSoz/8X3f5/97nvfN8z7wmaVqm9FodFfR/EnMugy5giCAwYwgI9Ff9Hl9L9Lp1zUBgsGO+rqGwnlhF4CdwBSyAUwvS1G220zHBSFgHtmVxYWvfp2ZGSj8LyAcjgfZphTQZtAr7OdsZvSP9RIJR+LtQhcNusF+d1aUfPp05M8NAavmg8AOk3cmN56+s1Hpa7U/cviUYbcw3jgex9ZCKoBgsKM+0PDuAdBq2He5zOiTzZiXtc+NxRw598GeLRcWTuTz+UUAp3ygrqFwHmgzeWdqNQd4PpFOy/gedNQfaDz3UQXRaHRX0fNPGdzNZUZO12q+VuHIoV7g5Hu/1/IinX7tABTNnwR2SvRsxRzAzOsBGuuWfAkoX5FZFzCVHR95tFVAbiI9DEwj6wLwl5YVMTRYLTDsxjuRrgGYYz/kxkbvbXRWMOBB24cKYI9ks1X8hXQDaAaa5XG9WjImZgV71wI+m8qAv8y0t1pSmP0ITANTmHO2qqvRZDALlTdgHKyjWkx2YvQ2cHtTacMxYBhWK5DoF4TCkXj7Jg02VKsbOwI0Y+qvALZrOQXMC13cKkDSJWBuJUCqAhgbG3uF7IpBcn/k8KlPNQ+78U5QQuhy/vHjuQoAYPndwi9gw4bd2ufGYrWatxz8No50ExhaKsz9Vl6vAPL5/KKzoiTGG0fOg1oqCbvxTp/juw/M+zynu/yTwjoD58CBQ02ez/pAR4E+M69ntf3/o1Y3dqR050oAQz7P6Z6cfPRRw647MkOhUMAfaDyH+AloBKYNPRT292rQHoMOSp09J3TZlt5ezWazxX97VR3638RiX9ct+RImSyBcrDT0ETMyMp4ptRIgVX7QL6J/ALSUEwJ5rdg2AAAAAElFTkSuQmCC",
14+
"theme": "light"
15+
},
16+
{
17+
"mimeType": "image/png",
18+
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABxElEQVRIibWVvW4TURCFv0vlNEDcIHAkKAERJOIKSjoUArwBPwUFFaKIIngAJARCPIgdh4cgRBYt6ZIAEYEqdhpEw0fhCbkKa68dxyNtsfNzzpnZu3NhwpYGBdUqcA+4A1wEZiK0DawD74FWSml3JAJ1CngGLAIngU1gFfgZKWeAG8AFoAu8At6mlH6VtqTOqJ/UP2pDnRuQO6c27VlbrQ0Dvq121Fulag7q5qPmW18SdSqUd9Qrw4Jn9bNR21YrRQkvYixDKy/AuB3jWjocqKpdtXFU8AxrOTqZzp2PgvnaMRDUA+tB7mypG+OCZ3hbahPgRPguAR9LihaicEu9WcKxClzOi/fU1wPAk7rjgX0uEfNG3cs7mJjtE+wA5/olpZQEHgNf6K2NJyW4NeD7v7c4WptjSc0svlMjdzyM2fbdOyOA7x/T+7mzGj9H8xgIWuquevpw4HmsivkxwBdC/WJRsBKLqqPOHgH8aqybtcJlF0m1WLndUToJ5V31q9r3NOYk7Wh1Wa0PyK3HzA3l/4H3uzIrwFNgCThF7/x/AH5EylngOnAe6AAvgXcppd9DEWRE08DdeIou/RVgJaXUGYQzUfsL+zmwV7BtIq0AAAAASUVORK5CYII=",
19+
"theme": "dark"
20+
}
21+
],
1022
"inputSchema": {
1123
"properties": {
1224
"content": {
@@ -30,11 +42,13 @@
3042
},
3143
"owner": {
3244
"description": "Repository owner (username or organization)",
33-
"type": "string"
45+
"type": "string",
46+
"x-mcp-header": "owner"
3447
},
3548
"repo": {
3649
"description": "Repository name",
37-
"type": "string"
50+
"type": "string",
51+
"x-mcp-header": "repo"
3852
}
3953
},
4054
"required": [
@@ -45,5 +59,24 @@
4559
],
4660
"type": "object"
4761
},
48-
"name": "add_issue_reaction"
62+
"name": "add_issue_reaction",
63+
"outputSchema": {
64+
"additionalProperties": false,
65+
"properties": {
66+
"id": {
67+
"type": "string"
68+
},
69+
"url": {
70+
"type": "string"
71+
}
72+
},
73+
"required": [
74+
"id",
75+
"url"
76+
],
77+
"type": [
78+
"null",
79+
"object"
80+
]
81+
}
4982
}

‎pkg/github/__toolsnaps__/add_sub_issue.snap‎

Lines changed: 229 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@
77
"title": "Add Sub-Issue"
88
},
99
"description": "Add a sub-issue to a parent issue.",
10+
"icons": [
11+
{
12+
"mimeType": "image/png",
13+
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAC2UlEQVRIicWVMUyTaRjHf/+vVUpOJOdilOYoUvVreq2CDmLOwdlAS5xMbrrhBifjYG7QjYuJw108nZx1huLgYlw0QshxChUK2koxHHcuCmgsFfieG0or3kGPSoz/8X3f5/97nvfN8z7wmaVqm9FodFfR/EnMugy5giCAwYwgI9Ff9Hl9L9Lp1zUBgsGO+rqGwnlhF4CdwBSyAUwvS1G220zHBSFgHtmVxYWvfp2ZGSj8LyAcjgfZphTQZtAr7OdsZvSP9RIJR+LtQhcNusF+d1aUfPp05M8NAavmg8AOk3cmN56+s1Hpa7U/cviUYbcw3jgex9ZCKoBgsKM+0PDuAdBq2He5zOiTzZiXtc+NxRw598GeLRcWTuTz+UUAp3ygrqFwHmgzeWdqNQd4PpFOy/gedNQfaDz3UQXRaHRX0fNPGdzNZUZO12q+VuHIoV7g5Hu/1/IinX7tABTNnwR2SvRsxRzAzOsBGuuWfAkoX5FZFzCVHR95tFVAbiI9DEwj6wLwl5YVMTRYLTDsxjuRrgGYYz/kxkbvbXRWMOBB24cKYI9ks1X8hXQDaAaa5XG9WjImZgV71wI+m8qAv8y0t1pSmP0ITANTmHO2qqvRZDALlTdgHKyjWkx2YvQ2cHtTacMxYBhWK5DoF4TCkXj7Jg02VKsbOwI0Y+qvALZrOQXMC13cKkDSJWBuJUCqAhgbG3uF7IpBcn/k8KlPNQ+78U5QQuhy/vHjuQoAYPndwi9gw4bd2ufGYrWatxz8No50ExhaKsz9Vl6vAPL5/KKzoiTGG0fOg1oqCbvxTp/juw/M+zynu/yTwjoD58CBQ02ez/pAR4E+M69ntf3/o1Y3dqR050oAQz7P6Z6cfPRRw647MkOhUMAfaDyH+AloBKYNPRT292rQHoMOSp09J3TZlt5ezWazxX97VR3638RiX9ct+RImSyBcrDT0ETMyMp4ptRIgVX7QL6J/ALSUEwJ5rdg2AAAAAElFTkSuQmCC",
14+
"theme": "light"
15+
},
16+
{
17+
"mimeType": "image/png",
18+
"src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABxElEQVRIibWVvW4TURCFv0vlNEDcIHAkKAERJOIKSjoUArwBPwUFFaKIIngAJARCPIgdh4cgRBYt6ZIAEYEqdhpEw0fhCbkKa68dxyNtsfNzzpnZu3NhwpYGBdUqcA+4A1wEZiK0DawD74FWSml3JAJ1CngGLAIngU1gFfgZKWeAG8AFoAu8At6mlH6VtqTOqJ/UP2pDnRuQO6c27VlbrQ0Dvq121Fulag7q5qPmW18SdSqUd9Qrw4Jn9bNR21YrRQkvYixDKy/AuB3jWjocqKpdtXFU8AxrOTqZzp2PgvnaMRDUA+tB7mypG+OCZ3hbahPgRPguAR9LihaicEu9WcKxClzOi/fU1wPAk7rjgX0uEfNG3cs7mJjtE+wA5/olpZQEHgNf6K2NJyW4NeD7v7c4WptjSc0svlMjdzyM2fbdOyOA7x/T+7mzGj9H8xgIWuquevpw4HmsivkxwBdC/WJRsBKLqqPOHgH8aqybtcJlF0m1WLndUToJ5V31q9r3NOYk7Wh1Wa0PyK3HzA3l/4H3uzIrwFNgCThF7/x/AH5EylngOnAe6AAvgXcppd9DEWRE08DdeIou/RVgJaXUGYQzUfsL+zmwV7BtIq0AAAAASUVORK5CYII=",
19+
"theme": "dark"
20+
}
21+
],
1022
"inputSchema": {
1123
"properties": {
1224
"issue_number": {
@@ -16,15 +28,17 @@
1628
},
1729
"owner": {
1830
"description": "Repository owner (username or organization)",
19-
"type": "string"
31+
"type": "string",
32+
"x-mcp-header": "owner"
2033
},
2134
"replace_parent": {
2235
"description": "If true, reparent the sub-issue if it already has a parent",
2336
"type": "boolean"
2437
},
2538
"repo": {
2639
"description": "Repository name",
27-
"type": "string"
40+
"type": "string",
41+
"x-mcp-header": "repo"
2842
},
2943
"sub_issue_id": {
3044
"description": "The ID of the sub-issue to add. ID is not the same as issue number",
@@ -39,5 +53,217 @@
3953
],
4054
"type": "object"
4155
},
42-
"name": "add_sub_issue"
56+
"name": "add_sub_issue",
57+
"outputSchema": {
58+
"additionalProperties": false,
59+
"properties": {
60+
"issue": {
61+
"additionalProperties": false,
62+
"properties": {
63+
"assignees": {
64+
"items": {
65+
"type": "string"
66+
},
67+
"type": [
68+
"null",
69+
"array"
70+
]
71+
},
72+
"body": {
73+
"type": [
74+
"null",
75+
"string"
76+
]
77+
},
78+
"closed_at": {
79+
"description": "Closure time (RFC 3339), when closed.",
80+
"type": "string"
81+
},
82+
"comments": {
83+
"description": "Number of comments.",
84+
"type": [
85+
"null",
86+
"integer"
87+
]
88+
},
89+
"created_at": {
90+
"description": "Creation time (RFC 3339).",
91+
"type": "string"
92+
},
93+
"field_values": {
94+
"items": {
95+
"additionalProperties": false,
96+
"properties": {
97+
"data_type": {
98+
"description": "REST issue field type.",
99+
"enum": [
100+
"text",
101+
"number",
102+
"date",
103+
"single_select"
104+
],
105+
"type": "string"
106+
},
107+
"issue_field_id": {
108+
"type": "integer"
109+
},
110+
"value": {
111+
"type": [
112+
"string",
113+
"number",
114+
"boolean",
115+
"null"
116+
]
117+
}
118+
},
119+
"required": [
120+
"issue_field_id",
121+
"data_type",
122+
"value"
123+
],
124+
"type": [
125+
"null",
126+
"object"
127+
]
128+
},
129+
"type": [
130+
"null",
131+
"array"
132+
]
133+
},
134+
"html_url": {
135+
"description": "Human-readable issue link.",
136+
"type": [
137+
"null",
138+
"string"
139+
]
140+
},
141+
"id": {
142+
"type": [
143+
"null",
144+
"integer"
145+
]
146+
},
147+
"issue_type": {
148+
"type": "string"
149+
},
150+
"labels": {
151+
"items": {
152+
"type": "string"
153+
},
154+
"type": [
155+
"null",
156+
"array"
157+
]
158+
},
159+
"milestone": {
160+
"type": "string"
161+
},
162+
"number": {
163+
"type": [
164+
"null",
165+
"integer"
166+
]
167+
},
168+
"state": {
169+
"description": "Issue state (lowercase REST value).",
170+
"enum": [
171+
"open",
172+
"closed"
173+
],
174+
"type": [
175+
"null",
176+
"string"
177+
]
178+
},
179+
"state_reason": {
180+
"enum": [
181+
"completed",
182+
"not_planned",
183+
"reopened",
184+
"duplicate"
185+
],
186+
"type": [
187+
"null",
188+
"string"
189+
]
190+
},
191+
"sub_issues_summary": {
192+
"additionalProperties": false,
193+
"properties": {
194+
"completed": {
195+
"description": "Number of completed sub-issues.",
196+
"type": "integer"
197+
},
198+
"percent_completed": {
199+
"description": "Completed sub-issues as a percentage (0-100).",
200+
"type": "integer"
201+
},
202+
"total": {
203+
"description": "Total number of sub-issues.",
204+
"type": "integer"
205+
}
206+
},
207+
"required": [
208+
"total",
209+
"completed",
210+
"percent_completed"
211+
],
212+
"type": [
213+
"null",
214+
"object"
215+
]
216+
},
217+
"title": {
218+
"type": [
219+
"null",
220+
"string"
221+
]
222+
},
223+
"updated_at": {
224+
"description": "Last update time (RFC 3339).",
225+
"type": "string"
226+
},
227+
"user": {
228+
"additionalProperties": false,
229+
"properties": {
230+
"id": {
231+
"type": "integer"
232+
},
233+
"login": {
234+
"type": "string"
235+
}
236+
},
237+
"required": [
238+
"login"
239+
],
240+
"type": [
241+
"null",
242+
"object"
243+
]
244+
}
245+
},
246+
"required": [
247+
"assignees"
248+
],
249+
"type": [
250+
"object",
251+
"null"
252+
]
253+
},
254+
"method": {
255+
"enum": [
256+
"add",
257+
"remove",
258+
"reprioritize"
259+
],
260+
"type": "string"
261+
}
262+
},
263+
"required": [
264+
"method",
265+
"issue"
266+
],
267+
"type": "object"
268+
}
43269
}

0 commit comments

Comments
 (0)