4.6 KiB
NIP Compliance and Documentation Index
This document serves as an index to all Nostr Improvement Proposals (NIPs) used by GitRepublic and their implementation details.
Standard NIPs
GitRepublic implements the following standard NIPs:
Core Protocol
- NIP-01: Basic Protocol Flow - Event structure, signatures, and client-relay communication
- Foundation for all Nostr events
Authentication & Identity
-
NIP-02: Contact List - Contact list (kind 3)
- Used for repository filtering ("Show only my repos and those of my contacts")
- Fallback for relay discovery
-
NIP-07: Browser Extension Authentication -
window.nostrcapability- Primary authentication method for GitRepublic
- Used for signing all repository-related events
-
NIP-19: bech32-encoded Entities - bech32 encoding (npub, nsec, note, nevent, naddr)
- User-friendly display of pubkeys and event references
- Used throughout the UI for repository URLs and search
-
NIP-98: HTTP Authentication - HTTP auth events (kind 27235)
- Authenticates git operations (push, pull, clone)
- Authenticates API requests
Event Management
-
NIP-09: Event Deletion - Deletion requests (kind 5)
- Used for cleaning up failed fork attempts
-
NIP-10: Event References - Event references (e, p tags)
- Used in patch series for threading patches
-
NIP-22: Comments - Comment events (kind 1111)
- Threaded discussions on PRs, issues, and patches
Git Collaboration
- NIP-34: Git Repository Announcements - Git collaboration on Nostr
- 30617: Repository announcements
- 30618: Repository state
- 1617: Patches
- 1618: Pull requests
- 1619: Pull request updates
- 1621: Issues
- 1630-1633: Status events (Open, Applied/Merged, Closed, Draft)
Relay & Discovery
- NIP-65: Relay List Metadata - Relay list (kind 10002)
- Discovers user's preferred relays for publishing events
Content Features
- NIP-84: Highlights - Highlight events (kind 9802)
- Code selection and review features
- Extended with file/line tags for code context
Custom Event Kinds
GitRepublic uses custom event kinds not defined in any standard NIP:
- Custom Event Kinds
- 1640: Commit Signature - Cryptographically sign git commits
- 1641: Ownership Transfer - Transfer repository ownership (immutable chain)
- 30620: Branch Protection - Enforce branch protection rules
Quick Reference
Event Kinds Used
| Kind | Name | NIP | Replaceable | Documentation |
|---|---|---|---|---|
| 1 | Text Note | NIP-01 | No | 01.md |
| 3 | Contact List | NIP-02 | Yes | 02.md |
| 5 | Deletion Request | NIP-09 | No | 09.md |
| 1111 | Comment | NIP-22 | No | 22.md |
| 1617 | Patch | NIP-34 | No | 34.md |
| 1618 | Pull Request | NIP-34 | No | 34.md |
| 1619 | Pull Request Update | NIP-34 | No | 34.md |
| 1621 | Issue | NIP-34 | No | 34.md |
| 1630 | Status Open | NIP-34 | No | 34.md |
| 1631 | Status Applied | NIP-34 | No | 34.md |
| 1632 | Status Closed | NIP-34 | No | 34.md |
| 1633 | Status Draft | NIP-34 | No | 34.md |
| 1640 | Commit Signature | Custom | No | CustomKinds.md |
| 1641 | Ownership Transfer | Custom | No | CustomKinds.md |
| 30617 | Repo Announcement | NIP-34 | Yes | 34.md |
| 30618 | Repo State | NIP-34 | Yes | 34.md |
| 30620 | Branch Protection | Custom | Yes | CustomKinds.md |
| 9802 | Highlight | NIP-84 | No | 84.md |
| 10002 | Relay List | NIP-65 | Yes | 65.md |
| 27235 | HTTP Auth | NIP-98 | No | 98.md |
Implementation Status
All listed NIPs are fully implemented and compliant with their specifications. Each NIP document includes a "GitRepublic Usage" section describing how the NIP is used in this application.
Compliance Verification
For detailed compliance verification and implementation notes, see the individual NIP documents linked above. Each document includes:
- The original NIP specification
- GitRepublic-specific usage documentation
- Implementation details and code references
See Also
- NIP-34 Documentation - Core git collaboration features
- Custom Event Kinds - GitRepublic-specific event kinds
- Architecture FAQ - System architecture overview
- Implementation Details - Technical implementation notes