Setting the file. One moment.
Subchapter 193.6
references/milestones.mdMarkdown2 KBView on GitHub
Use milestones to group related issues into a deliverable unit of work.
Milestones can be read and managed through the GitHub REST API.
gh api "repos/{owner}/{repo}/milestones?state=all&per_page=100" \
--paginate \
--jq '.[] | {number, title, state, open_issues, closed_issues, due_on}'gh api repos/{owner}/{repo}/milestones/{milestone_number}gh api repos/{owner}/{repo}/milestones \
-X POST \
-f title="Milestone title" \
-f description="Milestone description"Optional due date:
gh api repos/{owner}/{repo}/milestones \
-X POST \
-f title="Milestone title" \
-f description="Milestone description" \
-f due_on="2026-09-01T00:00:00Z"gh api repos/{owner}/{repo}/milestones/{milestone_number} \
-X PATCH \
-f title="Updated title" \
-f description="Updated description"gh api repos/{owner}/{repo}/milestones/{milestone_number} \
-X PATCH \
-f state=closedgh api repos/{owner}/{repo}/milestones/{milestone_number} \
-X PATCH \
-f state=openUse the milestone number, not the milestone title.
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.
gh api repos/{owner}/{repo}/issues/{issue_number} \
-X PATCH \
-F milestone={milestone_number}gh api repos/{owner}/{repo}/issues/{issue_number} \
-X PATCH \
-F milestone=nullDelete a milestone only when explicitly requested.
gh api repos/{owner}/{repo}/milestones/{milestone_number} \
-X DELETE