Page MenuHomePhabricator

Route some VCS connections over SSH
ClosedPublic

Authored by epriestley on Oct 26 2013, 5:47 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Nov 20, 7:28 PM
Unknown Object (File)
Sat, Nov 16, 9:25 PM
Unknown Object (File)
Sat, Nov 9, 5:04 PM
Unknown Object (File)
Sat, Nov 9, 5:04 PM
Unknown Object (File)
Sat, Nov 9, 5:04 PM
Unknown Object (File)
Wed, Nov 6, 12:31 AM
Unknown Object (File)
Oct 16 2024, 1:54 PM
Unknown Object (File)
Oct 15 2024, 9:32 PM
Subscribers

Details

Reviewers
btrahan
Maniphest Tasks
Restricted Maniphest Task
Commits
Restricted Diffusion Commit
rPbb4904553f2c: Route some VCS connections over SSH
Summary
  • Add web UI for configuring SSH hosting.
  • Route git reads (git-upload-pack over SSH).
Test Plan
>>> orbital ~ $ git clone ssh://127.0.0.1/
Cloning into '127.0.0.1'...
Exception: Unrecognized repository path "/". Expected a path like "/diffusion/X/".
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
>>> orbital ~ $ git clone ssh://127.0.0.1/diffusion/X/
Cloning into 'X'...
Exception: No repository "X" exists!
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
>>> orbital ~ $ git clone ssh://127.0.0.1/diffusion/MT/
Cloning into 'MT'...
Exception: This repository is not available over SSH.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
>>> orbital ~ $ git clone ssh://127.0.0.1/diffusion/P/
Cloning into 'P'...
Exception: TODO: Implement serve over SSH.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

btrahan added inline comments.
src/applications/diffusion/ssh/DiffusionSSHWorkflow.php
39–48

I don't think it does but wanted to ask - does this mesh well with any of the existing diffusion code on parsing out the call sign? I don't think it does as I think that logic is all in URI mapping stuff at a very low level.

The rules are very slightly different (in this case, the initial "/" may not be present) but I can probably clean this one and the one in DiffusionController up a bit. The one in the URI map might be harder to consolidate, but it's also much simpler.