Add squash quick action for merge requests
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=417370) </details> <!--IssueSummary end--> ## Issue [Projects have a default shallow clone depth of 20 commits](https://docs.gitlab.com/ee/ci/pipelines/settings.html#limit-the-number-of-changes-fetched-during-clone). For merge requests with more than 20 commits, [`danger-review-local` on GitLab projects fails with](https://gitlab.com/gitlab-community/gitlab/-/jobs/4617990876#L835): ``` fatal: not a valid branch point: '3ddffaacb3735622fc85e7efc0ec1daa6be27b57' fatal: couldn't find remote ref refs/heads/danger_base ``` The current implementation makes it impossible for contributor who only uses the Web IDE from making the pipeline pass after 20 commits. - contributor may not want to clone the GitLab repo to their local computers due to the large size (> 1 GB) - contributor may not want to use GitPod because - of the long loading time (> 20 minutes on a fresh start) - it blocks registration from certain email address domains - it has a free tier limit of 10 hours (unverified) or 50 hours (verified) per month on standard class instances ### Proposal Add a `/squash` [quick action](https://docs.gitlab.com/ee/user/project/quick_actions.html#issues-merge-requests-and-epics) that when called with: - `/squash`: squashes all commits on merge request branch, and keep existing commit message - solves the `danger-review-local` issue - `/squash "commit message"`: squashes all commits on merge request branch, and sets commit message (which may be multiline) - this allows adding/updating a [`CHANGELOG` entry](https://docs.gitlab.com/ee/development/changelog.html#what-warrants-a-changelog-entry) ### Implementation guide - may be similar to the [`/rebase` quick action](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49800/diffs) - [extract message after quick action](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24947/diffs)
issue