| Age | Commit message (Collapse) | Author |
|
The Nix environment provides libgit2 1.9.2 via nixpkgs, which
libgit2-sys picks up at build time instead of using its bundled version.
This caused test assertions that hardcode the libgit2 version string
(appended by libgit2 to patch output) to fail after commit 319bb7f
added new Cargo dependencies, though the exact mechanism by which those
dependencies triggered the switch from the bundled 1.9.1 to the system
1.9.2 remains unclear.
Also bump git2 from 0.20.2 to 0.20.4 in both Cargo.toml files so the
bundled libgit2-sys version (0.18.3+1.9.2) properly aligns with the
1.9.2 version in use.
|
|
The title and description push-options were previously only applied to PR
creation but not to patch series generation. When force-pushing to update
an existing patch series, the custom title and description were ignored.
This change passes the title_description parameter to the patch generation
function, allowing users to customize patch series cover letters via:
git push --force --push-option=title="Title" \
--push-option=description="Description" origin branch
Includes integration test for force-pushing patches with custom cover letter.
|
|
Git push-options are line-based so literal newlines cannot be sent.
Users can now write the two-character sequence \n which is decoded
into real newlines before publishing. Use \\n for a literal backslash-n.
Includes unit tests, integration test, help text, and changelog entry.
|
|
Allows setting PR title and description via git push options:
git push --push-option=title="My PR" \
--push-option=description="Details" origin pr/branch
|
|
to be consistent with the summary version
|
|
'maintainers' is missleading as the announcement authors may not be in
the maitnainer set
|
|
Allow multiple values via repeated --relay flags
instead of the less intuitive plural --relays form.
|
|
Allow multiple values via repeated --grasp-server flags
instead of the less intuitive plural --grasp-servers form.
|
|
- Add --relay flag to 'ngit account create' allowing users to specify
relay URLs (repeatable). Defaults to relay-default-set when not provided.
- Remove fallback relays from fetch when repo context exists (repo
coordinate provided). Only use them for bootstrapping (profile discovery
with no repo context).
- Remove fallback relays from publish when repo or user relays exist.
Only use them when neither is available (e.g. new account signup).
- Update --customize help text to reflect new relay-default-set behavior.
|
|
Rewrite ngit send to support non-interactive mode:
- Add validation for required arguments (title/description)
- Add --force flag to bypass commit suitability checks
- Add --no-cover-letter flag to skip cover letter
- Improve error messages for missing required fields
- Update title/description/cover-letter logic for non-interactive mode
- Add comprehensive tests for non-interactive behavior
|
|
Complete rewrite of ngit init to support non-interactive mode by default.
Key changes:
- Implement hybrid validation (validate all args upfront, fail fast)
- Add --grasp-servers flag for specifying git servers
- Prefer --name over --identifier for better UX
- Add comprehensive validation with helpful error messages
- Support both clone and init-from-existing-repo workflows
- Add --force flag to bypass safety checks
- Update tests for new non-interactive behavior
- Add test utilities for non-interactive testing
|
|
copy relay fetching approach to async and reporting
|
|
so it shows a summary rather than a lot of lines of issues
|
|
also reduce the clutter in the cli output for grasp servers.
|
|
Identified high value areas to use rstest that would benefit most and
refactored them
|
|
update nix dependancies including hardcoded nightly.rustfmt
applied autofixes
|
|
to align more closely with githubs `refs/pull/*/head`
we can pretend that pr means both Patch Request and Pull Request
|
|
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.
|
|
|
|
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.
|
|
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
|
|
required for rust-nostr v0.43 update
|
|
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
|
|
to comply with changes in 5f45edbebe310decb06f955d95665a6ad387c6cb
|
|
To ensure additional maintainers publish an annoucement event,
require it for them to push
|
|
for git push, a wait longer to allow ngit-relays to create repo
|
|
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.
|
|
we have had some bugs related to git2 so moving to the latest version
|
|
update nix dependancies to latest version using default update options
run `cargo clippy --fix` and `cargo fmt` to fix new clippy errors
|
|
rust-nostr upgrade to v0.40 removed this `p` tag
|
|
and fix all of the breaking changes
|
|
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`
|
|
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
|
|
allow any order of the commit ids
|
|
should alway list only the three-way merge commit id.
|
|
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
|
|
check whether remote `origin` is nostr url and if not attempt
to set it.
|
|
otherwise the test never ends or fails
|
|
as creation by default was removed in 9bee5f12efa5ed751468c68073c9122e12c22b5f
|
|
use RelayUrl in repo_ref which I had resisted as it mutates relay
urls when printed to append a slash
|
|
this was missed during a find and replace
|
|
to simplify the api and encourage use of the git remote helper
|
|
move login, logout export-keys commands to sub commands under account
|
|
to reflect the new interface and testing only nsec login
|
|
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
|
|
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.
|
|
appended 'via cli arguments' to 'logged in as fred' during login step
|
|
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.
|
|
simplify api to encougage use of the git plugin
|
|
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
|
|
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.
|
|
or nostrconnect url string which is a much better UX flow for nip46
|
|
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.
|
|
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.
|
|
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
|
|
warngins ~> warnings
|
|
so they match v1.8.2 used in updated git2
|
|
fixing what should have been picked up in:
7718a56ab05038e743401ea01628d85edc50ed34
|
|
reverting change in 73480c03e194808bec7cbbf8c2d7064743d03369
|
|
which enables some failing `fetch` tests to pass
|
|
as changes to status updates has causes many tests to fail
|
|
which enables fetch tests to pass
|
|
to make it more like native git
|
|
which potentially were only identified when a dependancy was updated
|
|
to make it easier to read and navigate
|
|
in prep for splitting git_remote_nostr tests
|
|
so that it the filesystem url is shown
|
|
bump all rust-nostr packages
I'm not sure I'm completely happy with allowing mutable_key_type
but it is just run inside tests
it appears that Event didn't have the Copy trait in v0.33.0 so I'm
not sure why this warning suddenly appeared
the timeout of client.get_events_of needed to be doubled which could
indicate that an ineffiency has been introduced in v0.34.0
the primary motivation for upgrading now was to get this fix:
nostr:nevent1qqsffl2ld678pjj77rh9k2g4edljmxdu6ew4lvgnglxv7jhu3ru8vvcpp4mhxue69uhkummn9ekx7mqzyzsq3hh327t0h2dq6matqn5064cgj2zanl2stkj6s0lg4t2h5dty6rm2ucm
as I suspect it is also effecting other repositories
eg nostr-profile-manager
|
|
as this has reduced in importance as the user begins by
selecting a trusted maintainer
|
|
from `prs/`.
whilst plural reflects usage of `heads` and `tags` in git refs,
singular is shorter and more reflective of usage of branch prefixes
such as `feature/` `fix/`
|
|
so the user knows that a merge commit event will be issued
|
|
when a merge commit is being pushed that merges a patch in a proposal
|
|
issue new proposal when new branch is pushed into `prs/*` namespace,
which doesn't match an existing proposal
|
|
remove the (<short id>) post fix for remote proposal branches when
the current user is the author
this enables pushing new proposals without having to change the
upstream branch in a way that remote helpers weren't designed to do
|
|
fix [PATCH n/n] when no cover letter and patches great than 1
fixes error where the first patch would be
[PATCH] followed by [PATCH n/n]
|
|
will issue a proposal revision
|
|
by allowing the output assert to fail rather than hang
|
|
push 2 commits to an existing proposal
there are a lot of asserts in here but if they were split out into
their own tests the suite would take much longer to run as we are
waiting a few seconds in the test to ensure the
timestamps are different
|
|
that have been proposal tips returned by `list` can be found
|
|
as the `refs/heads/` prefix wasn't present
|
|
so that user knows what step we are on
|
|
and filters out other branches in `prs/*` namespace
|
|
to align with changes in 557a5d98c6ea373db117d6fe19489086b4461aa7
|
|
1. don't attempt to push to a remote which is already up-to-date
2. don't attempt to delete branch on remote if it is already deleted
3. only push when out of sync if remote tip is ancestor of pushed
commit
4. force push to remote if user force pushed and remote is in sync
with nostr
|
|
where it is not needed so code is easier to read
|
|
because this is how git uses the git remote helper
|
|
to:
1. test helper response (ok printed) seperately
2. make failing tests end and print failure rather than hanging
3. remove `async_run_test` function when it isn't needed
|
|
update test to refelect warning message
|
|
so it is more concise and clear
|
|
use stderr to write lines that get displayed when run
as a git-remote-helper
|
|
This reverts commit 6b63f150ba9e7c69bf83bcbd24543051c765c9f6.
|