githubEdit

GitLab Standards

GitLab project management and release standards

Project Management

Group & Project Structure

Organization (Group)
├── platform (Subgroup)
│   ├── platform-api
│   └── platform-web
├── infrastructure (Subgroup)
│   ├── terraform-modules
│   └── helm-charts
└── shared (Subgroup)
    ├── ci-templates
    └── docker-images
  • Use Groups for team/domain boundaries

  • Use Subgroups for logical categorization

  • Repository naming: lowercase with hyphens

Branch Strategy

Branch
Purpose
Naming Convention

main

Production-ready code

Protected branch

develop

Integration branch

Protected branch

feature/*

New features

feature/<issue-id>-short-description

bugfix/*

Bug fixes

bugfix/<issue-id>-short-description

hotfix/*

Emergency production fixes

hotfix/<issue-id>-short-description

release/*

Release preparation

release/v<major>.<minor>.<patch>

Protected Branches

Issue Management

Issue Templates

Path: .gitlab/issue_templates/

Labels

Category
Labels
Description

Type

~bug, ~feature, ~enhancement, ~docs

Issue classification

Priority

~P0-critical, ~P1-high, ~P2-medium, ~P3-low

Urgency level

Workflow

~"needs-triage", ~"in-progress", ~"blocked"

Current status

Scoped

~"team::backend", ~"team::frontend"

Team assignment

Boards

  • Use Issue Boards with label-based lists

  • Standard lists: Open~"needs-triage"~"in-progress"~"in-review"Closed

  • Create team-specific boards using scoped labels

Milestones & Iterations

  • Milestones: align with release versions (e.g., v1.2.0)

  • Iterations (GitLab Premium): align with sprints (e.g., Sprint 24-W10)

  • Use milestone burndown charts to track release progress

Code Review Standards

Merge Request Conventions

MR Title Format

MR Description Template

Path: .gitlab/merge_request_templates/Default.md

Review Guidelines

  • Review within 1 business day

  • At least 1 approval required (configurable per project)

  • Use Squash commits for feature branches

  • Enable Fast-forward merge for clean history

  • Remove source branch after merge

  • Use Code Owners (CODEOWNERS file) for automatic reviewer assignment

Approval Rules

Release Standards

Semantic Versioning

Follow SemVer 2.0.0arrow-up-right:

Release Process

  1. Create release branch from develop

  2. Version bump — update version in package files, CHANGELOG

  3. Testing — QA on release branch, fix bugs in-place

  4. Merge to main via MR

  5. Back-merge to develop

  6. Create GitLab Release

    • Navigate to Deploy > Releases > New Release

    • Select tag v1.2.0

    • Auto-generate release notes or write manually

    • Attach release assets if applicable

CHANGELOG Format

Follow Keep a Changelogarrow-up-right:

GitLab CI/CD Release Pipeline

Environment Promotion

Repository Configuration

Required Files

File
Purpose

README.md

Project overview, setup instructions

LICENSE

Open source license

CHANGELOG.md

Version history

.gitignore

Ignored files and directories

CODEOWNERS

Automatic review assignment

CONTRIBUTING.md

Contribution guidelines

.gitlab-ci.yml

CI/CD pipeline definition

.gitlab/issue_templates/

Issue templates

.gitlab/merge_request_templates/

MR templates

CI/CD Templates (Shared)

Store reusable CI templates in a dedicated group project:

Reference:

Last updated