Import gitlab-shell gitlab_projects.rb as at v5.10.2

What does this MR do?

Imports code from gitlab-shell so we can invoke git subprocesses directly rather than via a gitlab-shell subprocess

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

We need to put gitlab_projects.rb into lib/gitlab/git, so gitaly-ruby can also benefit. I'm going to be paring the lib/gitlab/shell.rb interface down as far as I can.

We also need to remove this code from the gitlab-shell project.

Why was this MR needed?

Doing this directly has both performance and correctness benefits. gitlab-shell processes take about 200ms to load, and we need to manage these git subprocesses more carefully to avoid inappropriate SIGKILLs on them. Removing the intermediate gitlab-shell subprocesses helps with both things.

Screenshots (if relevant)

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

Closes #41016 (closed)

Edited by Nick Thomas

Merge request reports

Loading