Skip to content

Add tools for sub-issue endpoint #470

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

Merged
merged 28 commits into from
Jul 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0d6d026
Create 'add sub-issue' tool
martinnormark Jun 3, 2025
080e498
Fix hardcoded API host
martinnormark Jun 3, 2025
9b8ebc0
Create 'list sub-issues' tool
martinnormark Jun 3, 2025
9c527bf
Create 'remove sub-issue' tool
martinnormark Jun 3, 2025
a0e757a
Fix Test_GetIssue mock data - add missing User field
martinnormark Jun 3, 2025
39f8045
Create 'reprioritize sub-issue' tool
martinnormark Jun 3, 2025
c900cca
Merge branch 'main' into feat/sub-issues
martinnormark Jun 26, 2025
15f8c9f
Merge branch 'main' into feat/sub-issues
martinnormark Jun 26, 2025
2c10588
Merge remote-tracking branch 'origin/main' into feat/sub-issues
LuluBeatson Jul 17, 2025
ef56393
fixes
LuluBeatson Jul 17, 2025
e7ac4b0
use go github pck to add sub-issues
tommaso-moro Jul 17, 2025
71712b8
Update to use go github package
tommaso-moro Jul 18, 2025
26469ad
update description
tommaso-moro Jul 18, 2025
34465bd
update to use go github v73
tommaso-moro Jul 18, 2025
655d301
lint, docs
LuluBeatson Jul 21, 2025
0907c82
refactor: tests to use go-github-mock
LuluBeatson Jul 21, 2025
d166d88
add toolsnaps
LuluBeatson Jul 21, 2025
49be86f
make RemoveSubIssue use NewGitHubAPIErrorResponse, update docstring
LuluBeatson Jul 21, 2025
559c9e5
Always include SHA in get_file_contents responses (#676)
yonaka15 Jul 17, 2025
43e8a9f
Reorganize README, add dedicated install guides, include policies and…
D1M1TR10S Jul 18, 2025
51b61a2
fix: shorten long tool name for adding pr review comments (#697)
LuluBeatson Jul 18, 2025
8eb861d
Update installation guide for GitHub MCP Server (#699)
D1M1TR10S Jul 19, 2025
2916388
fix: make mcpcurl support "integer" type (#688)
bitsark Jul 21, 2025
3f85c7d
Added installation instructions for mcpcurl (#719)
Bupalchow Jul 21, 2025
3477def
Add pagination support to GraphQL-based tools (#683)
mattdholloway Jul 21, 2025
c2328d0
shorten param descriptions
LuluBeatson Jul 21, 2025
96e2c8f
Merge branch 'main' into feat/sub-issues
LuluBeatson Jul 21, 2025
e742c19
fix: resp nil check in error handling in RemoveSubIssue function
LuluBeatson Jul 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,13 @@ The following sets of tools are available (all are on by default):
- `owner`: Repository owner (string, required)
- `repo`: Repository name (string, required)

- **add_sub_issue** - Add sub-issue
- `issue_number`: The number of the parent issue (number, required)
- `owner`: Repository owner (string, required)
- `replace_parent`: When true, replaces the sub-issue's current parent issue (boolean, optional)
- `repo`: Repository name (string, required)
- `sub_issue_id`: The ID of the sub-issue to add. ID is not the same as issue number (number, required)

- **assign_copilot_to_issue** - Assign Copilot to issue
- `issueNumber`: Issue number (number, required)
- `owner`: Repository owner (string, required)
Expand Down Expand Up @@ -515,6 +522,27 @@ The following sets of tools are available (all are on by default):
- `sort`: Sort order (string, optional)
- `state`: Filter by state (string, optional)

- **list_sub_issues** - List sub-issues
- `issue_number`: Issue number (number, required)
- `owner`: Repository owner (string, required)
- `page`: Page number for pagination (default: 1) (number, optional)
- `per_page`: Number of results per page (max 100, default: 30) (number, optional)
- `repo`: Repository name (string, required)

- **remove_sub_issue** - Remove sub-issue
- `issue_number`: The number of the parent issue (number, required)
- `owner`: Repository owner (string, required)
- `repo`: Repository name (string, required)
- `sub_issue_id`: The ID of the sub-issue to remove. ID is not the same as issue number (number, required)

- **reprioritize_sub_issue** - Reprioritize sub-issue
- `after_id`: The ID of the sub-issue to be prioritized after (either after_id OR before_id should be specified) (number, optional)
- `before_id`: The ID of the sub-issue to be prioritized before (either after_id OR before_id should be specified) (number, optional)
- `issue_number`: The number of the parent issue (number, required)
- `owner`: Repository owner (string, required)
- `repo`: Repository name (string, required)
- `sub_issue_id`: The ID of the sub-issue to reprioritize. ID is not the same as issue number (number, required)

- **search_issues** - Search issues
- `order`: Sort order (string, optional)
- `owner`: Optional repository owner. If provided with repo, only notifications for this repository are listed. (string, optional)
Expand Down
39 changes: 39 additions & 0 deletions pkg/github/__toolsnaps__/add_sub_issue.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"annotations": {
"title": "Add sub-issue",
"readOnlyHint": false
},
"description": "Add a sub-issue to a parent issue in a GitHub repository.",
"inputSchema": {
"properties": {
"issue_number": {
"description": "The number of the parent issue",
"type": "number"
},
"owner": {
"description": "Repository owner",
"type": "string"
},
"replace_parent": {
"description": "When true, replaces the sub-issue's current parent issue",
"type": "boolean"
},
"repo": {
"description": "Repository name",
"type": "string"
},
"sub_issue_id": {
"description": "The ID of the sub-issue to add. ID is not the same as issue number",
"type": "number"
}
},
"required": [
"owner",
"repo",
"issue_number",
"sub_issue_id"
],
"type": "object"
},
"name": "add_sub_issue"
}
38 changes: 38 additions & 0 deletions pkg/github/__toolsnaps__/list_sub_issues.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"annotations": {
"title": "List sub-issues",
"readOnlyHint": true
},
"description": "List sub-issues for a specific issue in a GitHub repository.",
"inputSchema": {
"properties": {
"issue_number": {
"description": "Issue number",
"type": "number"
},
"owner": {
"description": "Repository owner",
"type": "string"
},
"page": {
"description": "Page number for pagination (default: 1)",
"type": "number"
},
"per_page": {
"description": "Number of results per page (max 100, default: 30)",
"type": "number"
},
"repo": {
"description": "Repository name",
"type": "string"
}
},
"required": [
"owner",
"repo",
"issue_number"
],
"type": "object"
},
"name": "list_sub_issues"
}
35 changes: 35 additions & 0 deletions pkg/github/__toolsnaps__/remove_sub_issue.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"annotations": {
"title": "Remove sub-issue",
"readOnlyHint": false
},
"description": "Remove a sub-issue from a parent issue in a GitHub repository.",
"inputSchema": {
"properties": {
"issue_number": {
"description": "The number of the parent issue",
"type": "number"
},
"owner": {
"description": "Repository owner",
"type": "string"
},
"repo": {
"description": "Repository name",
"type": "string"
},
"sub_issue_id": {
"description": "The ID of the sub-issue to remove. ID is not the same as issue number",
"type": "number"
}
},
"required": [
"owner",
"repo",
"issue_number",
"sub_issue_id"
],
"type": "object"
},
"name": "remove_sub_issue"
}
43 changes: 43 additions & 0 deletions pkg/github/__toolsnaps__/reprioritize_sub_issue.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"annotations": {
"title": "Reprioritize sub-issue",
"readOnlyHint": false
},
"description": "Reprioritize a sub-issue to a different position in the parent issue's sub-issue list.",
"inputSchema": {
"properties": {
"after_id": {
"description": "The ID of the sub-issue to be prioritized after (either after_id OR before_id should be specified)",
"type": "number"
},
"before_id": {
"description": "The ID of the sub-issue to be prioritized before (either after_id OR before_id should be specified)",
"type": "number"
},
"issue_number": {
"description": "The number of the parent issue",
"type": "number"
},
"owner": {
"description": "Repository owner",
"type": "string"
},
"repo": {
"description": "Repository name",
"type": "string"
},
"sub_issue_id": {
"description": "The ID of the sub-issue to reprioritize. ID is not the same as issue number",
"type": "number"
}
},
"required": [
"owner",
"repo",
"issue_number",
"sub_issue_id"
],
"type": "object"
},
"name": "reprioritize_sub_issue"
}
Loading
Loading