Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion docs/README.skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)<br />`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)<br />`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`<br />`references/review-rubric.md` |
| [github-copilot-starter](../skills/github-copilot-starter/SKILL.md)<br />`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)<br />`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`<br />`references/images.md`<br />`references/issue-fields.md`<br />`references/issue-types.md`<br />`references/projects.md`<br />`references/search.md`<br />`references/sub-issues.md`<br />`references/templates.md` |
| [github-issues](../skills/github-issues/SKILL.md)<br />`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`<br />`references/images.md`<br />`references/issue-fields.md`<br />`references/issue-types.md`<br />`references/milestones.md`<br />`references/projects.md`<br />`references/search.md`<br />`references/sub-issues.md`<br />`references/templates.md` |
| [github-release](../skills/github-release/SKILL.md)<br />`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`<br />`references/semver-rules.md` |
| [gitmoji](../skills/gitmoji/SKILL.md)<br />`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)<br />`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 |
Expand Down
1 change: 1 addition & 0 deletions skills/github-issues/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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) |
Expand Down
110 changes: 110 additions & 0 deletions skills/github-issues/references/milestones.md
Original file line number Diff line number Diff line change
@@ -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.
Loading