Labels, Milestones, and Discussions
Organize work with labels and milestones, and hold open conversations with Discussions.
GitHub gives you several tools to organize a project.
Labels
Colored tags on issues and PRs, such as bug, enhancement, or good first issue. Filter and search by them to focus your work.
Milestones
Group issues and PRs toward a goal or release with a due date, and watch a progress bar fill as items close.
Discussions
A forum-style space for questions, ideas, and announcements that do not belong in an issue. Great for Q&A and community polls.
Example
# Apply labels when creating an issue
gh issue create --title "Add dark mode" \
--label enhancement --label "good first issue"
# Assign an issue to a milestone
gh issue edit 15 --milestone "v1.0"When to use it
- A project lead creates a 'v2.0' milestone and attaches all planned issues to it, giving the team a real-time progress bar.
- A triage team adds labels like 'priority:high' and 'area:api' to incoming issues so filtering and sprint planning are fast.
- A developer uses Discussions instead of Issues for an open-ended question about architecture so it doesn't clutter the bug tracker.
More examples
Create and apply labels via CLI
Creates a colour-coded label and immediately applies it to an issue for visual triage.
# Create a custom label
gh label create "priority:high" --color "D93F0B" --description "Must ship this sprint"
# Apply it to an issue
gh issue edit 42 --add-label "priority:high"Create a milestone and assign issues
Creates a dated milestone via the API and associates an issue with it, which updates the milestone's completion percentage.
# Create milestone with a due date
gh api repos/{owner}/{repo}/milestones \
--method POST \
-f title="v2.0 Release" \
-f due_on="2026-09-01T00:00:00Z"
# Assign issue 42 to milestone 1
gh issue edit 42 --milestone "v2.0 Release"List all issues in a milestone
Filters the issue tracker to show only open items tied to the milestone, giving a clear view of remaining work.
gh issue list --milestone "v2.0 Release" --state open
# #42 feat: dark mode toggle (feature/dark-mode)
# #38 fix: Safari login crash (fix/login-safari)
Discussion