gitworkshop.dev

a decentralized git workflow on nostr for freedom lovers

nostr

An open protocol that is able to create a censorship resistant global "social" network once and for all

any git server

used only for syncing data eg. Gitea, Github, Gitlab, self-hosted...

gitworkshop.dev

A nostr web client to manage and discuss issues and code PRs

git-remote-nostr

git remote helper (plugin) for seemless nostr integration

ngit

a command line tool to manage repos and advanced patch submission / review

How it works

Git is a decentralized version control system, yet most freedom tech projects use centralized walled gardens on top of git as a social and collaboration layer for code changes.

Gitworkshop.dev, git-remote-nostr and ngit are tools to enable code collaboration over nostr. Gitworkshop.dev provides a visual interface to discuss PRs and open issues. git-remote-nostr enables PR creation, review and incorporation using standard git tooling. ngit handles repository setup and advanced PR submission.

Quick Start

Install ngit and git-remote-nostr

download binaries and add them to a directory from which they can be run globally:

Linux Mac Windows v1.6.0

alternatively, if you have cargo installed runcargo install ngit or build from source using this git clone url.

for the contributor

clone the nostr url and use normal git operations with tool you are used it (eg. your IDE)

git clone nostr://npub123/repo-identifier
// use pr/ branch prefix to create a nostr PR
git checkout -b pr/great-feature
git commit -am "improve the world"
git push -u
// any branch with pr/ prefix is nostr PR
git branch -r --list origin/pr/*

for the maintainer

// create a git repo and push to a git server
git init
git commit -am "initial commit"
git remote add origin https://dm.co/usr/my-repo
git push -u origin master
// announce on nostr
ngit init --identifier my-repo
// push to nostr and git server(s) via remote helper
git remote set-url origin nostr://npub123/my-repo
// pushing merged commits updates PR status
git merge origin/pr/great-feature(e8246b2)
git push
gitworkshop.dev logo GitWorkshop.dev