8 min read • Guide 875 of 877
GitHub Sprint Planning Workflow
GitHub is where code lives, but sprint planning needs more structure than GitHub Projects provides. Connecting a dedicated sprint planning tool to GitHub gives teams the best of both worlds—agile planning with automatic development tracking when code is pushed.
GitHub + Sprint Planning Overview
| GitHub Provides | Sprint Tool Provides | Integration Benefit |
|---|---|---|
| Code repository | Sprint planning | Unified workflow |
| PRs and reviews | Velocity tracking | Progress visibility |
| Issues | Story points | Estimation |
| Actions/CI | Burndown charts | Sprint health |
| Branches | Capacity planning | Resource management |
Why GitHub Alone Isn't Enough
GITHUB PROJECTS LIMITATIONS
═══════════════════════════
WHAT GITHUB PROJECTS HAS:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ │
│ ✅ Kanban boards │
│ ✅ Issue tracking │
│ ✅ Basic automation │
│ ✅ Tight code integration │
│ ✅ Free for public repos │
│ │
└─────────────────────────────────────────────────────────────┘
WHAT GITHUB PROJECTS LACKS:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ │
│ ❌ Sprint velocity tracking │
│ ❌ Burndown/burnup charts │
│ ❌ Story point estimation (native) │
│ ❌ Sprint boundaries and goals │
│ ❌ Capacity planning │
│ ❌ Cross-repo visibility │
│ ❌ Time tracking │
│ ❌ Client-facing dashboards │
│ ❌ Advanced reporting │
│ │
└─────────────────────────────────────────────────────────────┘
THE HYBRID APPROACH:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ │
│ GitScrum (Sprint Planning) GitHub (Development) │
│ ───────────────────────── ──────────────────── │
│ • Backlog grooming • Code repository │
│ • Sprint planning • Pull requests │
│ • Velocity tracking • Code reviews │
│ • Story points • CI/CD pipelines │
│ • Burndown charts • Branch management │
│ • Time tracking • Issue discussions │
│ │
│ │ │ │
│ └───────────┬───────────────┘ │
│ │ │
│ ▼ │
│ AUTOMATIC LINKING │
│ ───────────────── │
│ Commits → Tasks │
│ PRs → Tasks │
│ Status updates │
│ │
└─────────────────────────────────────────────────────────────┘
Setting Up GitHub Integration
GITSCRUM + GITHUB SETUP
═══════════════════════
STEP 1: CONNECT GITHUB
─────────────────────────────────────
Project Settings → Integrations → GitHub
┌─────────────────────────────────────────────────────────────┐
│ GitHub Integration │
├─────────────────────────────────────────────────────────────┤
│ │
│ Status: ✅ Connected │
│ Account: your-organization │
│ │
│ Repositories: │
│ ☑ frontend-app │
│ ☑ backend-api │
│ ☑ mobile-app │
│ ☐ infrastructure (not linked) │
│ │
│ [Add Repository] [Refresh] │
│ │
└─────────────────────────────────────────────────────────────┘
STEP 2: CONFIGURE COMMIT PARSING
─────────────────────────────────────
Settings → Git Integration → Commit Parsing
Patterns recognized:
├── [TASK-123] or [#123] in commit message
├── Closes #123 or Fixes #123
├── Branch name: feature/TASK-123-description
└── PR title: [TASK-123] Feature description
STEP 3: SET UP AUTOMATIONS
─────────────────────────────────────
Settings → Automations
Rules:
├── PR opened → Move task to "In Review"
├── PR merged → Move task to "Done"
├── CI failed → Add "needs-fix" label
└── Branch created → Move task to "In Progress"
Sprint Planning Workflow
GITHUB-INTEGRATED SPRINT PLANNING
═════════════════════════════════
BEFORE SPRINT:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ │
│ BACKLOG GROOMING (in GitScrum) │
│ ───────────────────────────── │
│ 1. Review backlog items │
│ 2. Estimate with story points │
│ 3. Add acceptance criteria │
│ 4. Prioritize by value │
│ │
│ SPRINT PLANNING (in GitScrum) │
│ ───────────────────────────── │
│ 1. Check team capacity (40 pts available) │
│ 2. Pull items into sprint │
│ 3. Set sprint goal │
│ 4. Assign initial owners │
│ │
└─────────────────────────────────────────────────────────────┘
DURING SPRINT:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ │
│ Developer Workflow: │
│ ───────────────────── │
│ │
│ 1. Pick task from GitScrum board │
│ └── Task: [TASK-456] Add user authentication │
│ │
│ 2. Create branch in GitHub │
│ └── git checkout -b feature/TASK-456-auth │
│ │
│ 3. Commit with task reference │
│ └── git commit -m "[TASK-456] Add login endpoint" │
│ │
│ 4. Push and create PR │
│ └── PR title: [TASK-456] User authentication │
│ │
│ 5. GitScrum automatically: │
│ ├── Links commits to task │
│ ├── Shows PR status on task │
│ ├── Moves task to "In Review" │
│ └── Updates burndown chart │
│ │
└─────────────────────────────────────────────────────────────┘
TASK VIEW WITH GIT INFO:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ [TASK-456] Add user authentication │
├─────────────────────────────────────────────────────────────┤
│ │
│ Status: In Review │
│ Assignee: Alice │
│ Points: 5 │
│ │
│ GIT ACTIVITY: │
│ ───────────── │
│ Branch: feature/TASK-456-auth │
│ │
│ Commits: │
│ ├── a1b2c3d [TASK-456] Add login endpoint │
│ ├── e4f5g6h [TASK-456] Add JWT token generation │
│ └── i7j8k9l [TASK-456] Add password hashing │
│ │
│ Pull Request: │
│ └── #234 User authentication ──── ⏳ Review pending │
│ └── 2 approvals needed, 1 received │
│ │
└─────────────────────────────────────────────────────────────┘
Commit Message Best Practices
COMMIT MESSAGE FORMAT
═════════════════════
STANDARD FORMAT:
─────────────────────────────────────
[TASK-ID] Short description (50 chars max)
Longer explanation if needed. Wrap at 72 characters.
Explain what and why, not how.
- Bullet points are okay
- Keep it concise
EXAMPLES:
─────────────────────────────────────
Good:
├── [TASK-456] Add JWT authentication to API endpoints
├── [TASK-789] Fix null pointer in user service
├── [TASK-123] Refactor payment module for testability
└── Closes #234: Update dependencies for security patch
Bad:
├── Fixed stuff
├── WIP
├── Updates
└── asdfasdf
BRANCH NAMING:
─────────────────────────────────────
Pattern: type/TASK-ID-short-description
Examples:
├── feature/TASK-456-user-auth
├── bugfix/TASK-789-null-pointer
├── hotfix/TASK-999-security-patch
└── refactor/TASK-123-payment-module
Sprint Board with Git Status
INTEGRATED SPRINT BOARD
═══════════════════════
Sprint 14 Board View:
─────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ │
│ TO DO IN PROGRESS IN REVIEW DONE │
│ ────── ─────────── ───────── ──── │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │TASK-458 │ │TASK-456 │ │TASK-455 │ │TASK-451 │ │
│ │Search │ │Auth │ │Profile │ │Login UI │ │
│ │feature │ │ │ │page │ │ │ │
│ │ │ │🔀 3 commits│ │ │ │✅ Merged│ │
│ │3 pts │ │⏳ PR open │ │🔀 PR #234│ │5 pts │ │
│ └─────────┘ │5 pts │ │✅ 2/2 rev│ └─────────┘ │
│ └─────────┘ │5 pts │ │
│ ┌─────────┐ └─────────┘ ┌─────────┐ │
│ │TASK-460 │ ┌─────────┐ │TASK-452 │ │
│ │Payment │ │TASK-457 │ │API docs │ │
│ │gateway │ │Database │ │ │ │
│ │ │ │migration│ │✅ Merged│ │
│ │8 pts │ │ │ │2 pts │ │
│ └─────────┘ │🔀 1 commit│ └─────────┘ │
│ │⚠️ CI fail │ │
│ │3 pts │ │
│ └─────────┘ │
│ │
│ Legend: 🔀 Git activity ⏳ PR pending ✅ Merged ⚠️ Issue │
│ │
└─────────────────────────────────────────────────────────────┘
Velocity with GitHub Data
ENHANCED VELOCITY TRACKING
══════════════════════════
SPRINT METRICS (with GitHub data):
─────────────────────────────────────
┌─────────────────────────────────────────────────────────────┐
│ Sprint 14 - Day 7 of 10 │
├─────────────────────────────────────────────────────────────┤
│ │
│ DELIVERY METRICS │
│ ──────────────── │
│ Points Committed: 42 │
│ Points Completed: 28 │
│ Points In Progress: 10 │
│ Burndown Status: On Track ✅ │
│ │
│ DEVELOPMENT METRICS (from GitHub) │
│ ───────────────────────────────── │
│ Commits This Sprint: 89 │
│ PRs Merged: 12 │
│ PRs Open: 3 │
│ Avg PR Review Time: 4.2 hours │
│ CI Success Rate: 94% │
│ │
│ CORRELATION │
│ ─────────── │
│ Commits per Point: 3.2 (team average: 2.8) │
│ → Slightly more commits than usual │
│ → May indicate complex tasks or refactoring │
│ │
└─────────────────────────────────────────────────────────────┘
Best practices
- Always reference tasks - Include task ID in commits and PRs
- Use consistent naming - Branch and commit patterns
- Automate status updates - PR events move tasks automatically
- Review Git data in retros - Commits per point, PR review time
- Keep tasks atomic - One feature = one task = one PR
- Link PRs to tasks - Even for work not in commits
- Use sprint boundaries - Don't merge to main mid-sprint randomly
- Track CI status - Failed builds should alert task owners