| Age | Commit message (Collapse) | Author |
|
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.
|
|
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
|
|
only the maintainers and author of a poorly formatted proposal need
to know it was submitted but cant be created as a PR branch
|
|
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.
|
|
fixes to change attempted in 4fc659074ec5ced3cc0727cf1f3e6af082a189cc
|
|
following its inclusion in the NIP-34 spec
|
|
so users can choose when there commits are too big or small instead
of relying on the 60kb rule
|
|
as it was only checking if tip is a commit thats present but a tip
could be an annotated tag
|
|
and fail more gracefully if refs cant be fetched, by continuing
to sync other refs
|
|
rather than just in the remote helper.
|
|
and include prompt about pushing understanding pushing directly to
git servers
|
|
list and allow selection / deselection of non-grasp servers when
at least one grasp servers is selected and a non grasp server is a
suggested default.
|
|
now we check and fetch them
|
|
when an existing origin exists and local branch is up-to-date
`git push` wont successfully publish state event and push refs to
other git servers listed.
we now publish the state event during this init function and use
sync to push all refs in state are to all git servers.
|
|
move the PR push code in 'ngit send' into lib.
reuse the non-interactive fallbacks in git-remote-nostr
|
|
to align more closely with githubs `refs/pull/*/head`
we can pretend that pr means both Patch Request and Pull Request
|
|
even if it is not on repository remotes, as it may have been pushed
to a user's git server instead
|
|
abstracted git remote helper fetch functions
added support to `ngit list` to fetch PR data and checkout as proposal
branch
|
|
we weren't correctly identifying valid nostr state refs
|
|
handle scenario when correct annotated tag is on a remote.
peel to tip commit doesnt give the correct oid so we must use the
annotated tag oid instead when comparing.
|
|
limit syncing to a single reference with this new parameter.
change instructions for out of sync remotes to use sync with this new
option.
|
|
This branch name cannot be attacked by brute forcing a
shorthand event id like refs/pr/<branch-name(<shorthand-event-id)
can.
|
|
here we can list Pull Requests whose data aren't on the repo relays
without causing `git clone nostr://` to fail.
we can also list proposals of all statuses so that can review
closed proposals.
|
|
we cannot list PRs under refs/heads/pr/* unless we are sure the oids
are accessable on a git server as it will cause `git clone` to fail.
we now only list PRs that are on accessable repo git servers under
refs/heads/pr/*.
we should be able to list them under under refs/pr/* as the clone
command only fetches refs in refs/heads so we will do this
seperately.
|
|
|
|
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
|
|
attempt to use a range of protocols instead of unath http
|
|
to make it's purpose clearer
|
|
so its clear from the TUI what has just been sent
|
|
instead of relying on hardcoded grasp server options.
couldn't we look up those selected for other repos for the user
instead?
|
|
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`
|
|
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.
|
|
so that we can use it in `ngit send`
|
|
where just the nevent will do
|
|
as the function is too long
|
|
so we can use it in ngit as well as remote helper
|
|
required for rust-nostr v0.43 update
|
|
I have now replicated the issue discussed in the last commit by
overwriting my global git config item tag.gpgSign and setting
it back to false, which is default the default.
ngit was only supporting annotated tags and fiatjaf was pushing
a lightweight tag.
I'm confident that this will resolve the issue
|
|
fiatjaf reported panic:
```
<commit-id> can not be successfully peeled into a tag (git_object_t=4).
```
when making a tag and running `git push --tags`
I could not replicate but line it was coming from should use 'from'
rather than 'to'.
|
|
with nostr state. optionally use 'force' flag
|
|
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
|
|
adjust the help text to reflect availablity of PR event for when a
patch is selected that doesnt list a parent commit id
|
|
using the recently abstracted `get_status` function
|
|
as these events use `c` instead of `commit`
|
|
for use by `ngit list`
|
|
as a temporary measure
|
|
when an upgrade to a pr is needed, dont also try and send patches
|
|
erorr if the pushed ref would produce a proposal with no patches, or
if the ref is in origin/<main-or-master>
|
|
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
|
|
when a patch is upgraded to a pr, eg because new commits would be
too large to be additional patches, the patch receives a closed
staus and the new pr 'e' tags the original root patch.
we therefore need to inherit the new pr's status instead of using
the closed status.
the closed status was used so that clients don't have to support
pr revisions of patches, and still have a good UX.
|
|
instead of status events from any pubkey
|
|
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
|
|
to reflect there new role of also pushing prs to git severs
|
|
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.
|
|
to latest available and apply fmt fixes
|
|
to improve reliability
|
|
in function, params and variable names
|
|
includes a change to a git config itme name
|
|
in preparation for enforcing the inclusion of HEAD
|
|
based on jb55 trying to use this with damus
nostr:event1qvzqqqqqqypzqvhpsfmr23gwhv795lgjc8uw0v44z3pe4sg2vlh08k0an3wx3cj9qy88wumn8ghj7mn0wvhxcmmv9uq3jamnwvaz7tmjv4kxz7fwwdhx7un59eek7cmfv9kz7qpqec3c59c4yu4yrsa9fedu27rnygnemj2cfmumf6fw7385wfthg57slj72ux
|
|
as they are just noise
|
|
that of the current users pubkey. ngit will push to the git servers of
other maintainers anyway.
|
|
To ensure additional maintainers publish an annoucement event,
require it for them to push
|
|
make the default set of ngit-relays configurable
|
|
if you haven't cloned an existing nostr repo
|
|
we need to be careful with git servers with their own permissions so
a ngit user doesn't inadvertantly push changes on top of a another
user who pushed directly to the git server without using the
force flag.
We dont have this problem with ngit-relay so we can always force
push, even if the user didnt as nostr is the authority of state.
|
|
allow exporting npub as well as nsec
|
|
as it usually full of inappropriate relays like purplepages.
|
|
instead of replacing ngit-relays with additoinal relays , suppliment
|
|
for git push, a wait longer to allow ngit-relays to create repo
|
|
otherwise it tries all the protocols and reprots on each
|
|
make sure blossom server is also present
|
|
when creating announcment with `ngit init`
|
|
should have done it at 4dc5d0c9fb170981cf4fade5558d7cc8da404aa3
|
|
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.
|
|
the details are included as default options
|
|
reduce the scenarios where we confuse users about state
|
|
of how to customise ngit via git config items
|
|
via git config so they can be overwritten locally and globally
|
|
remove the code that guessed whether it was an authentication failure
and gave up is it wasn't. this prevents it from trying http for push
when ssh is not supported eg. ngit-relay
|
|
update nix dependancies to latest version using default update options
run `cargo clippy --fix` and `cargo fmt` to fix new clippy errors
|
|
with new format. but both default option and when previous web
string used legacy format
|
|
resolving
nostr:note1qu8le4a8qz9hhxy6q85txejcq0kln0r3s9vdtwrhtqwvauc6nxuqn3fj0z
so it doesnt appear frozen when there are lots of events being signed
by a remote signer
|