Manual testing documentation and execution

How can I use gitlab to keep track of manual tests? Some testing can’t be automated. I’m hoping to use gitlab to keep track of a set of manual tests to be run before accepting a merge request.

Does gitlab provide any way to document necessary manual tests, keep track of which tests have been run against a branch/commit, and maybe even require that all the tests are marked as successful before a merge request is accepted? Would todo lists fit the bill in any way? Of course, I’d also want the list of tests to be version controlled, so that it can be improved over time and updated together with code and requirement changes.

Or am I thinking about this entirely the wrong way?