gitlab handles the squashing, then we have a publicly available history of the unsquashed commits in the merge request.