How to serve Git SSH #5
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: meta/mintee#5
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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.
How to serve Git SSH?to How to serve Git SSHSourcehut seems to use the shell idea:
https://git.sr.ht/~sircmpwn/git.sr.ht/tree/master/item/gitsrht-shell/main.go
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.