mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-12 20:25:11 +00:00
* Add issue fields, issue types, and list_issue_types to github-issues skill - Add list_issue_types to available MCP tools table - Add type parameter to optional parameters with guidance - Expand issue types section: MCP tools (preferred) + GraphQL (advanced) - Document org-level type discovery, create/update with type, GraphQL mutations - Add issue fields section: discover, read, set via GraphQL - Note required GraphQL-Features headers (issue_fields, issue_types) - Update skill description to mention fields, types, dates, priority Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add Projects V2 guidance to github-issues skill Include MCP tools (projects_list, projects_get, projects_write) and GraphQL examples for project item management. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add sub-issues section, move issue fields to end with preview note - Add Sub-Issues and Parent Issues section (MCP, REST, GraphQL) - Add issue_read tool to MCP tools table - Move Issue Fields to last section with private preview callout - Link to community discussion for requesting access Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Prefer issue types over labels for categorization Update guidance and examples to use type parameter (Bug, Feature) instead of equivalent labels when issue types are available. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Prefer issue fields over project fields for metadata Issue fields live on the issue and travel across projects. Project fields are scoped to a single project. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add issue dependencies (blocked by/blocking) section Covers REST endpoints (list, add, remove) and GraphQL (blockedBy, blocking, issueDependenciesSummary, mutations). Also documents tracked issues read-only fields. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add project discovery workflow for progress reports Teach agents how to find projects by name, discover fields and iterations, paginate items, and build status breakdowns. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Generate updated skill listing after SKILL.md changes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Split skill into reference files per reviewer feedback Move sub-issues, dependencies, issue types, projects, and issue fields into separate references/ files. Main SKILL.md now contains core MCP workflow and a capability table pointing to each reference. This way the agent only loads the knowledge it needs for the specific task. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
120 lines
2.7 KiB
Markdown
120 lines
2.7 KiB
Markdown
# Sub-Issues and Parent Issues
|
|
|
|
Sub-issues let you break down work into hierarchical tasks. Each parent issue can have up to 100 sub-issues, nested up to 8 levels deep. Sub-issues can span repositories within the same owner.
|
|
|
|
## Using MCP tools
|
|
|
|
**List sub-issues:**
|
|
Call `mcp__github__issue_read` with `method: "get_sub_issues"`, `owner`, `repo`, and `issue_number`.
|
|
|
|
**Create an issue as a sub-issue:**
|
|
There is no MCP tool for creating sub-issues directly. Use REST or GraphQL (see below).
|
|
|
|
## Using REST API
|
|
|
|
**List sub-issues:**
|
|
```
|
|
GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues
|
|
```
|
|
|
|
**Get parent issue:**
|
|
```
|
|
GET /repos/{owner}/{repo}/issues/{issue_number}/parent
|
|
```
|
|
|
|
**Add an existing issue as a sub-issue:**
|
|
```
|
|
POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues
|
|
Body: { "sub_issue_id": 12345 }
|
|
```
|
|
|
|
The `sub_issue_id` is the numeric issue **ID** (not the issue number). Get it from the issue's `id` field in any API response.
|
|
|
|
To move a sub-issue that already has a parent, add `"replace_parent": true`.
|
|
|
|
**Remove a sub-issue:**
|
|
```
|
|
DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue
|
|
Body: { "sub_issue_id": 12345 }
|
|
```
|
|
|
|
**Reprioritize a sub-issue:**
|
|
```
|
|
PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority
|
|
Body: { "sub_issue_id": 6, "after_id": 5 }
|
|
```
|
|
|
|
Use `after_id` or `before_id` to position the sub-issue relative to another.
|
|
|
|
## Using GraphQL
|
|
|
|
**Read parent and sub-issues:**
|
|
```graphql
|
|
{
|
|
repository(owner: "OWNER", name: "REPO") {
|
|
issue(number: 123) {
|
|
parent { number title }
|
|
subIssues(first: 50) {
|
|
nodes { number title state }
|
|
}
|
|
subIssuesSummary { total completed percentCompleted }
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
**Add a sub-issue:**
|
|
```graphql
|
|
mutation {
|
|
addSubIssue(input: {
|
|
issueId: "PARENT_NODE_ID"
|
|
subIssueId: "CHILD_NODE_ID"
|
|
}) {
|
|
issue { id }
|
|
subIssue { id number title }
|
|
}
|
|
}
|
|
```
|
|
|
|
You can also use `subIssueUrl` instead of `subIssueId` (pass the issue's HTML URL). Add `replaceParent: true` to move a sub-issue from another parent.
|
|
|
|
**Create an issue directly as a sub-issue:**
|
|
```graphql
|
|
mutation {
|
|
createIssue(input: {
|
|
repositoryId: "REPO_NODE_ID"
|
|
title: "Implement login validation"
|
|
parentIssueId: "PARENT_NODE_ID"
|
|
}) {
|
|
issue { id number }
|
|
}
|
|
}
|
|
```
|
|
|
|
**Remove a sub-issue:**
|
|
```graphql
|
|
mutation {
|
|
removeSubIssue(input: {
|
|
issueId: "PARENT_NODE_ID"
|
|
subIssueId: "CHILD_NODE_ID"
|
|
}) {
|
|
issue { id }
|
|
}
|
|
}
|
|
```
|
|
|
|
**Reprioritize a sub-issue:**
|
|
```graphql
|
|
mutation {
|
|
reprioritizeSubIssue(input: {
|
|
issueId: "PARENT_NODE_ID"
|
|
subIssueId: "CHILD_NODE_ID"
|
|
afterId: "OTHER_CHILD_NODE_ID"
|
|
}) {
|
|
issue { id }
|
|
}
|
|
}
|
|
```
|
|
|
|
Use `afterId` or `beforeId` to position relative to another sub-issue.
|