9 min read • Guide 746 of 877
Version Control Integration with GitScrum
Development and project management should be connected, not siloed. GitScrum integrates with version control systems to provide traceability from code to task.
Integration Benefits
Why Connect VCS to GitScrum
VERSION CONTROL INTEGRATION VALUE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ WITHOUT INTEGRATION: │
│ │
│ "What code changed for this feature?" │
│ → Search through commits manually │
│ │
│ "Is this task actually done?" │
│ → Ask developer, check repo manually │
│ │
│ "Who can review this?" │
│ → Task in GitScrum, PR in GitHub, no connection │
│ │
│ "What's the status of this PR?" │
│ → Check GitHub, then update GitScrum manually │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ WITH INTEGRATION: │
│ │
│ TRACEABILITY: │
│ Task ↔ Branch ↔ Commits ↔ PR ↔ Deployment │
│ Complete audit trail │
│ │
│ AUTOMATION: │
│ PR opened → Task moves to "In Review" │
│ PR merged → Task moves to "Done" │
│ │
│ CONTEXT: │
│ From task, see all related code │
│ From PR, see task context and requirements │
│ │
│ VISIBILITY: │
│ Real progress based on actual code state │
│ Not just what people say they did │
└─────────────────────────────────────────────────────────────┘
Setting Up Integration
GitHub Integration
CONNECTING GITHUB:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SETUP STEPS: │
│ │
│ 1. Go to GitScrum Settings → Integrations │
│ 2. Select GitHub │
│ 3. Authorize GitScrum to access your repos │
│ 4. Select repositories to connect │
│ 5. Configure automation rules │
│ │
│ AUTOMATION OPTIONS: │
│ │
│ ☑ Link commits containing task ID │
│ ☑ Link branches containing task ID │
│ ☑ Link PRs containing task ID │
│ ☑ Move task to "In Review" when PR opened │
│ ☑ Move task to "Done" when PR merged │
│ ☐ Create task from GitHub issue │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ TASK ID PATTERNS: │
│ │
│ Recognized in: │
│ • Commit messages: "fix: resolve login issue PROJ-123" │
│ • Branch names: feature/PROJ-123-add-export │
│ • PR titles: "[PROJ-123] Add export feature" │
│ • PR body: "Closes PROJ-123" │
│ │
│ Format: PROJECT-NUMBER (e.g., PROJ-123, API-456) │
└─────────────────────────────────────────────────────────────┘
Branch Naming Convention
BRANCH NAMING BEST PRACTICES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FORMAT: │
│ type/TASK-ID-short-description │
│ │
│ EXAMPLES: │
│ feature/PROJ-123-add-export-csv │
│ bugfix/PROJ-456-fix-login-timeout │
│ hotfix/PROJ-789-security-patch │
│ chore/PROJ-101-update-dependencies │
│ │
│ TYPES: │
│ feature/ - New functionality │
│ bugfix/ - Bug fix │
│ hotfix/ - Urgent production fix │
│ chore/ - Maintenance task │
│ docs/ - Documentation │
│ refactor/ - Code refactoring │
│ │
│ GITSCRUM AUTOMATIC LINKING: │
│ │
│ Branch: feature/PROJ-123-add-export │
│ ↓ │
│ Automatically links to task PROJ-123 │
│ ↓ │
│ Task shows branch, commits, and PR │
│ │
│ CREATE FROM TASK: │
│ Task → "Create Branch" button │
│ Auto-generates: feature/PROJ-123-task-title │
└─────────────────────────────────────────────────────────────┘
Commit Best Practices
Commit Message Format
COMMIT MESSAGE STANDARDS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FORMAT: │
│ <type>: <description> [TASK-ID] │
│ │
│ [optional body] │
│ │
│ [optional footer] │
│ │
│ EXAMPLES: │
│ │
│ ✅ GOOD: │
│ feat: add CSV export functionality PROJ-123 │
│ fix: resolve timeout on large datasets PROJ-456 │
│ docs: update API documentation PROJ-789 │
│ │
│ ❌ BAD: │
│ "fixed stuff" │
│ "WIP" │
│ "updates" │
│ "PROJ-123" (no description) │
│ │
│ TYPES: │
│ feat: New feature │
│ fix: Bug fix │
│ docs: Documentation │
│ style: Formatting │
│ refactor: Code restructuring │
│ test: Adding tests │
│ chore: Maintenance │
│ │
│ WITH BODY (for complex changes): │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ feat: add CSV export with custom columns PROJ-123 ││
│ │ ││
│ │ - Support column selection ││
│ │ - Add date range filtering ││
│ │ - Implement streaming for large exports ││
│ │ ││
│ │ Closes PROJ-123 ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Pull Request Workflow
PR and Task Connection
PULL REQUEST INTEGRATION:
┌─────────────────────────────────────────────────────────────┐
│ │
│ WHEN PR IS OPENED: │
│ │
│ GitHub PR: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ [PROJ-123] Add CSV export functionality ││
│ │ ││
│ │ ## Description ││
│ │ Implements CSV export as requested in PROJ-123. ││
│ │ ││
│ │ ## Changes ││
│ │ - Added export button to data grid ││
│ │ - Implemented CSV generation ││
│ │ - Added tests ││
│ │ ││
│ │ ## Testing ││
│ │ - [x] Unit tests pass ││
│ │ - [x] Manual testing completed ││
│ │ ││
│ │ Closes PROJ-123 ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ GITSCRUM AUTO-UPDATE: │
│ │
│ Task PROJ-123: │
│ Status: In Progress → In Review (automatic) │
│ │
│ Linked PR: #142 "Add CSV export functionality" │
│ Commits: 5 commits linked │
│ Branch: feature/PROJ-123-add-export │
│ │
│ WHEN PR IS MERGED: │
│ │
│ Task Status: In Review → Done (automatic) │
│ Deployment: Linked to release if tagged │
└─────────────────────────────────────────────────────────────┘
Code Review in Context
CONTEXT-AWARE CODE REVIEW:
┌─────────────────────────────────────────────────────────────┐
│ │
│ REVIEWER VIEW (GitHub + GitScrum): │
│ │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PR #142: Add CSV export functionality ││
│ │ ││
│ │ LINKED TASK: PROJ-123 ││
│ │ ──────────────────────── ││
│ │ Story: As a user, I can export data to CSV ││
│ │ ││
│ │ Acceptance Criteria: ││
│ │ ☐ Export button visible on data grid ││
│ │ ☐ All columns included in export ││
│ │ ☐ Large datasets handled (10k+ rows) ││
│ │ ☐ Downloaded file opens in Excel ││
│ │ ││
│ │ Design: [link to mockup] ││
│ │ ││
│ │ [View in GitScrum] ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ BENEFITS: │
│ │
│ • Reviewer sees acceptance criteria │
│ • Can verify implementation matches requirements │
│ • Context without leaving code review │
│ • Better review quality │
└─────────────────────────────────────────────────────────────┘
Task View Integration
Complete Task Context
TASK WITH VCS CONTEXT:
┌─────────────────────────────────────────────────────────────┐
│ PROJ-123: CSV Export Feature │
├─────────────────────────────────────────────────────────────┤
│ │
│ Status: Done ✅ │
│ Assignee: @alex │
│ Sprint: Sprint 24 │
│ │
│ ═══════════════════════════════════════════════════════════ │
│ │
│ DEVELOPMENT ACTIVITY: │
│ │
│ Branch: feature/PROJ-123-add-export │
│ ✅ Merged to main │
│ │
│ Pull Request: #142 "Add CSV export functionality" │
│ ✅ Merged Jan 18, 2024 │
│ Approved by: @jordan, @maria │
│ │
│ Commits (5): │
│ ├── abc1234: feat: add export button │
│ ├── def5678: feat: implement CSV generation │
│ ├── ghi9012: test: add export tests │
│ ├── jkl3456: fix: handle special characters │
│ └── mno7890: docs: add export documentation │
│ │
│ Deployment: │
│ └── v2.3.0 - Deployed Jan 19, 2024 │
│ │
│ ═══════════════════════════════════════════════════════════ │
│ │
│ TIMELINE: │
│ Jan 15: Task started │
│ Jan 16: Branch created │
│ Jan 17: PR opened, review requested │
│ Jan 18: PR approved and merged │
│ Jan 19: Deployed to production │
│ │
│ Total development time: 4 days │
└─────────────────────────────────────────────────────────────┘
Automation Rules
Status Automation
VCS-TRIGGERED AUTOMATIONS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TRIGGER ACTION │
│ ──────────────────────── ─────────────────────────────── │
│ │
│ Branch created with Task → "In Progress" │
│ task ID │
│ │
│ First commit pushed Start time tracking │
│ (if enabled) │
│ │
│ PR opened Task → "In Review" │
│ Notify assignee │
│ │
│ PR approved Add "Approved" label │
│ │
│ PR merged to main Task → "Done" │
│ Stop time tracking │
│ Close linked issues │
│ │
│ PR merged to release Link to release version │
│ branch │
│ │
│ Deployment completed Add deployment info │
│ Notify stakeholders │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ CUSTOM RULES: │
│ │
│ If PR has "WIP" in title: │
│ → Don't move task to "In Review" │
│ │
│ If PR is to hotfix branch: │
│ → Tag task as "hotfix" │
│ → Notify team in Slack │
│ │
│ If commit contains "BREAKING": │
│ → Add "breaking-change" label to task │
└─────────────────────────────────────────────────────────────┘