TMAegisBeta
More rules for gitlab

GitLab

TMA-GITLAB-1.1.13

Ensure linear history is required

MediumLevel 2Automatedgitlab

Description

Linear history is the name for Git history where all commits are listed in chronological order, one after another. Such history exists if a pull request is merged either by rebase merge (re-order the commits history) or squash merge (squashes all commits to one). Ensure that linear history is required by requiring the use of rebase or squash merge when merging a pull request. Enforcing linear history produces a clear record of activity, and as such it offers specific advantages: it is easier to follow, easier to revert a change, and bugs can be found more easily.

How it is checked

Audit method: Shell command

shell
command -v glab >/dev/null 2>&1 || exit 1
glab auth status >/dev/null 2>&1 || exit 1
proj=$(glab repo view -F json 2>/dev/null) || exit 1
printf "%s" "$proj" | grep -q '"id":' && echo compliant || echo non-compliant
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

For every project, perform the following steps: - Navigate to your project - In the sidebar, select Settings > Repository - Under 'Merge method', select 'Fast-forward merge'.

Properties

Operating systems
Any
Tags
devsecopsgitlab
Reference
CIS GitLab Benchmark v1.0.1 - 1.1.13 Ensure linear history is required

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target gitlab --level 2