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

Example · bash
# 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.

Example · bash
# 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.

Example · bash
# 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.

Example · bash
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

  • Be the first to comment on this lesson.
Labels, Milestones, and Discussions — GitHub | SoundsCode