[Investigation] Split out mergeable/mergeable_state into more cohesive methods

When trying to move some code from mergeable -> mergeable_state, we had an incident occur (gitlab-com/gl-infra/production#6788 (closed)). This incident was due to mergeable_state being used to check if we can run a merged result pipeline. gitlab-com/gl-infra/production#6788 (comment 905268171) explains further.

mergeable_state is ambiguous in naming, and the assumption here is that it is can be merged, and then we have mergeable which could imply the same checks as mergeable_state. mergeable calls mergeable_state so mergeable_state is a subset of checks of mergeable

Therefore, this issue is to investigate the different uses of mergeable_state and potentially split it out into different methods, for example, a new method that checks if it is mergeable on a git level.

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by 🤖 GitLab Bot 🤖