| Age | Commit message (Collapse) | Author |
|
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.
|
|
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
|
|
now changes are in CHANGELOG.md
|
|
- 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)
|
|
- 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
|
|
now changes are in CHANGELOG.md
|
|
fix breaking changes
|
|
now changes are in CHANGELOG.md
|
|
Identified high value areas to use rstest that would benefit most and
refactored them
|
|
now changes are in CHANGELOG.md
|
|
now `cargo outaged` thinks all dependancies are up to date
|
|
as its now 'bring your own transport'
|
|
with trival breaking changes. nip05 changes will
be done seperately.
|
|
- 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
|
|
no breaking changes this time!
|
|
as the breaking changes don't impact ngit
|
|
command available after `cargo install cargo-edit` and it bumps
packages with no-breaking changes in Cargo.toml
|
|
changelog:
- rename ngit-relay to grasp
- fix: always include HEAD in state event
|
|
changelog:
- fix clone when HEAD isn't in nostr state even
|
|
changelog:
- fix add support for `git://` clone urls
|
|
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
|
|
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
|
|
changelog:
fix: fallback to http protocol if ssh is unavailable
|
|
changelog:
- add event description for remote signing process
- fix custom ports use for git servers
- bump all dependancies to latest major versions
|
|
and fix breaking changes
|
|
this update appears to just update child dependancies rather than
provide breaking changes
|
|
dependancy isn't being used
|
|
none of the breaking changes impact this code base
|
|
none of the breaking changes impact this code base
|
|
the function was intergrated into rust-nostr
|
|
no breaking changes this time
|
|
we have had some bugs related to git2 so moving to the latest version
|
|
and fix all of the breaking changes
|
|
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
|
|
use RelayUrl in repo_ref which I had resisted as it mutates relay
urls when printed to append a slash
|
|
and add `ngit init` to description / help content
|
|
to simplify and target users more than contributors and prioritise
building from source
|
|
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.
|
|
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
|
|
bump all rust-nostr packages to latest issued version.
there have been some breaking changes to nip46 and this applies
these changes.
|
|
bump all rust-nostr packages
refactoring code based on breaking changes
upgrading to patched version to address signer issue:
nostr:nevent1qvzqqqqqqypzq6xcz9jerqgqkldy8lpg7lglcyj4g3nwzy2cs6u70wejdaj7csnjqy88wumn8ghj7mn0wvhxcmmv9uqzpsw5ph8le2n2kh6uchftawt74hddazk9tp7wjmz967y2l0uva5rc7hsstq
|
|
as sqlite is depricated in rust-nostr
|
|
which includes nip46 signer change so it can be initated
without completing connection.
|
|
bump all rust-nostr packages
|
|
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
|
|
or nostrconnect url string which is a much better UX flow for nip46
|
|
changelog:
* git plugin reports on event broadcasting
|
|
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
|
|
in the hope that it addresses the 'early EOF' error that sometimes
appears when cloning a repo.
|
|
which were preventing the build process from running
|
|
the make the code more readable
this commit just moves the files, the next commit should fix the imports
|
|
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
|
|
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
|
|
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
|
|
changelog:
* include git plugin in release zip
|
|
changelog:
* fix clone using nostr url
|
|
changelog:
* fix only maintainers can push normal branches / tags
|
|
changelog:
* fix pushing tags in git-remote-nostr
|
|
as publishing to crates.io now gives error:
`
The following category slugs are not currently supported on crates.io: git
`
|
|
changelog:
* add git-remote-nostr binary
|
|
to get latest fixes applied
|
|
support with optional relays as query parameter
|
|
in the future we could implement our own credentials callback function
to remove the dependancy
|
|
as a simple proxy to the first git server listed in announcement
parse clone url as `nostr://naddr123...`
|
|
changelog:
- fix(init): update maintainers.yaml if identifier or relays have changed
|
|
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
|
|
bump all rust-nostr packages
move from using patched nip46 nip05 function to profile function in v33
fix send_events_to error message
|
|
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
|
|
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
|
|
to reflect changes to gitworkshop url structure
|
|
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.
|
|
and save details in git config
|
|
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
|
|
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
|
|
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.
|
|
changelog:
*fix `ngit init` support for multiple maintainers
|
|
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
|
|
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
|
|
away for github and towards gitworkshop.dev
|
|
as patch accepted into package
|
|
to address send_event_to spurious timeout error
|
|
both nostr and nostr-sdk packages and also in test_utils
|
|
changelog:
* fix stack overflow bug when origin remote doesnt exist
|
|
changelog:
* `ngit send` - improve proposal commit
|
|
following semantic versioning, this release includes breaking changes
so it has a new major version
this is not reflection on its stability
|
|
in preparation for issuing to crates.io
|
|
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.
|
|
in preparation for issuing to crates.io
|
|
|
|
- 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
|
|
fix breaking changes
|
|
add tests but these currently don't work when run together
|
|
- add client
- use client to send event
- add async functionality - enabler for relay interaction whilst
getting cli input
|
|
- identify commits
- create pull request event
- create patch events
|
|
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.
|
|
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
|
|
|