README.md

Grasp - Git Relays Authorized via Signed-Nostr Proofs

Status: DRAFT - expect breaking changes

Contributions to open-source projects shouldn't be permissioned by a platform like GitHub. Git repoistory hosting should be distributed. Grasp is a protocol like blossom, but for git.

Overview

There may be many grasp servers anywhere -- like Blossom servers -- that host repositories from anyone (maybe they'll ask for a pre-payment, maybe they will have a free quota for some Nostr users and so on) that you can just push your repositories to. And your pushes are pre-authorized by publishing a Nostr event beforehand that says what is your repository state (branch=commit, HEAD=branch or something like that).

Then when announcing your repository you can include multiple git+http URLs to these servers that people can clone the project from. And Git-enabled Nostr clients can contact these servers to download and display source code and Git history data.

Specification

GRASP-01 is required. Everything else is optional.

  • GRASP-01 - Core Service Requirements

  • GRASP-02 - Proactive Sync

  • GRASP-05 - Archive

Reference implementation - ngit-relay

TODO:

  • Service Announcements and Discovery

Repository Details

name / identifier

grasp

nostr clone url

nostr://_@danconwaydev.com/grasp
just install ngit and run
git clone nostr://...

description

Protocol docs for grasp. Like blossom but for git.

git servers

https://relay.ngit.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/grasp.git
https://gitnostr.com/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/grasp.git
https://ngit.danconwaydev.com/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/grasp.git

maintainers

relays

wss://relay.ngit.dev
wss://gitnostr.com
wss://ngit.danconwaydev.com
wss://relay.damus.io
wss://nos.lol
wss://relay.nostr.band

earliest unique commit

de831d77c785f71896696facfd57fdc4d695e598

gitworkshop.dev logo GitWorkshop.dev