| Age | Commit message (Collapse) | Author |
|
changelog:
- build for more OSes
|
|
as listed in:
https://docs.github.com/en/actions/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job
|
|
changelog:
- overhaul and simplify login experience
- add `account` api with `login`, `logout` and `export-keys` cmds
- add sign up feature targeted at users new to nostr
- support nip05 addresses in nostr git urls
eg. `nostr://dan@gitworkshop.dev/ngit`
- rework `ngit init` to make on-boarding more intuitive with simplier
questions and more guidance and prompting to setup nostr remote
- don't create `maintainers.yaml` for new repos but continue to
support it for projects that already use it
- remove ngit `pull`, `push` and `fetch` api to nudge users to use
native git cmds with git plugin
- expend merge types that automatically update PR status when pushed
- various fixes: eg `ngit accountlogin` from outside of a git
repository, add QR code border, and make `ngit list` prompts
more intuitive
- bump dependancies eg rust-nostr to v0.37
|
|
in the instruction and in the link to contribute
|
|
show draft as well as open PRs as remote branches
|
|
improve reliability of getting current logged in user to assess if
they have submitted a proposal with the same name / branch name
|
|
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
|
|
update dependancies to latest version stated in cargo.toml
|
|
improve the error message when fetching nip05 profile fails
|
|
comparing different versions of the nostr url string
|
|
as it was way too long
|
|
publish a merge event when the commit author signature and timestamp
match patches within an open proposal
|
|
now that the remote helper uses the commit author timestamp to
determine if commit was applied from a proposal, the timestamps
in the test proposal can no longer be identical.
this makes them deterministically different based on the file name
|
|
publish a merge event when the commit author signature and timestamp
match patches within an open proposal
|
|
allow any order of the commit ids
|
|
should alway list only the three-way merge commit id.
|
|
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
|
|
when a proposal was merged using fast-forward status rather than
by creating a three way merge commit.
if there are multiple revisions, the first one that contains merged
proposal tip will be referenced.
if there are multiple proposals that contain one of the commits,
they will all be marked as merged.
the nip needs to be updated as there is no single `merge-commit-id`
so that tag needs to support multiple values
|
|
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
|
|
add a "maintainers.yaml" title to prevent a wall of unbroken text
|
|
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.
|
|
as it was spelt with 1 'n'
|
|
to improve legability of function
|
|
otherwise the test never ends or fails
|
|
as creation by default was removed in 9bee5f12efa5ed751468c68073c9122e12c22b5f
|
|
fix error introduced in 6bcac672e04cb316de1f952c08b07937c7db3cc6
|
|
if nostr added as origin remote before repo announcement sent
|
|
update the repo announcement event based on any updates to
maintainers.yaml that are included in commits pushed to
'main' or 'master'
|
|
because feedback is that its too confusing. mot removing it for
existing projects that use it
|
|
as default instead of user write or none
|
|
because feedback was recieved that it doesnt appear like a menu
|
|
so relays come straight after git server because they both require choices
with some sort of mental burden
|
|
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
|
|
instead of all the time. this also fixes the tests.
|
|
this was missed during a find and replace
|
|
but instead use the value in user_ref
|
|
and move it below maintainers input
|
|
to make the onboarding experience smoother
|
|
and add `ngit init` to description / help content
|
|
to simplify and target users more than contributors and prioritise
building from source
|
|
as it makes the help harder to read and saving credentials
is much better
|
|
to add clarity and use PR instead of proposal
|
|
to simplify the api and encourage use of the git remote helper
|
|
to add clarity and not suggest cli args should be used
|
|
move login, logout export-keys commands to sub commands under account
|
|
rather than using `ngit login` which is less intuative
|
|
to improve machine readability
|
|
as part of the easy on-boaridng flow
|
|
to reflect the new interface and testing only nsec login
|
|
when already logged, the option to login locally with different keys
try to login globally
|
|
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
|
|
adding a prompt makes it easier for the eye to pick up the issue.
|
|
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
|
|
appended 'via cli arguments' to 'logged in as fred' during login step
|
|
to guide the users how to login dispite the git config errors
|
|
instead of needing to include the local flag
|
|
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
|
|
it previously only worked from within or near a git repo directory
|
|
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
|
|
note v1.5.3 is actually forked to exclude changes to init which weren't
ready for release. the tag v1.5.3 is set to commit:
0089b8fce131c0675539490b67f5a55aab377853
changelog:
- fix remote signing as nip46 update has breaking changes
- auth to relays on requests
- fix `pr/` branch name prefix issue
- fix `ngit init` error when remote added before initiation
- don't blast initiation events as munity blaster is no more
- when git-remote-nostr called directly show help instead of error
- bump rust-nostr to v0.36
- replace sqlite with lmdb due do rust-nostr deprecation
|
|
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
|
|
rust-nostr must have changes the order in which it
returns elements.
a proper fix would be to work out why there are duplicates!
|
|
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.
|
|
This reverts commit 43b5e9b38bf5dcfbac85637a2d3efc69ddfe77ac.
|
|
instead of printing an error when `git-remote-nostr` is called
directly instead of via plugin, provide some guidance
|