| Age | Commit message (Collapse) | Author |
|
Repository identifiers can contain any characters per NIP-01 d-tag rules.
Encode them in nostr:// clone URLs (display and parse) and in GRASP
/<npub>/<identifier>.git paths, aligning with NIP-34 and GRASP-01.
|
|
move apply_grasp_infrastructure, latest_event_repo_ref to lib/repo_ref.rs
and wait_for_grasp_servers + grasp_servers_from_user_or_fallback to a
new lib/accept_maintainership.rs so both binaries can share them.
add accept_maintainership_with_defaults which publishes the co-maintainer's
own Kind:30617 announcement with defaults (user grasp servers, shared
metadata from existing events) then waits for grasp server provisioning
and updates nostr.repo config and origin remote.
replace the push error block with a call to accept_maintainership_with_defaults
so pushing now silently accepts co-maintainership instead of failing.
|
|
to ensure we dont try and fallback to ssh
|
|
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.
|
|
so we can use it elsehwere
|
|
to make it's purpose clearer
|
|
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.
|
|
where just the nevent will do
|
|
a grasp server doesnt need to appear in repo announcement event
`blossoms` tag as blossom has been removed from the grasp spec
|
|
to latest available and apply fmt fixes
|
|
in function, params and variable names
|
|
To ensure additional maintainers publish an annoucement event,
require it for them to push
|
|
so we dont try and fetch from both
|
|
otherwise it tries all the protocols and reprots on each
|
|
when creating announcment with `ngit init`
|
|
add a blossom tag to the repo announcement
|
|
resolving
nostr:note1qu8le4a8qz9hhxy6q85txejcq0kln0r3s9vdtwrhtqwvauc6nxuqn3fj0z
so it doesnt appear frozen when there are lots of events being signed
by a remote signer
|
|
and fix all of the breaking changes
|
|
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`
|
|
enable nostr git url format
alongside and
format
Merge branch 'pr/nip05-lez(ff1845c0)'
|
|
prioritise using nip05 nostr url format when the nip05, public key
mapping is stored in the (usually local) git config.
|
|
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.
|
|
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'
|
|
use RelayUrl in repo_ref which I had resisted as it mutates relay
urls when printed to append a slash
|
|
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
|
|
* 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
|
|
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
|
|
bump all rust-nostr packages
|
|
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
|