Skip to content

http api, queue and dedupe, watch-all, sync polish, docs#6

Open
arbadacarbaYK wants to merge 53 commits into
spearson78:mainfrom
arbadacarbaYK:main
Open

http api, queue and dedupe, watch-all, sync polish, docs#6
arbadacarbaYK wants to merge 53 commits into
spearson78:mainfrom
arbadacarbaYK:main

Conversation

@arbadacarbaYK
Copy link
Copy Markdown

Hey @spearson78 👋

I’ve been running gitnostr for gittr.space and built a few optional add-ons into a fork.
They’re all behind opt-in config flags (config/env), but they’ve saved me a ton of time.

🆕 HTTP /api/event endpoint (off by default). Lets a UI post NIP-34 events straight to the bridge, then relays remain the source of truth.
🆕 Direct event queue + dedupe cache so relay and HTTP events merge cleanly.
🆕 “Watch-all” mode if gitRepoOwners is empty—handy for public mirrors.

Repository sync polish: handles NIP-34 tags, deleted/archived flags, and auto-clones from source/clone URLs (GitHub/GitLab/Codeberg/etc.).

Docs + diagram explaining the optional bits and how to run the bridge standalone.

All flows stay identical to your original unless someone explicitly enables the extras.

Thanks for open-sourcing this!

arbadacarbaYK and others added 30 commits November 27, 2025 13:04
- Create gittr-platform-enhancements.png showing all gittr.space additions
- Includes bridge enhancements, frontend features, file fetching, GRASP protocol,
  collaboration tools, payments, notifications, NIP extensions, and storage
- Update README to showcase the full platform architecture
- Color-coded by feature area for easy navigation
- Add 🆕 badge callout to STANDALONE_BRIDGE_SETUP.md
- Clarify kind 51 (legacy) and kind 30617 (NIP-34) support in relay config
- Fix README reference to FILE_FETCHING_INSIGHTS.md (link to main repo)
- Keep file-fetch-flow.md reference for bridge-specific documentation
- Update bridge main.go and repo.go with latest changes
- Update protocol kind.go and repository.go
- Add Dockerfile for containerized deployment
- Add mergedEvents channel to show complete event flow
- Clarify deduplication uses seenEventIDs map
- Add structured logging details
- Update documentation to match implementation
- Update description to mention mergedEvents channel and seenEventIDs cache
- More accurately reflects the implementation
…ling

- Set HEAD to main/master when creating empty repos in bridge (fixes clone issues)
- Improve all SSH error messages with git-standard 'fatal:' and 'hint:' format
- Add helpful hints for repository not found, permission denied, and config errors
- Handle .git suffix in repo names properly
- Add corruption check to bridge repo creation
- Add state.go with handleRepositoryStateEvent function
- Validate commit SHAs before updating refs
- Fallback to HEAD commit if state event has invalid SHA (handles corrupted foreign repos after migration)
- Add KindRepositoryState (30618) to protocol
- Update all imports to use arbadacarbaYK/gitnostr module path
- Integrate state event handling in main.go
- Add troubleshooting section for private repo read access
- Document identity mapping and maintainer access requirements
- Explain CLI/API access control behavior
- Removed privacy flags from repo create command
- NIP-34 events now have empty content (per spec)
- Privacy is enforced via maintainers tag and bridge access control
- Bridge defaults to public for NIP-34 events
- Document that file paths in path parameter must be URL-encoded
- Add examples for non-ASCII characters (Cyrillic, Chinese, accented)
- Clarify that API automatically decodes and handles UTF-8 correctly
Improve git-nostr-ssh paywall authorization behavior and update SSH guidance so CLI users can reliably recover from pending-invoice and signer-required flows.
Treat repository owners as ADMIN in git-nostr-ssh even when cached permission rows are missing or stale, and document the behavior in README.

Made-with: Cursor
…eam only

- README: bridge + CLI install use fork; link upstream for history
- gittr-enhancements: lead with canonical repo, then upstream contribution note

Co-authored-by: Cursor <cursoragent@cursor.com>
Bridge does not implement remote signer protocol; point implementers to gittr docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
arbadacarbaYK and others added 23 commits May 10, 2026 00:52
Co-authored-by: Cursor <cursoragent@cursor.com>
- Clarify gittr uses Next /api/nostr/repo/files vs bridge tree URL
- Document 404 or 200+empty files as clone trigger and repo normalization

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Use the same ecosystem/stack framing as arbadacarbaYK/gittr. Drop fork-of-spearson
wording. Add REPO_DESCRIPTION.txt for the GitHub About field.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Explain best fit for forge backends, client integration, self-hosted
backup/mirror, normal git SSH, public mirrors, and paywall—not only ngit comparison.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Align with gittr FILE_FETCHING_INSIGHTS and repo-file-tree-branch:
Commits use /api/nostr/repo/commits; Issues/PRs are Nostr-first; branch
sync guards against dependabot noise.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Clarify git-nostr-ssh, kind-52 keys via gn or any signer, nostr://
when repo is on bridge; fix git.gittr.space examples.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove upstream nostr-rs-relay-only testing wording; document gittr
production use of public relays. Hook section is design-only.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace upstream "separate projects" text with gittr forge reality.
Clarify git-nostr.png: hook not built; PRs/issues in gittr UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
Drop git-nostr-hook sections, "not shipped" tables, and upstream
tutorial relay examples. Document four shipped components and gittr stack.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Correct watch-all wording, typos, SSH host hints, and file-fetch
docs; drop GitHub env vars from bridge-only setup; refresh diagrams.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cross-doc URLs for gittr, gitnostr, and gittr-helper-tools now use
gittr.space browse/clone links; Go module paths unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
New architecture.dot/PNG and ARCHITECTURE.md cover bridge, SSH, gn,
gittr UI, and git-remote-nostr; regenerate enhancement PNGs without hook.

Co-authored-by: Cursor <cursoragent@cursor.com>
New architecture.png without git-nostr-hook; ARCHITECTURE.md covers
real clients (gittr UI, gn, SSH, git-remote-nostr).

Co-authored-by: Cursor <cursoragent@cursor.com>
Documentation links stay on gittr instead of GitHub mirrors.

Co-authored-by: Cursor <cursoragent@cursor.com>
Document MCP for Cursor/Claude agents alongside gn, SSH, and HTTP push.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant