Fix the fork project functionality for projects with hashed storage

What does this MR do?

Switches from the gitlab-shell fork-project command to fork-repository. This allows projects using hashed storage to be forked.

Are there points in the code the reviewer needs to double check?

Previously, gitlab-shell would refuse to create missing parent directories. Now it creates them. They're expected to be missing for hashed storage, I think.

Why was this MR needed?

Forking projects backed by hashed storage is currently broken. This is No Good.

Screenshots (if relevant)

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

Closes #40711 (closed)

Edited by Nick Thomas

Merge request reports