How to serve Git SSH #5

Open
opened 2024-07-03 21:06:11 -06:00 by sashakoshka · 2 comments
Owner

Allowing users to clone/push over SSH is an extremely important part of any forge. However, this comes with complications as SSH depends on Unix users.

Here is my initial idea: users will SSH in as user mintee (like how gitea and github do it) and we provide a fake shell that communicates with the git SSH frontend, or possibly just uses the API described in #4 directly (this might be significantly more robust). Of course, this idea is dependent on how doing git over ssh actually works, and further research is required to fully confirm whether or not this will be a good idea.

We also should look at how sourcehut accomplishes this.

Allowing users to clone/push over SSH is an extremely important part of any forge. However, this comes with complications as SSH depends on Unix users. Here is my initial idea: users will SSH in as user mintee (like how gitea and github do it) and we provide a fake shell that communicates with the git SSH frontend, or possibly just uses the API described in #4 directly (this might be significantly more robust). Of course, this idea is dependent on how doing git over ssh *actually works*, and further research is required to fully confirm whether or not this will be a good idea. We also should look at how [sourcehut](https://sr.ht/~sircmpwn/sourcehut/) accomplishes this.
sashakoshka self-assigned this 2024-07-03 21:06:16 -06:00
silt was assigned by sashakoshka 2024-07-03 21:06:16 -06:00
sashakoshka added the
enhancement
label 2024-07-03 21:07:02 -06:00
sashakoshka changed title from How to serve Git SSH? to How to serve Git SSH 2024-07-03 21:22:30 -06:00
Author
Owner
Sourcehut seems to use the shell idea: https://git.sr.ht/~sircmpwn/git.sr.ht/tree/master/item/gitsrht-shell/main.go
Author
Owner

Git itself seems to provide a basic implementation of this: https://git-scm.com/docs/git-shell

Assuming the architecture described in #4, want our fake shell to use the API. Therefore we can't use git-shell directly, but it should be pretty trivial to just write our own (like sourcehut does) that translates commands into API calls.

Git itself seems to provide a basic implementation of this: https://git-scm.com/docs/git-shell Assuming the architecture described in #4, want our fake shell to use the API. Therefore we can't use git-shell directly, but it should be pretty trivial to just write our own (like sourcehut does) that translates commands into API calls.
Sign in to join this conversation.
No Milestone
No project
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: meta/mintee#5
No description provided.