Duplicate way of filtering the milestone_id from IssuableBaseServices
We have 2 ways of cleaning up the
milestone_id from params passed into subclasses of the
Issuable#milestone_available? to check if the selected milestone is part of the project directly or belongs to one of the namespaces in the tree of the project. If it is not, it sets the param to
IssuableBaseService#filter_params we call
IssuableBaseService#filter_milestone that does the same thing but with a slightly different approach causing 1 query.
ensure_milestone_available path is more performant in case of a project milestone, as it's just comparing ids. But its less performant in case of a group milestone because it's loading all of the ancestors & the milestone.
filter_params method is used more often, so I think we should replace the existing calls to
ensure_milestone_available with that and perhaps optimize it so it handles the case for project-milestones int he same way.