| Age | Commit message (Collapse) | Author |
|
If the user has NIP-05 set up in profile, and it resolves at the time
of running `ngit init`, NIP-05 will be used in the nostr remote url.
|
|
update the rust nightly `fmt` overlay which needs to be pinned
to a specific version (this case by date)
update formatting in main files via `cargo fmt`
|
|
update nix dependancies to latest version using default update options
fix warning related to idomatic patterns
|
|
improve the error message when fetching nip05 profile fails
|
|
prevent a panic when tags are of an unexpect length
|
|
enable nostr git url format
alongside and
format
Merge branch 'pr/nip05-lez(ff1845c0)'
|
|
property `user`, which refers to the ssh user to be used when
connecting to git remotes, was being parsed as the local section of
the nip05 address
|
|
so the user understands the cause of any delay if the domain takes
a while to respond
|
|
prioritise using nip05 nostr url format when the nip05, public key
mapping is stored in the (usually local) git config.
|
|
store all nip05s in a single git config item called "nostr.nip05"
using the `<nip05>:<hex-public-key>` format with multiple values
comma seperated.
git config is suposed to be human readable so it consideration was
given to storing the npub instead of hex but nip05 generally uses hex
and its rarely, if at all, going to be read directly by humans.
in the future it might be better to use git syntax for storing
multiple items but library git2 doesn't support this. it would be
trivial to do though. multiple nip05 items is an edge case so this
format is ok for now.
|
|
update tests to use the async `parse_and_resolve` instead of removed
`from_str` method
|
|
replace `NostrUrlDecoded::from_str` with
`NostrUrlDecoded::parse_and_resolve`
store nip05 pubkey mapping in git cache
|
|
get the latest user relay list before pushing patches and repo
announcement events
|
|
update the tests to reflect the changes in the previous 4 commits
|
|
when nostr address is unknown and user is prompted to enter it,
ask the user to save it as a git remote.
|
|
when nostr address is unknown and user is prompted, validate that
a the entered repo exists (there are events related to it) before
proceeding
|
|
git-remote-nostr is always called with a nostr remote that specifies
a single repository coordinate whereas `ngit` commands need to
discover this.
this change moves from getting this value from the following places
in priority order:
1. git config item `nostr.repo`
2. first nostr remote discovered
2. maintainers.yaml
3. prompt the user
to:
1. nostr remote - if multiple, prompt the user to select
2. git config item `nostr.repo`
3. maintainers.yaml - removing the legacy format
4. prompt the user - now with support for nostr remote format
|
|
previously fetch supported fetching multiple trusted coordinates at
once. The additional complexity trade off isn't worth it.
It will still fetch events related to the coordinates of maintainers
that the trusted maintainer lists.
A scenario where there might be multiple trusted coordinates is
where a large repo is split into multiple nostr repos to manage
pull requests and issues in seperate sub-units. I might therefore
have different remotes that target different identifiers.
There also might be different set of maintainers groups that are
have different views on the latest state of the same codebase and
they haven't split off into using different identifiers.
Its simplier ngit to fetch these different nostr repos independantly
when requested. git-remote-nostr will do this automatically as it
works through remotes but for ngit cmds a further change is required
so `get_repo_coordinates` and `try_and_get_repo_coordinates` prompts
to select the desired one.
|
|
there needs to a limit so the total length of the ref name is < 252
keeping it shorter makes it easier for other contributors to work with
|
|
if the nostr remote was created by the maintainer before
`ngit init` was ran.
the error is more likely to occur when a user clones a repo using
the nostr remote whist the relay in the hint is down and the fallback
relays dont have the announcement. or if the user is offline when
they clone.
|
|
as there might be a repo event but we couldn't find it
|
|
if there is no marker or "euc".
also capture name and description even if there are additional items
in the tag array.
|
|
check whether remote `origin` is nostr url and if not attempt
to set it.
|
|
to improve legability of function
|
|
update the repo announcement event based on any updates to
maintainers.yaml that are included in commits pushed to
'main' or 'master'
|
|
as default instead of user write or none
|
|
as the feature is implmeneted
|
|
using the backend feature I requested for rust-nostr
|
|
for existing login, the remote signer should only be called when an
event needs to be signed. This might be a AUTH event so we still
need to call it during read scenarios.
a feature was added to rust-nostr to enable this.
|
|
use RelayUrl in repo_ref which I had resisted as it mutates relay
urls when printed to append a slash
|
|
to improve machine readability
|
|
as part of the easy on-boaridng flow
|
|
to reflect the new interface and testing only nsec login
|
|
add some basic copy under help
|
|
as a minor UI improvement
|
|
in nearly all cases 'cannot' was used when an action was tried and
failed. 'failed to' is strictly better because:
* just because the action didn't work that time doesnt mean it
cannot work
* it is better at drawing the users attention to a problem
|
|
there was a bug in `Interactor` so that reports were turned off by
default for choices.
This was embodied into the CLI tests but this turns them on in these
scenarios.
|
|
which should always be true but was defaulting to false when the
`dont_report` functions were added
|
|
reverts a change in f79014235e85554e3661b3f2a02b8fa88bc192ff which
caused a subtle change to how choices were displayed that caused
the cli tester error when choices without prompts were displayed eg.
in `ngit list` tests
|
|
to guide the users how to login dispite the git config errors
|
|
because a user might be logged in to the same account locally
and globally
|
|
if a local and or global account is already logged in, prompt to
logout before overwriting with new login details
|
|
previously cli args were only used during other commands to bypass
normal login
|
|
for the simpliest UX it creates and publishes a profile and relay
list event.
|
|
rather than any key press as `esc` wasn't included as a key press
|
|
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.
|
|
* simplify login menu, making it more accessable to newcomers and
easier to select remote signer options
* enable `ngit login` to work from anywhere (not just a git repo)
* assume fresh login details saved to global git config but fallback
to local repository
* maintain local repository login via `ngit login --local`
* maintain login via CLI arguments eg `ngit send --nsec nsec123`
* nudge users to remember nsec when pasting in ncryptsec for a
better UX, whilst maintaining the option to be prompted for
password everytime
* create placeholder menu items for help menu and create account
|
|
rust-nostr v35/v36 changed the `pool.send_event_to` error message to
use 'event/s not published' instead of the error message
from the relay. `relay.send_event` supplies the useful error message.
|
|
identification of signer has been removed from rust-nostr.
until it is added back in we must always prompt the user about
signing as if its a local signer the message will be removed
before the user sees it.
unfortunately this is picked up by the tests so we must
only prompt the user when not running tests.
|
|
when there is an npub listed in git config but login was via direct
cli arguments to the current process, the wrong npub would be used.
this is the case for the ngit_init tests.
this can be more eligantly if rust-nostr NostrConnect::new() were
updated to accept user public key as requested here:
https://gitworkshop.dev/r/naddr1qvzqqqrhnypzq6xcz9jerqgqkldy8lpg7lglcyj4g3nwzy2cs6u70wejdaj7csnjqy88wumn8ghj7mn0wvhxcmmv9uqq5un4wd6z6mn0wd68y2z2qh0/issues/note1qa2pty0mnjhsme3thza24u3nv8u7859fqw2qg6fuyx9w00e2gekqvl3yg9
|
|
on get the user public key from the remote signer when it is unknown
so that read operations aren't blocked by being unable to reach
remote signer
|
|
bump all rust-nostr packages to latest issued version.
there have been some breaking changes to nip46 and this applies
these changes.
|
|
muntiny wallet has shut down and removed its blaster relay
|
|
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
|
|
as it would fail to save to local git config
|
|
or nostrconnect url string which is a much better UX flow for nip46
|
|
originally this was disabled because there was a concern that it
would effect the operation of the remote helper due as it prints
to stdout.
it now only writes to stderr.
|
|
as 30s is too short for those of us fumbling with
our remote signer app
|
|
make poorly formatted patches fail silently. we stop trusting that the
`commit` tag in the latest patch can be produced by apply the patches.
to achieve this we must recreate the commit during the list command,
which require fetching the parent oids.
support patches without optional `commit` and `parent-commit` tags.
|
|
so they match v1.8.2 used in updated git2
|
|
if another protocol was tried first and failed
|
|
so it is done consistantly across ngit and the remote helper
|
|
push needs to use push_transfer_progress rather than transfer_progress
|
|
to make it more like native git
|
|
which potentially were only identified when a dependancy was updated
|
|
so that it the filesystem url is shown
|
|
used in fetch and tweak the error reporting
|
|
abstract the protocols and order to try under different scenarios
add some additional scenarios eg hardcoded http
tweak error reporting
|
|
as they are easier to read
|
|
enable override from nostr url
clone url is local use local
otherwise try https unathenticated, ssh, then https authenticated
|
|
to enable remote to interact with git servers over a range of
specified protocols
|
|
to make it easier to read
|
|
as it should have been used in the first place
|
|
move some functions out of ngit and into lib/mod
and lib/git_events
remove MockConnect from binaries so it is only used in the library.
this was done:
* mainly because automocks were not being imported from
lib into each binary
* but also because the these functions were being
tested with MockConnect
|
|
the make the code more readable
this commit just moves the files, the next commit should fix the imports
|