| Age | Commit message (Collapse) | Author |
|
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
|
|
only use custom port on specified protocol (ie. http, https or ssh)
ignore custom port on when trying other protocols
specify `ssh://` prefix when using custom port as otherwise it can
be ignored
|
|
update nix dependancies to latest version using default update options
run `cargo clippy --fix` and `cargo fmt` to fix new clippy errors
|
|
resolving
nostr:note1qu8le4a8qz9hhxy6q85txejcq0kln0r3s9vdtwrhtqwvauc6nxuqn3fj0z
so it doesnt appear frozen when there are lots of events being signed
by a remote signer
|
|
introduced by rust-nostr v0.40 from v0.37
|
|
and fix all of the breaking changes
|
|
improve clarity by renaming variables and methods
defend against `branch-name` tag with an unsafe name
|
|
simplify to allow the removal of warning:
`#[allow(clippy::too_many_arguments)]`
|
|
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
|