Damus
Awiteb · 2w
Not the repos, but the patches and issues are nostr events. For repos there is GRASP, which use Nostr to check if the push authorized or not, instead of ssh keys in regular git server. So you create a...
Jivan Pal profile picture
Nice, thanks for the info, very helpful! I don't currently know anything about Grasp, but I would expect that it handles authentication simply by allowing anyone to upload any commts anywhere, but checking whether branches, tags, and other such labels are authored by authorised persons, depending on the specific repo owner and repo name that those labels are pushed under? If it's done in that way, then forking would be very straightforward as far as backend implementation is concerned: just create a new set of labels pointing to the same commit-ishes/tree-ishes under a different owner name and/or repo name.
1
DanConwayDev · 2w
Rather than authenticating users, GRASP servers reject pushes that don't match the repository state published to nostr. This state is just a list of the git refs ie. a list of branches, tags, etc and the commit id of their tip. The backend is actually really simple, a standard git server with custom...