6.2. Configuring Projects, Labels, Milestones, and Workflows
A Project's layout only shows structure that already exists — labels, milestones, and automation rules are what create that structure in the first place.
💡 First Principle: Labels, milestones, and custom fields let a team encode meaning onto issues and pull requests — priority, category, target release — so a Project's views can group, filter, and sort by that meaning instead of by raw text. A label tags an item with a category (bug, priority:high). A milestone groups items toward a shared target, usually a release or deadline, and tracks completion as a percentage automatically. Project workflows (automation rules) react to events — like an item moving into a "Done" column, or a linked pull request merging — and update fields without anyone touching them by hand.
⚠️ Exam Trap: A milestone's completion percentage is calculated automatically from the open/closed status of the issues and pull requests assigned to it — it isn't a number someone sets manually.
Reflection Question: An issue is assigned to the "v2.0" milestone along with 9 others. If 4 of those 10 issues are closed, what does the milestone's progress indicator show, and where does that number come from?