GitScrum / Docs
All Best Practices

GitLab Workflow Automation | CI/CD Sync

Automate GitLab workflows with GitScrum. Connect merge requests, pipeline status, and commits to tasks. Pipeline success advances tasks automatically.

5 min read

GitLab's CI/CD capabilities combined with GitScrum's project management create powerful automated workflows. GitScrum's GitLab integration connects merge requests, pipeline status, and issues to your project boards, enabling automated status updates and seamless development workflows.

GitLab + GitScrum Integration

GitLab FeatureGitScrum Sync
Merge RequestsLinked to tasks, status updates
CommitsAppear in task timeline
PipelinesStatus visible, automation triggers
BranchesAuto-link to tasks via naming
Code ReviewComments visible in context

Setting Up Integration

GITLAB INTEGRATION SETUP

1. GENERATE GITLAB TOKEN
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  GitLab β†’ Settings β†’ Access Tokens              β”‚
β”‚                                                 β”‚
β”‚  Token name: gitscrum-integration               β”‚
β”‚  Scopes: api, read_repository                   β”‚
β”‚  Expiration: Set appropriately                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. CONFIGURE GITSCRUM
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  GitScrum β†’ Settings β†’ Integrations β†’ GitLab    β”‚
β”‚                                                 β”‚
β”‚  GitLab URL: https://gitlab.com (or self-hosted)β”‚
β”‚  Token: [paste token]                           β”‚
β”‚  Verify connection                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3. CONFIGURE WEBHOOKS
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  GitLab β†’ Project β†’ Settings β†’ Webhooks         β”‚
β”‚                                                 β”‚
β”‚  URL: [GitScrum webhook URL]                    β”‚
β”‚  Secret: [Generated secret]                     β”‚
β”‚  Triggers:                                      β”‚
β”‚  β˜‘ Push events                                  β”‚
β”‚  β˜‘ Merge request events                         β”‚
β”‚  β˜‘ Pipeline events                              β”‚
β”‚  β˜‘ Comments                                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Workflow Automation

AUTOMATED WORKFLOW RULES

RULE 1: MR Created β†’ Task In Review
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Trigger: Merge Request opened                  β”‚
β”‚  Condition: MR title contains GS-XXX            β”‚
β”‚  Action:                                        β”‚
β”‚  β€’ Link MR to task GS-XXX                       β”‚
β”‚  β€’ Update status β†’ In Review                    β”‚
β”‚  β€’ Notify reviewers                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

RULE 2: Pipeline Success β†’ Ready to Merge
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Trigger: Pipeline completed successfully       β”‚
β”‚  Condition: MR linked to GitScrum task          β”‚
β”‚  Action:                                        β”‚
β”‚  β€’ Add "pipeline-passed" label                  β”‚
β”‚  β€’ Update task β†’ Ready to Merge                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

RULE 3: Pipeline Failed β†’ Flag Task
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Trigger: Pipeline failed                       β”‚
β”‚  Action:                                        β”‚
β”‚  β€’ Add "pipeline-failed" label                  β”‚
β”‚  β€’ Keep status In Progress                      β”‚
β”‚  β€’ Notify assignee                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

RULE 4: MR Merged β†’ Task Done
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Trigger: Merge Request merged                  β”‚
β”‚  Action:                                        β”‚
β”‚  β€’ Update task β†’ Done                           β”‚
β”‚  β€’ Log completion time                          β”‚
β”‚  β€’ Close related MR                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Task Timeline with GitLab

UNIFIED TASK VIEW

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Task: GS-456 - Implement user dashboard        β”‚
β”‚  Status: In Review                              β”‚
β”‚                                                 β”‚
β”‚  ACTIVITY TIMELINE:                             β”‚
β”‚  ─────────────────────────────────────────────  β”‚
β”‚                                                 β”‚
β”‚  Today                                          β”‚
β”‚  β”œβ”€β”€ 10:30 AM  Pipeline passed βœ“                β”‚
β”‚  β”‚             !87 pipeline #1234               β”‚
β”‚  β”‚                                              β”‚
β”‚  β”œβ”€β”€ 10:15 AM  Commit pushed                    β”‚
β”‚  β”‚             "Fix review comments"            β”‚
β”‚  β”‚             abc123 by @developer             β”‚
β”‚  β”‚                                              β”‚
β”‚  β”œβ”€β”€ 9:00 AM   Review comment                   β”‚
β”‚  β”‚             @reviewer: "Add error handling"  β”‚
β”‚  β”‚                                              β”‚
β”‚  Yesterday                                      β”‚
β”‚  β”œβ”€β”€ 4:30 PM   MR !87 opened                    β”‚
β”‚  β”‚             "GS-456: User dashboard"         β”‚
β”‚  β”‚                                              β”‚
β”‚  β”œβ”€β”€ 2:00 PM   Commit pushed                    β”‚
β”‚  β”‚             "Add dashboard component"        β”‚
β”‚  β”‚             def456 by @developer             β”‚
β”‚  β”‚                                              β”‚
β”‚  β”œβ”€β”€ 11:00 AM  Branch created                   β”‚
β”‚  β”‚             feature/GS-456-dashboard         β”‚
β”‚  β”‚                                              β”‚
β”‚  └── 10:45 AM  Task started                     β”‚
β”‚                @developer assigned              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

CI/CD Integration

PIPELINE STATUS IN GITSCRUM

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Sprint Board View                              β”‚
β”‚                                                 β”‚
β”‚  IN REVIEW                                      β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚β”‚ GS-456 Dashboard                          β”‚β”‚
β”‚  β”‚β”‚ @developer                                β”‚β”‚
β”‚  β”‚β”‚ !87 Pipeline: βœ“ passed                    β”‚β”‚
β”‚  β”‚β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚β”‚ GS-457 Settings                           β”‚β”‚
β”‚  β”‚β”‚ @developer2                               β”‚β”‚
β”‚  β”‚β”‚ !88 Pipeline: βœ— failed                    β”‚β”‚
β”‚  β”‚β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚β”‚ GS-458 API                                β”‚β”‚
β”‚  β”‚β”‚ @developer3                               β”‚β”‚
β”‚  β”‚β”‚ !89 Pipeline: ⏳ running                  β”‚β”‚
β”‚  β”‚β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Best Practices

  • Use consistent task ID format in branches and MRs
  • Configure pipeline webhooks for real-time status
  • Automate status transitions from MR events
  • Include task link in MR template
  • Review pipeline status before merging
  • Archive Git history in completed tasks
  • Set up deployment tracking from pipelines
  • Use labels to sync between systems
  • Anti-Patterns

    βœ— Manual status updates when automation available
    βœ— MRs without task references
    βœ— Ignoring pipeline failures
    βœ— Duplicate tracking in GitLab and GitScrum
    βœ— No webhook configuration
    βœ— Too many sync events causing noise
    

    Related Solutions