| Age | Commit message (Collapse) | Author |
|
to be consistent with the summary version
|
|
'maintainers' is missleading as the announcement authors may not be in
the maitnainer set
|
|
Apply the same hidden-to-visible MultiProgress pattern used for fetch
to send_events. In concise mode (non-verbose, non-test, non-silent),
a spinner is shown immediately and the detail progress bars are
revealed after a delay, using the deferred bar finish mechanism.
|
|
as its not fetching from git servers just yet
|
|
The heading bar was being inserted into the MultiProgress after the
draw target switch, but by then all relay bars were already finished
so indicatif did not re-render the layout. Pre-add the heading bar
at creation time (position 0, before relay bars) and only call
finish_with_message on it after the draw target switches to stderr.
|
|
The 'fetching updates...' heading was finished with finish_with_message
while the draw target was still hidden, so indicatif never rendered it.
Move the draw target switch before the heading insertion so the heading
renders immediately when added.
|
|
indicatif does not re-render bars that called finish_with_message while
the draw target was hidden. Instead of trying to force a redraw, defer
the finish_with_message call until after the draw target switches to
stderr. A BarRevealState coordinates between relay tasks and the timer:
bars that complete before the 5s reveal store their finish state in a
mutex-protected list, which the timer flushes after switching the draw
target. Bars completing after reveal finish immediately as before.
|
|
tick() is a no-op when enable_steady_tick() is active. Use
force_draw() on a bar to trigger a full MultiState redraw
including bars that finished while the draw target was hidden.
|
|
Use a ProgressBar inside the detail multi for the heading instead
of eprintln so it gets cleared with progress_reporter.clear()
and never appears when fetch completes before the delay.
|
|
Replace the broken SpinnerState approach (which checked should_expand at
task spawn time when all tasks spawn simultaneously) with a two-MultiProgress
pattern: a visible spinner shown immediately, and a hidden detail multi that
every relay task always adds bars to. A background timer reveals the detail
bars after 5s, printing a heading before switching the draw target.
|
|
Shows a progress spinner when fetching from git remotes in non-verbose mode.
Suppresses git fetch output and listing messages when not in verbose mode.
Uses NGITTEST environment variable for test timeouts.
|
|
Progress reporters were not being cleared after successful operations,
leaving progress bars visible in the terminal output. Now they are
properly cleared when all operations complete without errors.
|
|
When a PR branch already exists locally, the previous code would silently
move the branch pointer without checking for tracking or fast-forward safety.
Now:
- If branch has tracking: checkout and warn user to git pull
- If no tracking and fast-forward: safely move pointer
- If no tracking and diverged: show copy-paste commands for reset/rebase
- If commit not found locally: suggest fetching
Uses console crate for yellow output instead of hardcoded ANSI codes.
|
|
- Add --relay flag to 'ngit account create' allowing users to specify
relay URLs (repeatable). Defaults to relay-default-set when not provided.
- Remove fallback relays from fetch when repo context exists (repo
coordinate provided). Only use them for bootstrapping (profile discovery
with no repo context).
- Remove fallback relays from publish when repo or user relays exist.
Only use them when neither is available (e.g. new account signup).
- Update --customize help text to reflect new relay-default-set behavior.
|
|
The more_fallback_relays field is never consumed anywhere in the codebase.
Removing it from the Client struct, Params struct, trait definition, and all
related initialization code.
|
|
The relay.nostr.band relay is now offline and should be removed
from the default relay set.
|
|
Update login flow to support non-interactive mode with --nsec flag.
Refactor login logic to handle both interactive and non-interactive cases.
Add better error handling and validation.
|
|
Add CliError type for styled error output and cli_error() helper function.
Update Interactor to support non-interactive mode with default values.
Add prompt methods that respect non-interactive mode and provide better
error messages when required values are missing.
|
|
use more idomatic function
|
|
add additional test to cover this scenario
|
|
it was only checking local cache, where profile events are stored
only stored in global
|
|
because thats not needed
|
|
so that relay/git servers appear dim when fetch action is complete
|
|
copy relay fetching approach to async and reporting
|
|
so it doesnt use the git_repo
|
|
so it shows a summary rather than a lot of lines of issues
|
|
also reduce the clutter in the cli output for grasp servers.
|
|
some test failed and some test jus took too long
|
|
also auto-retry connection after 2s with x1.5 increment until timeout
|
|
otherwise we prompt the user to manually add it to global git config
but they don't know the value. we did it like this to not expose the nsec
but i in this case we should.
|
|
so we dont return a value to the git during remote helper operations
|
|
the user pubkey was being used in bunker-url rather than the bunker pubkey.
fixes
nostr:nevent1qvzqqqqx25pzpv3tq6c9rl2jx2tx4y6y5c6dj4krmse60a0vmjkea5gam3qjpfljqqsx5ztpy48muheny4p49hh634l5zs3jqw9x5980dm9xsjsk98jrk8ch2sdsw
|
|
also fix the report so that we show nip10 style statuses too
|
|
to ensure we dont try and fallback to ssh
|
|
update patches ahead of wider upgrade. clippy required some autofixes
|
|
replaces the "user" in the nostr_url format with
"ssh_key_file", to support the original intent, which was to allow
users to specify different authentication credentials.
most git servers always expect the ssh user to be 'git'.
the idiumatic way of specifying logging in as a different user is to
specify a different ssh key.
the idiomatic way of storing non-default ssh keys is in the location
`~/.ssh/key_name`. "ssh_key_file" can be specified as `key_name`,
for keys in the default location, or as a relative or absolute custom
location eg. `/other_keys/.ssh/nym1` or `../.ssh/nym1`.
BREAKING CHANGE: in nostr git url nym1@ssh/npub123/identifer, nym1 is
now treated as ssh key file location rather than a ssh user. it can
be specified as a file within `~/.ssh` eg `~/.ssh/nym1` or a full or
relative path.
|
|
following its inclusion in the NIP-34 spec
|
|
move the PR push code in 'ngit send' into lib.
reuse the non-interactive fallbacks in git-remote-nostr
|
|
the patch I sent to rust-nostr library got merged
|
|
allow users to use just a nip05 domain in nostr:// urls rather than
requiring _@ prefix.
|
|
abstracted git remote helper fetch functions
added support to `ngit list` to fetch PR data and checkout as proposal
branch
|
|
at some point we introduced a bug were we were taking the state and
git servers from non authorised maintainers.
|
|
|
|
having implemented 3b5c48f5a2a4b9be5d14baa8f5e801fefd5c1166,
a ref pushed to refs/nostr/<event-id> on a github repo was accepted
but was not confirmed
|
|
to keep the user informed of whats happening / happend
|
|
don't treat this as accepted
|
|
attempt to use a range of protocols instead of unath http
|
|
so we can use it elsehwere
|
|
to make it's purpose clearer
|
|
previously server might respond with errors updating refs but we
were not treating this as a failure to push those refs.
|
|
if use is maintainer, push PR to all repo git servers.
if user has a fork, push to all git servers it lists, and repo
grasp servers.
if user hasn't got a fork but has a user grasp list and pushing
push to repo grasp servers fails, create a personal-fork
automatically at each user grasp server and push there.
fallback to prompting user for either grasp servers or git server
with write permission.
if user provides grasp servers, suggesting adding to user preference
list.
|
|
allow specifying ref for pushing PR to custom clone url
|
|
if the repo doesnt list any grasp servers, or pushing to them fails
|
|
send as a PR if the commit would make patches that are too big for
nostr events.
send as a PR update if the proposal is PR.
send as a PR, revising a patch root, if patches would be too big.
in tests `get_pretend_proposal_root_event` has to be a actual proposal
with a tip, rather than just a cover letter, so we have replaced it.
|
|
for future use in `ngit send`
|
|
instead of `match_events` after receiving events
|
|
NIP-34 specifies patch revisions should have a `t` tag of
`root-revision` whereas we have been using `revision-root`.
this fixes it and and handles events created with the incorrect tag.
|
|
where just the nevent will do
|
|
so we can use it in ngit as well as remote helper
|
|
required for rust-nostr v0.43 update
|
|
as its now 'bring your own transport'
|
|
with trival breaking changes. nip05 changes will
be done seperately.
|
|
to enable forthcoming ngit sync cmd
|
|
to enable forthcoming `ngit sync` cmd
|
|
and show a more helpful message when proposal can be checked out
using the remote
|
|
for use by `ngit list`
|
|
and include e tag, etc per nip
|
|
Rename `params.fallback_relays` and `client.fallback_relays` to
`relay_default_set`. Rename `params.fallback_grasp_servers` to
`grasp_default_set`. This includes updating associated getters and
usages across the codebase.
|
|
so that they can be used as part of push and send
|
|
issue a pull request update if pushing or force pushing
a pull request
issue a pull request with an e tag for original patch and close status
for the original patch when pushing or force pushing against a patch
when the new commits are too big to be iussed as patches
|
|
but only for new proposals
|
|
a grasp server doesnt need to appear in repo announcement event
`blossoms` tag as blossom has been removed from the grasp spec
|
|
we try and get them from clone urls of repo and fallback to
those specified by contributor
|
|
remote will list the refs under `pr/*` namespace.
`ngit list` will display in the list of open / draft proposals.
it won't yet fetch the related oids to enable fetching or checking
out the branch.
|
|
as the first stage of adding support
|
|
in anticipation of moving to the nip22 style
|
|
to latest available and apply fmt fixes
|
|
required running:
`cargo fix --allow-dirty --allow-staged`
`cargo clippy --fix --allow-dirty -- -D warnings`
to fix problems
and then manually fixing some too
|
|
in prep for upgrade rust-nostr
|
|
Prevent repeated attempts to connect to relays that have previously
failed due to connection timeouts within the current session,
improving overall performance and reliability.
Added a `relays_not_to_retry` map to the `Client` struct to store
relays to skip and their reasons. Implemented methods
`skip_relay_for_session` and `is_relay_skipped_for_session` to
manage this map.
Relays are added to the skip list upon connection timeouts. Subsequent
attempts to use these skipped relays during the same session will
immediately fail with the recorded reason, avoiding unnecessary network
calls. Progress bars are updated to reflect skipped relays and their
reasons.
|
|
to improve reliability
|
|
in function, params and variable names
|
|
try and add the HEAD when the state event is built, rather than just
when its parsed.
|
|
in preparation for enforcing the inclusion of HEAD
|
|
to fix nostr: note17kwthy92v8tkpgw2kfkhv5x5j9tdves0mznu80qcflly7vunteaqxwag94
|
|
as they are just noise
|
|
To ensure additional maintainers publish an annoucement event,
require it for them to push
|
|
this was identified when testing with multiple maintainers
|
|
so we dont try and fetch from both
|
|
otherwise it tries all the protocols and reprots on each
|
|
applying this change to blossom: 25e58e52624210f5852a9183495821526add5928
|
|
when creating announcment with `ngit init`
|
|
add a blossom tag to the repo announcement
|
|
introduce ngit-relays as a way of setting git servers and relays at
the same time using a standard for specific repo locations:
https://<domain-port-path>/<npub>/<identifer>.git
add simple and advanced modes.
prompt less. eg always set remote origin to nostr url.
automatically push main or master branch.
|
|
rewrite of 25e58e52624210f5852a9183495821526add5928 which took
relays & git servers from all maintainer
some test failed due to incorrect ordering. its better to start with
the ones the trusted maintainer selected.
|
|
via git config so they can be overwritten locally and globally
|
|
in prep for optionally getting some of this config from git config overrides
|
|
but other details from trusted maintainer.
This maximises the likelihood that all git servers and relays
have the correct state.
|
|
and fix breaking changes
|
|
we have had some bugs related to git2 so moving to the latest version
|