Providing Mercurial SSH access (heptapod#11)
In gitlab_shell
, we detect that it's Mercurial early,
and switch over to dedicated methods until exec_cmd()
.
This doesn't keep
duplication to a minimum, but it makes for a clear path,
with less risks of opening a hole in our opinion.
We use the newly provided internal HTTP API (see heptapod!45 (merged))
to retrieve the access level (permission
field) and pass it
as "permission user" to the hg
executable.
Changes to gitlab_net
and gitlab_access_status
are wrapping
that internal HTTP API into Ruby classes and methods.