There is no official native support for CLA in GitLab for now.
The issue you are referencing is linked to issue 48118 ("Stakeholder approval for merge requests"), but itself is linked to two GitLab Enterprise issues -issues 1979 "Multiple blocking merge request approval rules" and issue 965 "Upgrading approvals with approval chain")
So for now, relying on a third-party service site remains the "less painful" solution.
That means, using the services highlighted in the original issue: CLAClub or cla-assistant.io.
The last one (cla-assistant) will, for a public registered repo (registered to cla-assistant) will:
- Comments on each opened pull request to ask the contributor to sign the CLA
- Allows contributors to sign a CLA from within a pull request
- Authenticates the signee with his or her GitHub account
- Updates the status of a pull request when the contributor agrees to the CLA
- Automatically asks users to re-sign the CLA for each new pull request in the event the associated Gist & CLA has changed
Note: you can install and run your own instance of cla-assistant in order to store in your own private dedicated database the CLAs for your project.
But: since those services are tied to GitHub accounts, and there is no equivalent for GitLab, DCO should not be dismissed, especially in light of the Nov. 2017 GitLab blog post "GitLab Transitions Contributor Licensing to Developer Certificate of Origin to Better Support Open Source Projects; Empower Contributors "
GitLab’s move away from a CLA is meant to modernize its code hosting and collaborative development infrastructure for all open source projects.
Additionally, requiring a CLA became problematic for developers who didn’t want to enter into legal terms; they weren’t reviewing the CLA contract and they effectively gave up their rights to own and contribute to open source code.
And "We're switching to a DCO for source code contributions". When it comes to GitLab projects, a DCO like this one remains the chosen solution.
See the analysis comparing CLA and DCO.
GitLab 15.5 (October 2022) prpose for non-free editions of GitLab:
Enforce Developer Certificate of Origin on all contributions
The Developer Certificate of Origin (DCO) is a per-commit sign-off made by a contributor stating that they have the right to submit the code to the project. By signing off on a commit, the contributor agrees to the terms published at developercertificate.org.
Now, you can easily enforce this Developer Certificate via a per-project setting to prevent contributors from contributing code that violates your license. When enabled, all new commits must include such a certificate of origin in the form of a line in the commit message Signed-off-by:
.

See Documentation and Issue.