diff --git a/docs/README.skills.md b/docs/README.skills.md index 7098af2e1f..7abef48c15 100644 --- a/docs/README.skills.md +++ b/docs/README.skills.md @@ -213,7 +213,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to | [github-actions-runtime-upgrade-conventions](../skills/github-actions-runtime-upgrade-conventions/SKILL.md)
`gh skills install github/awesome-copilot github-actions-runtime-upgrade-conventions` | Upgrade GitHub Actions to supported runtimes by selecting safe action versions, preserving workflow behavior, and validating post-upgrade execution. | None | | [github-codespaces-efficiency](../skills/github-codespaces-efficiency/SKILL.md)
`gh skills install github/awesome-copilot github-codespaces-efficiency` | Audit and improve GitHub Codespaces efficiency. Use this skill when a user wants faster Codespaces startup, lower Codespaces spend, slim devcontainers, right-size machines, tune idle timeout, or scope prebuilds to branches with sustained usage. | `references/codespaces.md`
`references/review-rubric.md` | | [github-copilot-starter](../skills/github-copilot-starter/SKILL.md)
`gh skills install github/awesome-copilot github-copilot-starter` | Set up complete GitHub Copilot configuration for a new project based on technology stack | None | -| [github-issues](../skills/github-issues/SKILL.md)
`gh skills install github/awesome-copilot github-issues` | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, set issue fields (dates, priority, custom fields), set issue types, manage issue workflows, link issues, add dependencies, or track blocked-by/blocking relationships. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", "set the priority", "set the start date", "link issues", "add dependency", "blocked by", "blocking", or any GitHub issue management task. | `references/dependencies.md`
`references/images.md`
`references/issue-fields.md`
`references/issue-types.md`
`references/projects.md`
`references/search.md`
`references/sub-issues.md`
`references/templates.md` | +| [github-issues](../skills/github-issues/SKILL.md)
`gh skills install github/awesome-copilot github-issues` | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, set issue fields (dates, priority, custom fields), set issue types, manage issue workflows, link issues, add dependencies, or track blocked-by/blocking relationships. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", "set the priority", "set the start date", "link issues", "add dependency", "blocked by", "blocking", or any GitHub issue management task. | `references/dependencies.md`
`references/images.md`
`references/issue-fields.md`
`references/issue-types.md`
`references/milestones.md`
`references/projects.md`
`references/search.md`
`references/sub-issues.md`
`references/templates.md` | | [github-release](../skills/github-release/SKILL.md)
`gh skills install github/awesome-copilot github-release` | Guides IA through releasing a new version of a GitHub library end-to-end. Handles SemVer versioning and Keep a Changelog formatting automatically. | `references/commit-classification.md`
`references/semver-rules.md` | | [gitmoji](../skills/gitmoji/SKILL.md)
`gh skills install github/awesome-copilot gitmoji` | Generates commit messages following the gitmoji convention (https://gitmoji.dev) — picks the right emoji for the intent of the change and writes a well-formed message. Use when asked to "write a gitmoji commit", "add an emoji to my commit message", "which gitmoji should I use", "gitmoji this change", or when a project uses gitmoji-style commit messages. Works from a git diff, staged changes, or a plain description of the change. Generates the message only — does not run git commands. | `references/gitmoji-reference.md` | | [go-mcp-server-generator](../skills/go-mcp-server-generator/SKILL.md)
`gh skills install github/awesome-copilot go-mcp-server-generator` | Generate a complete Go MCP server project with proper structure, dependencies, and implementation using the official github.com/modelcontextprotocol/go-sdk. | None | diff --git a/skills/github-issues/SKILL.md b/skills/github-issues/SKILL.md index 4619bacfbd..438049f069 100644 --- a/skills/github-issues/SKILL.md +++ b/skills/github-issues/SKILL.md @@ -194,6 +194,7 @@ The following features require REST or GraphQL APIs beyond the basic MCP tools. |------------|-------------|-----------| | Advanced search | Complex queries with boolean logic, date ranges, cross-repo search, issue field filters (`field.name:value`) | [references/search.md](references/search.md) | | Sub-issues & parent issues | Breaking work into hierarchical tasks | [references/sub-issues.md](references/sub-issues.md) | +| Milestones | Create, read, update, close, reopen, delete milestones and manage milestone issues | [references/milestones.md](references/milestones.md) | | Issue dependencies | Tracking blocked-by / blocking relationships | [references/dependencies.md](references/dependencies.md) | | Issue types (advanced) | GraphQL operations beyond MCP `list_issue_types` / `type` param | [references/issue-types.md](references/issue-types.md) | | Projects V2 | Project boards, progress reports, field management | [references/projects.md](references/projects.md) | diff --git a/skills/github-issues/references/milestones.md b/skills/github-issues/references/milestones.md new file mode 100644 index 0000000000..a4d9c2d323 --- /dev/null +++ b/skills/github-issues/references/milestones.md @@ -0,0 +1,110 @@ +# Milestones + +Use milestones to group related issues into a deliverable unit of work. + +Milestones can be read and managed through the GitHub REST API. + +## List Milestones + +```bash +gh api "repos/{owner}/{repo}/milestones?state=all&per_page=100" \ + --paginate \ + --jq '.[] | {number, title, state, open_issues, closed_issues, due_on}' +``` + +## Get Milestone + +```bash +gh api repos/{owner}/{repo}/milestones/{milestone_number} +``` + +## Create Milestone + +```bash +gh api repos/{owner}/{repo}/milestones \ + -X POST \ + -f title="Milestone title" \ + -f description="Milestone description" +``` + +Optional due date: + +```bash +gh api repos/{owner}/{repo}/milestones \ + -X POST \ + -f title="Milestone title" \ + -f description="Milestone description" \ + -f due_on="2026-09-01T00:00:00Z" +``` + +## Update Milestone + +```bash +gh api repos/{owner}/{repo}/milestones/{milestone_number} \ + -X PATCH \ + -f title="Updated title" \ + -f description="Updated description" +``` + +## Close Milestone + +```bash +gh api repos/{owner}/{repo}/milestones/{milestone_number} \ + -X PATCH \ + -f state=closed +``` + +## Reopen Milestone + +```bash +gh api repos/{owner}/{repo}/milestones/{milestone_number} \ + -X PATCH \ + -f state=open +``` + +## List Issues in Milestone + +Use the milestone number, not the milestone title. + +```bash +gh api "repos/{owner}/{repo}/issues?milestone={milestone_number}&state=all&per_page=100" \ + --paginate \ + --jq '.[] | select(.pull_request == null) | {number, title, state}' +``` + +The Issues REST endpoint can also return pull requests, so exclude entries +containing `pull_request` when the caller specifically requests milestone issues. + +## Assign Issue to Milestone + +```bash +gh api repos/{owner}/{repo}/issues/{issue_number} \ + -X PATCH \ + -F milestone={milestone_number} +``` + +## Remove Issue from Milestone + +```bash +gh api repos/{owner}/{repo}/issues/{issue_number} \ + -X PATCH \ + -F milestone=null +``` + +## Delete Milestone + +Delete a milestone only when explicitly requested. + +```bash +gh api repos/{owner}/{repo}/milestones/{milestone_number} \ + -X DELETE +``` + +## Usage Rules + +- Use milestone numbers for API operations. +- A milestone groups work; it does not define issue execution order. +- Use native issue dependencies for execution ordering. +- Do not infer dependencies merely because issues belong to the same milestone. +- Listing a milestone for an automated workflow should include all open and + closed issues unless the caller explicitly requests otherwise.