GitHub Projects v2 Configuration¶
π Overview¶
GitHub Projects v2 is your central dashboard for managing all project work with full visibility and automatic updates.
π― Initial Setup¶
1. Create the Project¶
- Go to your repository
- Click the Projects tab
- Click New project
- Choose:
- Name:
Project Board - Template: Table (or Kanban)
- Visibility: Public
2. Configure Custom Fields¶
In Settings β Custom fields:
| Field | Type | Options | Required |
|---|---|---|---|
| Priority | Single select | Low, Medium, High | No |
| Effort | Single select | 1, 2, 3, 5, 8 | No |
| Status | Single select | Backlog, In Progress, In QA, Done | Yes |
| Owner | People | (auto) | No |
| Sprint | Text | (custom) | No |
| Environment | Single select | dev, preprod, prod | No |
3. Create Views¶
View 1: Backlog (Table)¶
Columns: - Title - Priority - Effort - Owner - Status - Sprint
Filters: - Status is not Done
Sort: - Created date (oldest first)
Use case: Planning, estimation, prioritization
View 2: Priority Board (Kanban)¶
Grouping: Status - Backlog: Not started - In Progress: In development - In QA: Testing/Review - Done: Completed
Filters: - Priority = High OR Medium
Sort: Priority (highest first)
Use case: Execution view, real-time tracking
View 3: Team Items (Table)¶
Columns: - Title - Owner - Sprint - Status - Due Date
Filters: - Owner = @me (for personal view)
Sort: - Sprint, then Status
Use case: Personal tracking, sprint planning
π Workflow Integration¶
Auto-Updates¶
Workflows update the project automatically:
# In .github/workflows/update-project.yml
# Triggered after each action
Actions:
- Issue created β Added to Backlog
- auto-branch label added β Status stays Backlog
- PR opened β Status β In QA
- Tests pass β Status β Ready for Merge
- PR merged β Status β Done
Manual Updates¶
You can also manually: 1. Drag & drop items between statuses 2. Edit fields 3. Add notes
π Field Details¶
Priority¶
Low = Nice to have, no urgency
Medium = Important, should do
High = Critical, must do
Effort (Story Points)¶
1 = Trivial (30 mins)
2 = Small (2-4 hours)
3 = Medium (1 day)
5 = Large (2-3 days)
8 = XL (1+ week)
Status¶
Backlog = Not started, awaiting prioritization
In Progress = Being actively worked on
In QA = Testing, code review, validation
Done = Completed, merged, ready for use
Owner¶
Auto-populated from issue assignee. Can be manually set.
Sprint¶
Free-text field for sprint identification:
v1.0 (initial release)
v1.1 (patch release)
Sprint 1, Sprint 2, etc.
Environment¶
For tracking which environment feature is deployed:
dev = In development/testing
preprod = Validated, ready for production
prod = Live in production
π Sample Views¶
Backlog View¶
βββββββββββββββββββββββββββββββββββββββββββββββ
β Title β Priority β Effort β Status β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β Add authentication β High β 5 β Backlogβ
β User profiles β Medium β 3 β Backlogβ
β Dark mode β Low β 2 β Backlogβ
βββββββββββββββββββββββββββββββββββββββββββββββ
Priority Board (Kanban)¶
Backlog In Progress In QA Done
βββββββββββ βββββββββββ βββββββββββ βββββββββββ
β Add authβ βDark modeβ β Profilesβ β Setup β
β (P:High)β β (P:Low) β β(P:Medium) β (P:High)β
βββββββββββ βββββββββββ βββββββββββ βββββββββββ
Auth
(P:High)
π Filtering & Sorting¶
Quick Filters¶
# Show only high priority
filter: priority = "High"
# Show only my items
filter: owner = @me
# Show items for sprint 1
filter: sprint = "Sprint 1"
# Show in-progress items
filter: status = "In Progress"
Sorting¶
- By Title (alphabetical)
- By Priority (High β Medium β Low)
- By Status (custom order)
- By Date created/updated
- By Owner
π Metrics & Reports¶
Sprint Reports¶
- View sprint items
- Count completed vs in-progress
- Calculate velocity (points/sprint)
Example:
Sprint 1 (Jan 1-15)
- Total points: 21
- Completed: 13 points
- Velocity: 13 points/2 weeks
Release Planning¶
v1.0 Release
ββ Setup & CI/CD (5 points) - Done
ββ Authentication (8 points) - In Progress
ββ User Profiles (5 points) - Backlog
ββ Dark Mode (2 points) - Backlog
Total: 20 points
Completed: 5 points (25%)
π Linking Issues & PRs¶
Auto-Linking¶
In PR description, use:
Closes #123
Fixes #456
Resolves #789
This automatically: - Links the PR to the issue - Closes the issue when PR merges - Updates project status
Manual Linking¶
- Open issue/PR
- Click Projects on right sidebar
- Select the project
- Item is added
βοΈ Advanced Configuration¶
Automation Rules (Future)¶
GitHub is adding automation for: - Auto-move items based on triggers - Auto-assign based on labels - Auto-close based on time
Custom Views via API¶
Using GraphQL, you can: - Fetch project data programmatically - Create custom dashboards - Export reports
Example:
query {
projectNext(first: 1) {
projectItems(first: 10) {
nodes {
title
fieldValues(first: 5) {
nodes {
field { name }
value
}
}
}
}
}
}
π Best Practices¶
Planning¶
- β Estimate all items before sprint
- β Set clear acceptance criteria
- β Link related issues
- β Don't over-commit velocity
Execution¶
- β Move items to "In Progress" when starting
- β Update status as work progresses
- β Comment on blockers immediately
- β Don't let items get stuck in "In Progress"
Review & Close¶
- β Move to "In QA" for testing
- β Review before merging
- β Mark "Done" only after merge
- β Update metrics weekly
π Permissions¶
| Role | Can Edit | Can View |
|---|---|---|
| Owner | β All | β All |
| Maintainer | β Assigned items | β All |
| Developer | β Assigned items | β All |
| Public | β No | β If public |
π Troubleshooting¶
Issue not appearing in project¶
- Check if project is linked to repo
- Refresh the page
- Try adding manually via right sidebar
Status not updating automatically¶
- Check workflow logs in Actions tab
- Verify custom field names match workflows
- Test workflow manually
Can't drag items in Kanban¶
- Check if you have edit permissions
- Try full refresh (Cmd+Shift+R)
- Check browser console for errors
Next: Workflows Documentation