GitLab
TMA-GITLAB-1.1.13
Ensure linear history is required
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
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.
tmaegis scan --target gitlab --level 2