| tag name | v2.0.0 (f5ad8c320b413b23df80d776217e750765186892) |
| tag date | 2025-10-20 15:15:49 +0100 |
| tagged by | DanConwayDev <DanConwayDev@protonmail.com> |
| tagged object | commit 9b97fd944f... |
- **SSH Key Authentication in nostr:// URLs**: The user field in nostr git URLs (e.g., `nym1@ssh/npub123/identifier`) is now treated as an SSH key file location rather than an SSH user. SSH key can be specified as a file within `~/.ssh` (e.g., `~/.ssh/nym1`) or as a full/relative path. Most git servers expect the SSH user to be 'git', so specifying a different SSH key is the idiomatic way to use different credentials.
- **Pull Requests Support**: Introduced complete PR functionality for large contributions that would be too big for relays as patches:
- Generate PR events for oversized patches automatically
- Support PR updates and PR as patch revision
- List open/draft proposals on repo relays/servers as `pr/*` branches and all proposals as `refs/pr/*` and `refs/pr/pr-by-id/head`
- Push PRs to custom clone URLs with auto-fork creation fallback
- Add `--force-pr` and `--force-patch` flags for manual control
- Full NIP-34 compliance with `merge-base` tags
- **NIP-22 Status Events Support**: Read and process NIP-22 style status events for proposals and PRs
- **ngit sync command**: New command to synchronize git servers with nostr state
- Optional `--force` flag for forced synchronization eg deleting refs on non-GRASP servers
- `--ref-name` parameter to limit sync to a single reference
- **ngit init improvements** (simple model for non-grasp servers):
- Use user's grasp list for defaults instead of hardcoded options
- List and allow selection/deselection of non-grasp servers
- Check and fetch origin refs when missing locally
- Publish state event and sync when existing origin matches tip
- Allow specifying non-default SSH key in `nostr://` address
- **Git server timeouts**: More robust timeout enforcement in both ngit binary and remote helper
- **Annotated and lightweight tags**: Proper handling and pushing of all tag types
- **nostr:// URLs with NIP-05**:
- Fixed URLs with NIP-05 addresses without local part
- Allow NIP-05 domain without `_@` prefix
- **Sync and fetch improvements**:
- Don't fetch tags already available locally
- Fetch refs missing locally before sync, fail gracefully
- Include all valid nostr state (was incorrectly filtering)
- **Repository state**: Only use state and announcements from authorized maintainers
- **Status events**: Only use status events from author and maintainers
- **Grasp server detection**: Fix to ensure no SSH fallback when not needed
- **NIP compliance updates**:
- Fix `t` tag: `revision-root` → `root-revision` (NIP-34)
- Fix mention marker → `q` tag (NIP-10 update)
- **Error handling**: Capture more errors when updating refs
- Suppress warnings for poorly formatted proposals (only show to maintainers/author)
- Updated to latest rust-nostr v0.43
- Updated gitworkshop.dev URL format (now uses nevent)
- Removed blossom from grasp server detection (removed from grasp spec)
- Print event description before publishing for clearer terminal UI
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEsRaN4Kb3mvfPwNXpaOFUhtc/deEFAmj2RBUACgkQaOFUhtc/
deEidQ//T9AIrksDqP8K8m0mOaYMbV/hko2GbzwdWENeoZT9K0S3PkReiO/XFgMt
Ay+fckgUcgk2jLBfwmxwxAy1gMWp8PT8FW97uMeAq+N2rIbMF4nGBNL3lCoCn15k
skveuFS5iFdnYCOtgKwPlEvMTF5SsZ+xXpOUau0kWy4BPaSLUrdhtNwZ0S8nw9YD
4QjTgxNxsJYzAZkU4K9O2RQS7x74mNVLlFPQ6WIOYwYixDbSYKXd+XQebKrkWNHb
OvvagqXfAxmJ7btqjY0z/de8f9cHvFIXm9F6YriuguiSMrvJYKzRne1P3kAuvBqG
yZKNpxkAGyJu8r+EHyuJL+gl12hxAWBmT42jTc5PDUpM7BjKzXf+WnbbhRtMXlpG
158hoG6IWQc+7nsjtBPrBffRrCE9Mkqh6ecw9x+8ehM5iLkwajj9w68uGEXLS4tt
6M6GIrBqIFuqBMkEO0AfOwvVDB2EgRQDNzK4o6Y1b2a1xq1YFSCKpVpe+73Hhq4Q
VJ3ordOAkDfrWJDJuJpZj1xG2JHya7on7w8qzJprQAGcPbJ5AtCwydTskEWBRoVQ
2hdf8wHgAwUsFIJgOls25QOLzNcrqQndRtT9LXCQXpeEYWz0VkAMykYpAOL6AOO3
CB+0R55D8evgeA4rs/IWndHGDlIruTSeFZ3DXiECwceRxJd7Ch4=
=86J7
-----END PGP SIGNATURE-----