upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/Cargo.toml
AgeCommit message (Collapse)Author
2026-02-25fix: update hardcoded libgit2 version strings in tests to 1.9.2DanConwayDev
The Nix environment provides libgit2 1.9.2 via nixpkgs, which libgit2-sys picks up at build time instead of using its bundled version. This caused test assertions that hardcode the libgit2 version string (appended by libgit2 to patch output) to fail after commit 319bb7f added new Cargo dependencies, though the exact mechanism by which those dependencies triggered the switch from the bundled 1.9.1 to the system 1.9.2 remains unclear. Also bump git2 from 0.20.2 to 0.20.4 in both Cargo.toml files so the bundled libgit2-sys version (0.18.3+1.9.2) properly aligns with the 1.9.2 version in use.
2026-02-25fix IPv6 connection failures with Happy Eyeballs (RFC 8305)DanConwayDev
Implement a custom WebSocketTransport that races IPv6 and IPv4 connections with a 250ms head start for IPv6, matching browser behavior. This prevents broken IPv6 from blocking all relay connections indefinitely. This is a temporary fix until the upstream async-wsocket PR is merged: https://github.com/shadowylab/async-wsocket/pull/42
2026-02-20chore: bump version to v2.2.0v2.2.0DanConwayDev
now changes are in CHANGELOG.md
2026-02-18fix: improve mbox patch parser resilience for optional tag fallbackDanConwayDev
- Use mailparse crate to handle RFC 2047 encoded-words (Q/B encoding) and RFC 2822 header folding in Subject and From headers - Fix email signature separator check: use exact match 'line == "-- "' instead of starts_with to avoid false positives on body lines - Remove dead/incorrect asctime parsing in committer date extraction; simplify to always return None (falls back to author_timestamp)
2026-02-18feat: handle missing optional patch tags for pr/ flowDanConwayDev
- Add mbox_parser module to extract metadata from patch content - Extract author/committer from From: and Date: headers when tags missing - Extract commit message body as fallback for description tag - Implement best-guess parent commit logic using committer timestamps - Update patch_supports_commit_ids to accept mbox-parseable patches - Enable patches without optional tags to appear as pr/ branches
2025-11-18chore: bump version to v2.1.0v2.1.0DanConwayDev
now changes are in CHANGELOG.md
2025-11-14chore: bump rust-nostr v0.44DanConwayDev
fix breaking changes
2025-11-03chore: bump version to v2.0.1v2.0.1DanConwayDev
now changes are in CHANGELOG.md
2025-10-28test: refactor to use rstest more efficient test runsDanConwayDev
Identified high value areas to use rstest that would benefit most and refactored them
2025-10-20chore: bump version to v2.0.0v2.0.0DanConwayDev
now changes are in CHANGELOG.md
2025-10-17chore: bump all cargo dependanciesDanConwayDev
now `cargo outaged` thinks all dependancies are up to date
2025-07-31fix: nip05 breaking changes in rust-nostrDanConwayDev
as its now 'bring your own transport'
2025-07-31chore: bump rust-nostr v0.43DanConwayDev
with trival breaking changes. nip05 changes will be done seperately.
2025-07-16chore: bump 1.7.4v1.7.4DanConwayDev
- apply nip46 breaking changes as remote signers remove nip04 support - apply relay connection timeout once, instead of per request batch - add git server timeouts - bump all dependancies
2025-07-16chore: bump rust-nostr v42DanConwayDev
no breaking changes this time!
2025-07-16chore: bump console indicatifDanConwayDev
as the breaking changes don't impact ngit
2025-07-16chore: cargo upgradeDanConwayDev
command available after `cargo install cargo-edit` and it bumps packages with no-breaking changes in Cargo.toml
2025-06-20chore: bump 1.7.3v1.7.3DanConwayDev
changelog: - rename ngit-relay to grasp - fix: always include HEAD in state event
2025-06-18chore: bump v1.7.2v1.7.2DanConwayDev
changelog: - fix clone when HEAD isn't in nostr state even
2025-06-17chore: bump v1.7.1v1.7.1DanConwayDev
changelog: - fix add support for `git://` clone urls
2025-06-03build: fix release binariesv1.7.0DanConwayDev
work was done to produce more reslient binaries builds to work across different distros and version b98d2819288f86dd5b316c726cda0f84a1f63eb5 this commit fixes the job runner so they actual get built
2025-06-02chore: bump v1.7.0DanConwayDev
changelog: - add quality-of-life features for ngit-relay users - detect ngit-relays and only attempt using unauthenticeted http protocols - better sync and less errors as nostr is the only way to push - overhaul `ngit init` - add simple / advanced mode - add support for ngit-relays - specifiy blossom servers - sensible defaults - misc - add resiliency - push to all maintainer's relays and git servers - require additional maintainers to publish announcements before pushing - allow users to specific fallback relays see `ngit --customize` - add show npub - fixes: - use newest state event found, rather than oldest - more resilient builds for platforms and distros - ignore dereferenced tags in state
2025-05-12chore bump to v1.6.3v1.6.3DanConwayDev
changelog: fix: fallback to http protocol if ssh is unavailable
2025-05-06chore bump to v1.6.2DanConwayDev
changelog: - add event description for remote signing process - fix custom ports use for git servers - bump all dependancies to latest major versions
2025-05-06chore: bump dialoguer v0.11.0DanConwayDev
and fix breaking changes
2025-05-06chore: bump directories v6DanConwayDev
this update appears to just update child dependancies rather than provide breaking changes
2025-05-06chore: remove unused duplicate dependancyDanConwayDev
dependancy isn't being used
2025-05-06chore: bump mock_all v0.13.1DanConwayDev
none of the breaking changes impact this code base
2025-05-06chore: bump serial_test v3.2.0DanConwayDev
none of the breaking changes impact this code base
2025-05-06chore: remove unused keyring dependancyDanConwayDev
the function was intergrated into rust-nostr
2025-05-06chore: bump rust-nostr v0.40 ~> v0.41DanConwayDev
no breaking changes this time
2025-05-06chore: update git2 ~> v0.20.2DanConwayDev
we have had some bugs related to git2 so moving to the latest version
2025-04-01chore: bump rust-nostr v0.37 ~> v0.40DanConwayDev
and fix all of the breaking changes
2024-12-20chore bump to v1.6.0v1.6.0DanConwayDev
changelog: - overhaul and simplify login experience - add `account` api with `login`, `logout` and `export-keys` cmds - add sign up feature targeted at users new to nostr - support nip05 addresses in nostr git urls eg. `nostr://dan@gitworkshop.dev/ngit` - rework `ngit init` to make on-boarding more intuitive with simplier questions and more guidance and prompting to setup nostr remote - don't create `maintainers.yaml` for new repos but continue to support it for projects that already use it - remove ngit `pull`, `push` and `fetch` api to nudge users to use native git cmds with git plugin - expend merge types that automatically update PR status when pushed - various fixes: eg `ngit accountlogin` from outside of a git repository, add QR code border, and make `ngit list` prompts more intuitive - bump dependancies eg rust-nostr to v0.37
2024-11-27chore: bump rust-nosrt v0.37.0DanConwayDev
use RelayUrl in repo_ref which I had resisted as it mutates relay urls when printed to append a slash
2024-11-27build: add description to helpDanConwayDev
and add `ngit init` to description / help content
2024-11-27build: update readmeDanConwayDev
to simplify and target users more than contributors and prioritise building from source
2024-11-22feat(login): auto-proceed upon signer responseDanConwayDev
don't ask the user to press any key to proceed once the signer successfully responds. various approaches were to tried await either any key press or the signer reponse such as `tokio::oneshot`, `tokio::mpsc` and `tokio::watch` but all would keep the process running until key press. this solution of aborting with `signal::ctrl_c` prevents the work around of asking the user to press any key upon the signer reponse.
2024-11-12chore bump to v1.5.3DanConwayDev
note v1.5.3 is actually forked to exclude changes to init which weren't ready for release. the tag v1.5.3 is set to commit: 0089b8fce131c0675539490b67f5a55aab377853 changelog: - fix remote signing as nip46 update has breaking changes - auth to relays on requests - fix `pr/` branch name prefix issue - fix `ngit init` error when remote added before initiation - don't blast initiation events as munity blaster is no more - when git-remote-nostr called directly show help instead of error - bump rust-nostr to v0.36 - replace sqlite with lmdb due do rust-nostr deprecation
2024-11-11chore: bump rust-nostr v0.36DanConwayDev
bump all rust-nostr packages to latest issued version. there have been some breaking changes to nip46 and this applies these changes.
2024-10-28chore: bump rust-nostr to patch near v0.36.0DanConwayDev
bump all rust-nostr packages refactoring code based on breaking changes upgrading to patched version to address signer issue: nostr:nevent1qvzqqqqqqypzq6xcz9jerqgqkldy8lpg7lglcyj4g3nwzy2cs6u70wejdaj7csnjqy88wumn8ghj7mn0wvhxcmmv9uqzpsw5ph8le2n2kh6uchftawt74hddazk9tp7wjmz967y2l0uva5rc7hsstq
2024-10-28refactor: replace sqlite with lmdbDanConwayDev
as sqlite is depricated in rust-nostr
2024-10-02chore: apply patched rust-nostrDanConwayDev
which includes nip46 signer change so it can be initated without completing connection.
2024-09-25chore: bump rust-nostr v0.35DanConwayDev
bump all rust-nostr packages
2024-09-24chore bump to v1.5.2v1.5.2DanConwayDev
changelog: - login via nip46 QR code - enable login directly in git plugin - add resilience to git plugin so that a poorly formated pr will gracefully fail and won't cause issues for other prs and state events
2024-09-24feat(login): login via nip46 QR codeDanConwayDev
or nostrconnect url string which is a much better UX flow for nip46
2024-09-20chore bump to v1.5.1v1.5.1DanConwayDev
changelog: * git plugin reports on event broadcasting
2024-09-18chore bump to v1.5.0v1.5.0DanConwayDev
changelog: - add new nostr url format that works better for MacOS users `nostr://<*protocol>/<npub123>/<*relay-hint>/<identiifer>` \*optional - status updates during clone, push and fetch - intelligent protocol selection and fallback - unless unusual protocol specified in clone url it will try in this order: - fetch: https unatuth, ssh, https - push: ssh, https auth - save successful protocol in git config so it is tried first next time - enable override from nostr url (will only use this protocol) - enable building binaries via nix - refactor into lib and bin structure - bump dependnancies
2024-09-18chore: bump git2 v0.19.0DanConwayDev
in the hope that it addresses the 'early EOF' error that sometimes appears when cloning a repo.
2024-09-10build: fix dependancy package errorsDanConwayDev
which were preventing the build process from running
2024-09-04refactor: organise into lib and bin structureDanConwayDev
the make the code more readable this commit just moves the files, the next commit should fix the imports
2024-08-30chore: bump to v1.4.5v1.4.5DanConwayDev
changelog: * when clone url is ssh use auth for `list` and `fetch` as they are required * when clone url is ssh, fallback to https so read events dont always require auth * stop asking for git server credentials when pushing `pr/` branch * fix `no repo events at specified coordinates` error via rust-nostr v0.34.1 upgrade
2024-08-28chore: bump rust-nostr to v0.34.1DanConwayDev
this fixed an efficency thing which meant we needed to increase a timeout during the update which is reverted int his commit. see: nostr:nevent1qvzqqqqx25pzpgqgmmc409hm4xsdd74sf68a2uyf9pwel4g9mfdg8l5244t6x4jdqy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcqyqg5lfwhruw4qjpnlzq0tct0swnuj9dvavz8gsq8npuyygznstw36882alm
2024-08-28chore: bump rust-nostr to v0.34.0DanConwayDev
bump all rust-nostr packages I'm not sure I'm completely happy with allowing mutable_key_type but it is just run inside tests it appears that Event didn't have the Copy trait in v0.33.0 so I'm not sure why this warning suddenly appeared the timeout of client.get_events_of needed to be doubled which could indicate that an ineffiency has been introduced in v0.34.0 the primary motivation for upgrading now was to get this fix: nostr:nevent1qqsffl2ld678pjj77rh9k2g4edljmxdu6ew4lvgnglxv7jhu3ru8vvcpp4mhxue69uhkummn9ekx7mqzyzsq3hh327t0h2dq6matqn5064cgj2zanl2stkj6s0lg4t2h5dty6rm2ucm as I suspect it is also effecting other repositories eg nostr-profile-manager
2024-08-27chore: bump to v1.4.4v1.4.4DanConwayDev
changelog: * include git plugin in release zip
2024-08-27chore: bump to v1.4.3v1.4.3DanConwayDev
changelog: * fix clone using nostr url
2024-08-20chore: bump to v1.4.2v1.4.2DanConwayDev
changelog: * fix only maintainers can push normal branches / tags
2024-08-20chore: bump to v1.4.1v1.4.1DanConwayDev
changelog: * fix pushing tags in git-remote-nostr
2024-08-20build: removed git categoryDanConwayDev
as publishing to crates.io now gives error: ` The following category slugs are not currently supported on crates.io: git `
2024-08-20chore: bump to v1.4.0v1.4.0DanConwayDev
changelog: * add git-remote-nostr binary
2024-08-02bump nostr-database to v0.33.1DanConwayDev
to get latest fixes applied
2024-08-01feat(remote): add `nostr://npub/identifer`DanConwayDev
support with optional relays as query parameter
2024-07-26fix(remote): authenticate pushesDanConwayDev
in the future we could implement our own credentials callback function to remove the dependancy
2024-07-26feat(remote): add nostr git remote helperDanConwayDev
as a simple proxy to the first git server listed in announcement parse clone url as `nostr://naddr123...`
2024-07-25chore: bump to v1.3.1v1.3.1DanConwayDev
changelog: - fix(init): update maintainers.yaml if identifier or relays have changed
2024-07-24chore: bump to v1.3.0v1.3.0DanConwayDev
changelog: * NIP-46 remote signing (from Amber, etc) * `list` breaks down proposals by status * local cache in `.git` to enable viewing proposals offline and reuse by other git clients * introduced `fetch` to download recent proposals * improved repo selection and handling of multiple maintainers * unqiue branch names for proposals to prevent name conflicts * login to different npubs for different repositories * store login details in git config so they can be reused by other git clients ran locally * add NIP-31 alt tags to events * add euc marker per NIP-34 tweak * fix: ensure repo events of all maintainers are tagged in proposals * fix: stop filtering out very large patches
2024-07-22chore: bump rust-nostr to v0.33.0DanConwayDev
bump all rust-nostr packages move from using patched nip46 nip05 function to profile function in v33 fix send_events_to error message
2024-07-03revert: "chore: bump to v1.3.0"DanConwayDev
This reverts commit c6cf49d8349c7078e28a3d0e4a7628f91e0195d9 as crates.io requires all dependancies are published to crates.io we will need to wait until rust-nostr v33 so we don't use the patched version of v32 from the forked repo
2024-07-03chore: bump to v1.3.0DanConwayDev
changelog: * add support for NIP-46 remote signer * login to different npubs for different repositories * store login details in git config so they can be reused by other clients * cache profile events * add NIP-31 alt tags to events * add euc marker per NIP-34 tweak * fix: ensure repo events of all maintainers are tagged in proposals * fix: stop filtering out very large patches
2024-07-03chore: update package homepageDanConwayDev
to reflect changes to gitworkshop url structure
2024-06-28feat(login): login with nostr address via nip46DanConwayDev
currently using patched version of rust-nostr with function to fetch nip46 relays from nip05 providers. this patch has been merged so it will make it into the next rust-nostr release.
2024-06-28feat(login): login with nip46 remote signerDanConwayDev
and save details in git config
2024-06-24feat(login): store in git config and use cacheDanConwayDev
replace ngit yaml file config with: * nsec / ncryptsec / npub in git config in nostr.* namespace * sql database cache for metadata and relay events allow different logins to be used for different git repositories by storing login in local git config
2024-06-13chore: bump rust-nostr to v0.32.0DanConwayDev
both nostr and nostr-sdk packages and also in test_utils fix the many breaking changes fix: ignore trailing slash when depuplicate relays for send events. this was picked up as TagStandard::RelayMetadata has started adding a traling slash. refactor cli output test function `expect_send_with_progress` so that relays can succeed / fail in a random order
2024-06-11refactor: bump rust-nostr to v0.30 use ncryptsecDanConwayDev
bump nostr and nostr-sdk packages and also in test_utils remove custom ncryptsec implementation and use the newly added implementation nip49 version in rust-nostr note a patched v0.30 is used so that log_n is exposed so that user can be warned it might take a few seconds to decrypt. this has now been merged into the library. note that this will no longer decrypt existing ncryptsec values as it is uses a longer string. this should therefore be bundled with the upcoming change to storing nsec and ncryptsec in git config.
2024-05-14chore: bump to v1.2.1v1.2.1DanConwayDev
changelog: *fix `ngit init` support for multiple maintainers
2024-05-14chore: bump to v1.2.0v1.2.0DanConwayDev
changelog: * remove unreliable relay.f7z.io from default relay set * `ngit send --in-reply-to` tag any nostr notes and npubs in proposals * `ngit send` link to proposal on gitworkshop
2024-04-16chore: bump to v1.1.2v1.1.2DanConwayDev
changelog: * improve relay timeout behaviour * fix `ngit init` handling of multiple values eg `clone` * improve reliability via with dependancy upgrade * build via nix in ci
2024-04-16build: update cargo.toml homepage and repoDanConwayDev
away for github and towards gitworkshop.dev
2024-03-27bump nostr-relay-pool to v0.29.1DanConwayDev
as patch accepted into package
2024-03-27use patched nostr-rust v0.29DanConwayDev
to address send_event_to spurious timeout error
2024-03-22chore: bump rust-nostr to v0.29.0DanConwayDev
both nostr and nostr-sdk packages and also in test_utils
2024-03-08chore: bump to v1.1.1v1.1.1DanConwayDev
changelog: * fix stack overflow bug when origin remote doesnt exist
2024-03-08chore: bump to v1.1.0v1.1.0DanConwayDev
changelog: * `ngit send` - improve proposal commit
2024-02-29chore: bump to v1.0.0v1.0.0DanConwayDev
following semantic versioning, this release includes breaking changes so it has a new major version this is not reflection on its stability
2024-01-31chore: bump cargo.toml to v0.1.2v0.1.2DanConwayDev
in preparation for issuing to crates.io
2024-01-26chore: upgrade rust-nostr v0.27.0v0.1.1DanConwayDev
this is a contribution from jk (sectore) that I rebased and squashed into this commit. the tests were broken in the last few commits to rush out some fixes. this change may introduce more issues because of Relay.respond_standard_req.
2024-01-26chore: bump cargo.toml to v0.1.1DanConwayDev
in preparation for issuing to crates.io
2024-01-23chore: bump cargo verion to v0.1.0v0.1.0DanConwayDev
2023-12-12feat(claim) create yaml add maintainers and relaysDanConwayDev
- create yaml file with maintainers and relays - add maintainers to repo event - add current user as maintainer - custom repo relays from cli argument - save git-server in repo event
2023-11-01build(deps) update nostr nostr-sdkDanConwayDev
fix breaking changes
2023-10-01feat(prs-create) send to multiple relaysDanConwayDev
add tests but these currently don't work when run together
2023-10-01feat(prs-create) send commit to relayDanConwayDev
- add client - use client to send event - add async functionality - enabler for relay interaction whilst getting cli input
2023-10-01feat(prs-create) find commits and create eventsDanConwayDev
- identify commits - create pull request event - create patch events
2023-09-01feat(login) password login using encrypted nsecDanConwayDev
Enables the user to only handle the nsec upon first use of the tool by encrypting it with a password and storing it on disk in an application cache. The approach to encryption draws heavily from that used by the gossip nostr client. - unencrypted nsec is zeroed from memory - a salt is used to defend against rainbow tables - computationally expensive key stretching defends against brute-force attacks of passwords with low entropy. There is UX trade-off between decryption speed and key-stretching computation. This UX challenge is exacerbated in a cli tool as decryption must take place more regularly. Thought was put into the selected n_log and a heavily reduced value is provided for long passwords where security benefits are smaller. A more granular reducing in computation was also considered by rejected to avoided to revealing just how weak a password is as most weak passwords are reused.
2023-09-13refactor: rebuild app skeletonDanConwayDev
Create skeleton for a complete rebuild of the prototype as a production ready product. Includes design patterns for: - dependency injection - unit testing with dependency mocking - integration testing - error handling - config storage BREAKING-CHANGE: ground-up redesign with incompatible protocol standards
2023-05-21cargo toml and lockDanConwayDev