GitLab Backup Contents

Detailed breakdown of all GitLab project data included in Cloudback backups, including repository clone and structured metadata.

Each Cloudback backup of a GitLab project creates an encrypted ZIP archive (unless password protection is disabled) containing a complete snapshot of your project. This page details everything that is included.

Summary

A GitLab backup includes two main components:

Component
Description

Repository Clone

Bare Git clone with all branches, tags, refs, and LFS objects

Metadata JSON

Structured JSON files for project settings, issues, merge requests, labels, milestones, boards, members, and notes

Archive Structure

backup-archive-root/
├── repo/
│   └── {ProjectName}.git/              # Bare git repository
├── project.json                        # Project metadata
├── issues.json                         # All issues
├── issue-notes.json                    # Comments on issues
├── issue-links.json                    # Issue relationships
├── merge-requests.json                 # All merge requests
├── merge-request-notes.json            # Comments on merge requests
├── labels.json                         # Project labels
├── milestones.json                     # Project milestones
├── members.json                        # Project members
├── boards.json                         # Issue boards with lists/columns
└── backup.json                         # Backup metadata and statistics

Component Details

1. Repository Clone

The repository is cloned as a bare Git repository (git clone --bare) into the repo/ directory.

What's included:

  • All branches (including remote tracking branches)

  • All tags

  • All Git refs

  • Git LFS objects — Cloudback attempts git lfs fetch --all after cloning. If LFS fetch fails, the clone itself is still preserved (LFS failure is non-blocking).

2. Metadata JSON Files

Cloudback downloads structured metadata via the GitLab REST API and saves it as JSON files:

File
Contents

project.json

Project settings: name, description, visibility, default branch, feature flags (issues, MRs, wiki, CI/CD), merge request settings, topics

issues.json

All issues: title, description, state, labels, milestone, assignees, weight, time tracking (estimate + spent), due date, confidential flag

issue-notes.json

All issue comments: body, author, timestamps, system/internal flags, diff note positions (for code-linked comments)

issue-links.json

Issue relationships: relates_to, blocks, is_blocked_by (deduplicated, same-project only)

merge-requests.json

All merge requests: title, description, state, source/target branches, labels, milestone, assignees, diff refs

merge-request-notes.json

All MR comments: body, author, timestamps, diff note positions (file path, line numbers for code review comments)

labels.json

All project labels: name, color, description

milestones.json

All milestones: title, description, state, start/due dates

members.json

All project members: username, name, state, access level (Guest/Reporter/Developer/Maintainer/Owner)

boards.json

Issue boards with their columns/lists: board name, label-based columns with position ordering

Backup Statistics

Each backup includes a backup.json file with counts:

  • Number of issues

  • Number of issue notes (comments)

  • Number of merge requests

  • Number of merge request notes

  • Number of labels

  • Number of milestones

  • Number of boards

These statistics are displayed on the Project Details page in the Cloudback dashboard.

Learn More

Last updated

Was this helpful?