Try free
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                     │
└─────────────────────────────────────────────────────────────┘