upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-11-22feat(login): `ngit login` prompt to logoutDanConwayDev
if a local and or global account is already logged in, prompt to logout before overwriting with new login details
2024-11-22feat(login): `ngit login` use cli argsDanConwayDev
previously cli args were only used during other commands to bypass normal login
2024-11-22fix(login): `ngit login` from outside git repoDanConwayDev
it previously only worked from within or near a git repo directory
2024-11-22feat(login): add create accountDanConwayDev
for the simpliest UX it creates and publishes a profile and relay list event.
2024-11-22feat(login): exit help with ctrl + cDanConwayDev
rather than any key press as `esc` wasn't included as a key press
2024-11-22feat(login): auto-proceed upon signer responseDanConwayDev
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.
2024-11-21feat(login): overhaul login experienceDanConwayDev
* 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
2024-11-12chore bump to v1.5.3DanConwayDev
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
2024-11-12fix: send event error messageDanConwayDev
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.
2024-11-12test: prevent signer commentaryDanConwayDev
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.
2024-11-12fix: get correct nip46 npub in edge caseDanConwayDev
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
2024-11-12est(list): fix getting pr branch nameDanConwayDev
rust-nostr must have changes the order in which it returns elements. a proper fix would be to work out why there are duplicates!
2024-11-11fix(login): only get signer npub when unknownDanConwayDev
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
2024-11-11chore: bump rust-nostr v0.36DanConwayDev
bump all rust-nostr packages to latest issued version. there have been some breaking changes to nip46 and this applies these changes.
2024-11-11Revert "refactor: remove ngit `pull` `push` `fetch`"DanConwayDev
This reverts commit 43b5e9b38bf5dcfbac85637a2d3efc69ddfe77ac.
2024-11-04feat(remote): show help when called directlyDanConwayDev
instead of printing an error when `git-remote-nostr` is called directly instead of via plugin, provide some guidance
2024-11-04refactor: remove ngit `pull` `push` `fetch`DanConwayDev
simplify api to encougage use of the git plugin
2024-10-31fix(init): remove broken blasterDanConwayDev
muntiny wallet has shut down and removed its blaster relay
2024-10-31feat(init): support nostr state opt-outDanConwayDev
when multiple maintainers enable opting out of storing state on nostr this prevents other maintainers from pushing a state to the git server which nostr servers wouldnt see because they are using the nostr state.
2024-10-31feat(init): simplify maintainer selectionDanConwayDev
by first asking if the user is the only maintainer and if so not showing the npub selection option
2024-10-31feat(init): clarify name, id, desc labelsDanConwayDev
based on user testing and feedback
2024-10-31fix(init): dont err when nostr remote and no annDanConwayDev
when the user has set a remote to a nostr url but hasn't initiated the repository on nostr - dont error but instead use the identifier in the remote
2024-10-28chore: bump rust-nostr to patch near v0.36.0DanConwayDev
bump all rust-nostr packages refactoring code based on breaking changes upgrading to patched version to address signer issue: nostr:nevent1qvzqqqqqqypzq6xcz9jerqgqkldy8lpg7lglcyj4g3nwzy2cs6u70wejdaj7csnjqy88wumn8ghj7mn0wvhxcmmv9uqzpsw5ph8le2n2kh6uchftawt74hddazk9tp7wjmz967y2l0uva5rc7hsstq
2024-10-28refactor: replace sqlite with lmdbDanConwayDev
as sqlite is depricated in rust-nostr
2024-10-02chore: apply patched rust-nostrDanConwayDev
which includes nip46 signer change so it can be initated without completing connection.
2024-09-25fix(remote): in list use `pr/`for authored prsDanConwayDev
currently the prefix is missed when listing refs after pushing a pr
2024-09-25chore: bump rust-nostr v0.35DanConwayDev
bump all rust-nostr packages
2024-09-25feat(remote): auth if logged inDanConwayDev
if login details are known, log in straight away and respond to auth requests. users can make a choice whether to sign these using their nip46 signer
2024-09-24chore bump to v1.5.2v1.5.2DanConwayDev
changelog: - login via nip46 QR code - enable login directly in git plugin - add resilience to git plugin so that a poorly formated pr will gracefully fail and won't cause issues for other prs and state events
2024-09-24fix(login): locally when globally logged inDanConwayDev
as it would fail to save to local git config
2024-09-24test: restructure ngit integration testsDanConwayDev
so that each file is ran as a seperate crate this makes it easier to see which tests are causing other tests to fail as they are in a smaller group.
2024-09-24feat(login): login via nip46 QR codeDanConwayDev
or nostrconnect url string which is a much better UX flow for nip46
2024-09-23fix(remote): enable login through remote helperDanConwayDev
originally this was disabled because there was a concern that it would effect the operation of the remote helper due as it prints to stdout. it now only writes to stderr.
2024-09-23fix(remote): extend nip46 login timeout to 10mDanConwayDev
as 30s is too short for those of us fumbling with our remote signer app
2024-09-23fix(remote): add resilience to `prs`DanConwayDev
make poorly formatted patches fail silently. we stop trusting that the `commit` tag in the latest patch can be produced by apply the patches. to achieve this we must recreate the commit during the list command, which require fetching the parent oids. support patches without optional `commit` and `parent-commit` tags.
2024-09-20chore bump to v1.5.1v1.5.1DanConwayDev
changelog: * git plugin reports on event broadcasting
2024-09-20feat(remote): add send events status reportingDanConwayDev
to both tell users where events have been sent / failed to be sent and to provide a status update so the user doesn't think its crashed
2024-09-19test: fix test name typo@RandyMcMillan
warngins ~> warnings
2024-09-18chore bump to v1.5.0v1.5.0DanConwayDev
changelog: - add new nostr url format that works better for MacOS users `nostr://<*protocol>/<npub123>/<*relay-hint>/<identiifer>` \*optional - status updates during clone, push and fetch - intelligent protocol selection and fallback - unless unusual protocol specified in clone url it will try in this order: - fetch: https unatuth, ssh, https - push: ssh, https auth - save successful protocol in git config so it is tried first next time - enable override from nostr url (will only use this protocol) - enable building binaries via nix - refactor into lib and bin structure - bump dependnancies
2024-09-18chore: bump rustfmt from nightlyDanConwayDev
from april version to current
2024-09-18test: fix gitlib2 version in sampleDanConwayDev
so they match v1.8.2 used in updated git2
2024-09-18chore: nix flake updateDanConwayDev
update nix dependancies to latest version using default update options
2024-09-18chore: bump git2 v0.19.0DanConwayDev
in the hope that it addresses the 'early EOF' error that sometimes appears when cloning a repo.
2024-09-18chore: cargo updateDanConwayDev
update dependancies to latest version stated in cargo.toml
2024-09-18fix(remote): create pr commit error reportingDanConwayDev
so it clear which patch is causing issues and it continues to report the fetch problem to the git client. we need a better solution it degrades gracefully rather than stopping the operation. perhaps list needs to only list PRs which it can create from existing data objects? perhaps list also needs fetch objects before fetch is called?
2024-09-18test(renote): fix whitespace in push` testsDanConwayDev
fixing what should have been picked up in: 7718a56ab05038e743401ea01628d85edc50ed34
2024-09-18fix(remote): reporter lines on narrow terminalsDanConwayDev
remove the correct number of lines when reporter prints to narrow terminals
2024-09-18test(renote): fix whitespace in push` testsDanConwayDev
reverting change in 73480c03e194808bec7cbbf8c2d7064743d03369
2024-09-18feat(remote): push report copyDanConwayDev
improved for push to each git server. report now reflects new branch / tag, delete branch / tag and force flag.
2024-09-18test: fix `generate_repo_with_state_event`DanConwayDev
which enables some failing `fetch` tests to pass
2024-09-17fix(remote): push don't report on writing 0 objDanConwayDev
in the TUI as its not useful
2024-09-17fix(remote): push reporting copyDanConwayDev
ensure commit id from and two are the correct way around
2024-09-17fix(remote): `push` exit protocol loop on successDanConwayDev
so that other protocols are not tried after push was successful
2024-09-17feat(remote): store successful protocol in configDanConwayDev
if another protocol was tried first and failed
2024-09-17refactor(remote): `push` report to match `fetch`DanConwayDev
use the same approach taken with reporting remote status in `push` as is used in `fetch`
2024-09-17test(remote): fix test to ignore status updatesDanConwayDev
as changes to status updates has causes many tests to fail
2024-09-17test(remote): fix generate_repo_with_state_eventDanConwayDev
which enables fetch tests to pass
2024-09-17fix(remote): `fetch` dont show resolving 0 deltasDanConwayDev
in progress updates as its not resolving any deltas
2024-09-16fix(remote): fetch report join remote linesDanConwayDev
when they are sent via multiple messages
2024-09-16refactor(remote): add tests to fetch reportingDanConwayDev
and slightly refactor
2024-09-13fix(remote): add robustness to push reportingDanConwayDev
by avoiding bugs where lines are removed accidentally by storing report in a mutex and rewriting the entire report at each update
2024-09-13fix(remote): clear `fetching ref list`DanConwayDev
so it doesn't remain in the TUI
2024-09-13fix(remote): fetch status reduce line writesDanConwayDev
by only removing and rewriting transfer progress
2024-09-13fix(remote): add rebustness to fetch reportingDanConwayDev
by avoiding bugs where lines are removed accidentally by storing report in a mutex and rewriting the entire report at each update
2024-09-13refactor: abstract find pr from branch nameDanConwayDev
so it is done consistantly across ngit and the remote helper
2024-09-13fix(ngit): improve find pr from branchDanConwayDev
so that it only finds branch name not prefixed with `pr/` if you are the author of the pr as there may be duplicate named prs.
2024-09-13fix(ngit): `pull` and `push` find pr from branchDanConwayDev
as since `cl.get_branch_name` has been introduced branch names could be prefixed with a pr and sometimes postfixed with an event id
2024-09-12fix(remote): `push` status updatesDanConwayDev
push needs to use push_transfer_progress rather than transfer_progress
2024-09-12fix(remote): generalise auth failure detectionDanConwayDev
by using words or short phrases
2024-09-12fix(remote): `push` detect ssh auth failureDanConwayDev
adding new errors that are authentication related
2024-09-12fix(remote): improve `push` status updatesDanConwayDev
to bring them more into line to the native git client
2024-09-12fix(remote): improve fetch & list status updatesDanConwayDev
to bring them more into line to the native git client
2024-09-12feat(remote): add fetch status updatesDanConwayDev
based off of: https://github.com/rust-lang/git2-rs/blob/master/examples/fetch.rs
2024-09-12fix(remote): stop fetching after successDanConwayDev
instead of trying again over fallback protocols
2024-09-12fix(remote): identify auth failureDanConwayDev
so that attempts can be made to use a fallback protocol
2024-09-12fix(remote): update copyDanConwayDev
to make it more like native git
2024-09-11refactor: fix fmt and clippy issuesDanConwayDev
which potentially were only identified when a dependancy was updated
2024-09-11build: add nix build derivation for tarballDanConwayDev
so a tarball can be created per system for issuing releases
2024-09-11build: remove PKG_CONFIG_PATH env varDanConwayDev
as this is not needed. it was originally added as part of diagnosing openssl availablity
2024-09-11build: fix nix binary references and build toolsDanConwayDev
both binaries should be within the same package. `pkg-config` and `openssl` need to be in both `nativeBuildInputs` and `buildInputs` and dev shell `buildInputs` otherwise the build will fail. PKG_CONFIG_PATH ev also needs to be set.
2024-09-10build: fix dependancy package errorsDanConwayDev
which were preventing the build process from running
2024-09-09build: use nix to build binariesDanConwayDev
using rustPlatform.buildRustPackage as used in nixpkgs
2024-09-09chore: nix flake updateDanConwayDev
update nix dependancies to latest version using default update options
2024-09-09test(remote): refactor split into multiple filesDanConwayDev
to make it easier to read and navigate
2024-09-09test: refactor into binary subdirsDanConwayDev
in prep for splitting git_remote_nostr tests
2024-09-09feat(remote): push protocol selection / fallbackDanConwayDev
enable override from nostr url clone url is filesystem use filesystem otherwise try ssh, then https authenticated unless clone url is http, then try ssh then http as we assume, we are on a local trusted network.
2024-09-06fix(remote): `fetch` and `list` status copyDanConwayDev
so that it the filesystem url is shown
2024-09-06feat(remote): just use ssh if auth succeedsDanConwayDev
and don't proceed to https or http
2024-09-06fix(remote): `list` apply protocols selectionDanConwayDev
used in fetch and tweak the error reporting
2024-09-06fix(remote): improve protocol selction / fallbackDanConwayDev
abstract the protocols and order to try under different scenarios add some additional scenarios eg hardcoded http tweak error reporting
2024-09-06refactor: render ServerProtocols lowercaseDanConwayDev
as they are easier to read
2024-09-06feat(remote): fetch protocol selection / fallbackDanConwayDev
enable override from nostr url clone url is local use local otherwise try https unathenticated, ssh, then https authenticated
2024-09-06add `CloneUrl`DanConwayDev
to enable remote to interact with git servers over a range of specified protocols
2024-09-04refactor(remote): split into modulesDanConwayDev
to make it easier to read
2024-09-04refactor: use FromStr trait for NostrUrlDecodedDanConwayDev
as it should have been used in the first place
2024-09-04refactor: fix imports, etc based on restructureDanConwayDev
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
2024-09-04refactor: organise into lib and bin structureDanConwayDev
the make the code more readable this commit just moves the files, the next commit should fix the imports
2024-09-03feat(remote): enhance nostr url formatDanConwayDev
add protocol and user parameters so that users can overide the protcol in the clone url and use specific protocols for fetch and push. see: nostr:nevent1qvzqqqqqqypzpgqgmmc409hm4xsdd74sf68a2uyf9pwel4g9mfdg8l5244t6x4jdqyxhwumn8ghj7mn0wvhxcmmvqqsp6a5ck6grd9lq0nu25dcfzggxde67erut76w0ucal5rcfq4y5gzc7gmpzm the override feature hasn't been implemented yet but this is an enabler. also added a new format so that macos (zsh) users don't have to use quotes: nostr://<optional-protocol>/npub123/<optional-relay>/identifer
2024-09-03feat(init): https as default clone url protocolDanConwayDev
so clone urls align to fetch rather than push. see discussion here: nostr:nevent1qvzqqqqx25pzpp59a0hkv5ecm45nrckvmu7pnk0sukssvly33u3wwzquy4v037hcqyxhwumn8ghj7mn0wvhxcmmvqqs2tdha5ymadffrkdprachsz6gsgsy6kc8gkntgq750mfn7u3aeu3g7xt8k9
2024-08-30chore: bump to v1.4.5v1.4.5DanConwayDev
changelog: * when clone url is ssh use auth for `list` and `fetch` as they are required * when clone url is ssh, fallback to https so read events dont always require auth * stop asking for git server credentials when pushing `pr/` branch * fix `no repo events at specified coordinates` error via rust-nostr v0.34.1 upgrade