NIP-34はNostrリレー上でgitリポジトリ、パッチ、issueをホスティングするためのイベントkindを定義します。これにより、GitHubやGitLabのような集中型ホスティングプラットフォームに依存せずに、完全に分散化されたコードコラボレーションが可能になります。

仕組み

リポジトリは名前、説明、クローンURLなどのメタデータを含むアドレス可能イベント(kind 30617)として表現されます。リポジトリオーナーはこのイベントを公開してNostr上でプロジェクトを確立します。

パッチ(kind 1617)はリポジトリに適用できるgitパッチコンテンツを含みます。コントリビューターはターゲットリポジトリを参照するイベントとしてパッチを送信します。これはLinuxカーネルのようなプロジェクトで使用されているメールベースのパッチワークフローを反映しています。

Issue(kind 1621)は従来のイシュートラッカーのように機能します。リポジトリを参照し、タイトルと説明を含みます。issueやパッチへのコメントは標準的なリプライイベントを使用します。

イベントKind

  • 30617 - リポジトリアナウンスメント(アドレス可能)
  • 1617 - パッチ送信
  • 1621 - Issue
  • 1622 - Issueステータス(オープン/クローズ)

実装

  • ngit - リポジトリとパッチをNostrに公開するためのコマンドラインツール
  • gitworkshop.dev - Nostrでホストされたリポジトリを閲覧するためのWebインターフェース
  • Notedeck - NIP-34ビューアのドラフトサポートを持つデスクトップクライアント

主要ソース

言及されている記事