| Age | Commit message (Collapse) | Author |
|
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.
|
|
use `stderr` to write lines that get displayed when run
as a git-remote-helper
|
|
listed in the announcement `clone` tag
|
|
initially we push to the first server, if successful update the
state event, then siliently push to the others and silently fail
|
|
and falls back to git server is state event cant be found
|
|
in nostr state event
|
|
ensure refs are included in state event
use `HashMap` to improve `RepoState` struct
|
|
if no previous state events can be found it replicates git server
otherwise it just updates pushed value
|
|
on the git server and in local remote refs
|
|
in the local git repository
|
|
for multiple branches send in a batch
|
|
from git server specified in announcement
|
|
and ignore the branch ordering
|
|
returns head and main branch head
|
|
create test helpers and setup basic test to verifiy
fetch was ran
|
|
add missing or updated identifier to maintainers.yaml
as we were not checking whether it has changed or added
also update if relays do not match
|
|
instead of Kind::Custom(u16) as v33 of rust-nostr introduced them
|
|
`pull` test.
It's failing and only tests for different copy in an obscure scenario
|
|
to enable improved debugging
|
|
if branch is ahead of main or master
|
|
it was so much clearer what the problem was after
abstracting reused test code
|
|
into lib which makes reading and maintaining tests easier
|
|
into lib which makes reading and maintaining tests easier
|
|
to prevent accidental name conflicts. also moved to prs/* namespace
`pull` and `push` integration tests are intermitantly failing to end
at least for `push` they work when run individually but not
when run together
|
|
when finding repo announcements
add a hint to find naddr on gitworkshop.dev
|
|
as part of a project to use fetch and the stored cache everywhere
|
|
the last set of pull integration test fails:
when_latest_event_rebases_branch
we are planning on replacing pull so I'm not sure
whether it is worth fixing
|
|
as part of a project to use `fetch` and the stored cache everywhere
|
|
reworking the tests and test suite as appropriate
|
|
set repo.nostr to naddr reflecting the announcement just issued
|
|
fetch automatically gets updates to logged in user profile / relays
fetching without specifying repo pointers will just fetch user
profiles so that can be used during login, if user profile isn't
in cache
login now uses fetch
|
|
enabler to add simplicity, efficency and offline
capability to other functions
improve repo announcement selection
|
|
instead of just tagging the first maintainer's repo event and each
maintainer with a p tag
This allows for easier discoverability of the proposal when:
* the first maintainer hasn't issued a repo event
* the maintainers change over time and the single tagged repo event
is no listed as a maintainer in anyone elses repo event
|
|
currently using patched version of rust-nostr with function to fetch
nip46 relays from nip05 providers. this patch has been merged so it
will make it into the next rust-nostr release.
|
|
as it is failing intermitantly since it is being run in parellel
|
|
and save details in git config
|
|
as config is now stored using git config and cache is conditionally
stored in local ./git folder under test conditions
|
|
replace ngit yaml file config with:
* nsec / ncryptsec / npub in git config in nostr.* namespace
* sql database cache for metadata and relay events
allow different logins to be used for different git repositories by
storing login in local git config
|
|
based on nip34 update.
see nip repository commit 8fe6e062254b37f77540088cccff60fa8615751
|
|
both nostr and nostr-sdk packages and also in test_utils
fix the many breaking changes
fix: ignore trailing slash when depuplicate relays for send events.
this was picked up as TagStandard::RelayMetadata has started adding
a traling slash.
refactor cli output test function `expect_send_with_progress` so that
relays can succeed / fail in a random order
|
|
bump nostr and nostr-sdk packages and also in test_utils
remove custom ncryptsec implementation and use the newly
added implementation nip49 version in rust-nostr
note a patched v0.30 is used so that log_n is exposed so that
user can be warned it might take a few seconds to decrypt.
this has now been merged into the library.
note that this will no longer decrypt existing ncryptsec values as
it is uses a longer string. this should therefore be bundled with
the upcoming change to storing nsec and ncryptsec in git config.
|
|
to repo announcements, patches and cover letters
|
|
in addition to being used to create a new proposal revision,
in-reply-to can now be used to reference other events and npubs.
for example an issues or kind 1 threads where the proposal is relevant
the proposal will only be marked as a revision if the first parameter is
a reference to an existing proposal root
|
|
after a new root proposal has been sent
link directly to gitworkshop.dev as well as njump.me until
gitworkshop is added to njump
|
|
caused by test proposals with the same timestamp
listed in an inconsistant list order;
by ensuring test proposals have a different timestamps
|
|
as it has been removed from nostr_sdk
|
|
to reflect changes in rust-nostr
|
|
update dependancies to latest version stated in cargo.toml
|
|
when since_or_range isn't specified
adds resilience as assuming master..HEAD can cause some issues
eg when master is not up-to-date with origin/master
|
|
resolve a long standing test issue where failures to output the correct
message in the cli would result in the test never ending
rather than failing
the many test cases updated in this change are to ensure
failures are caught rather than ignored
some of them are just refactored to remove calling an extra function,
which is no longer needed
note: this doesn't fix the intermittent issue, most commonly experienced
under the nix configuration, where tests that should pass
occationally never end preventing the rest of the suite from running
|
|
refer to a single patch as patch rather than patches
|
|
based on feedback from santos:
nostr:31c085a584cbd30f71a44a70eaf828c2c8c5f6e3efb7942547edb37cf4a632cf
|
|
before cover letter prompt
primarily this is to make it clearer that a proposal update
is being sent when using `ngit push --force` instead of
a new proposal
|
|
branch-name should be ommitted or ignored if
patches created on main or master
instead it should be infered based on commit msg
|
|
show proposals in order newest first
|
|
move instruction to commit and push maintainers.yaml to end of file
|
|
- allow more cli input options
- allow customisation of more fields in interface
- change default identifer from shorthand root commit to short name
- defaults to existing repo event (users or other) or maintainers.yaml
|
|
introduced in b931b37e26486e4e6d15f302e87141dcf2f596ba
|
|
from_branch and to_branch have been replaced
by specifying revision ranges
|
|
wrapping `send --in-reply-to` unless branch up-to-date
|
|
ammended should read amended
|
|
added test to cover local propsal being amended
this should catch error for rebased proposals as well
|
|
to align with changes done to pull
c5dfd1b7e509eedc33de75343de8659e3c9e0b2a
also improved copy
|
|
add test for scenario
|
|
add test for scenario and tweak copy
|
|
added tests to cover one of these rebase scenarios
|
|
update list to support rebases via proposal revisions
as created by `ngit send --in-reply-to`
or upcoming change `ngit push --force`
|
|
send a revised version of a proposal using the new in-replyto argument
suppliments existing 'root' tag with 'root-revision'
e 'reply' tag to the original proposal
|
|
specifiy commits or commit ranges in the
same way that `git format-patch` allows
|
|
instead of no default. note: I spent hours trying to get
CliTester to support default choices and gave up.
I have a stashed the attempt and am moving on...
|
|
remove the word nostr for consistency and as its a bit confusing
|
|
add the option to download patches or apply them with git am
give more granular messages about the state of proposals.
add support for replacing old proposal version with a new one
|
|
broken in 701668b02d999af42f51d8bd25fffb2a8692c3c8
|
|
PR is a problematic term when it ambiguous whether the
set of patches are PR-like or email-patch like.
|
|
it wasn't clear why no results were coming back from relays
or why it is needs (added reference to relay updates)
|
|
if repo event cannot be found using unique commit the user can
find it via a nevent or naddr
also handle no PRs found
|
|
improve the distribution of events by sending to default relays
in addition to user and repo relays. for better discoverability of
repo events, this is also blasted.
a temporary fix to blast everything was removed.
the less reliable purplepages.es relay is moved to
more_fallback_relays that currently isn't used
|
|
this aligns with gitstr and is more intuative
the idea behind using claim to indicate that it is only for
maintainersto do is valid but its too confusing
|
|
remove unnecessary hierachy of `prs` which is also a troublesome term
replace the concept of `create` which aligns more to the PR github model
to `send` which aligns more with the git patch model
|
|
this enables consistancy of display with simple clients that are just taking
the output of `git format-patch`
|
|
use first patch as thread root if pr event isn't present.
begin renaming pr event to cover letter.
fix patch ordering upon creation. patches were in youngest first
order which caused:
- `PATCH n/t`to be in reverse order
- the youngest patch was the marked root
- oldest patch replied to the youngest
fix finding most recent patch event. when a patch in a set is the
most recent it will share a created_at with other patches.
previously the first patch recieved from relay in the set would be
used. now it finds the first patch with that created_at which isn't
also a parent of another patch with the same created_at.
|
|
up the pr event type to a nip34-like cover letter format
this sets the building blocks in place to enable simplier clients to
use the 'cover letter' feature in `git format-patch` to create the
experience as a pr event
|
|
this is simpler
there is no need to check whether main or master exist
because one does 99+% of the time
the root commit wil be te same for head as master 99+% of the time
|
|
format patch as a series in the patch event content unless it is 1/1
and there is no pr (cover letter) event
|
|
This is intended to improve the reliabilty of the tests. there have been
particular issues with random tests never ending when run in the nix
configuration
see discussion here
https://github.com/DanConwayDev/ngit-cli/issues/
6#issuecomment-1918971239
and:
https://github.com/DanConwayDev/ngit-cli/pull/7
|
|
- change kind number
- remove "r-" prefix from unique commit id r tag
- rename tag commit-sig to commit-pgp-sig
- a tag for repo identifer and pubkey. this serves as a vote for
this pubkey being a maintainer
- add relay hints
- change format of committer tag
- remove r references to parent commit id
- tag parent patch event if its part of change request
author and commit-message tags still need to be removed but they are
required to apply patches with gitlib2. we will need to fallback to
running the git client to apply patches.
BREAKING CHANGE: change patch/commit event kind and tags to reflect
nip34 draft. events with the older kind will no longer be found and
will not be in a valid format
|
|
nip34 specifies that repo event tags with multiple values wuch as
"relays" and "web" use theformat:
`["tag", "item", "item"...]`
instead of:
```
["tag", "item"],
["tag", "item"],
```
this update also adds clarity. it is not obvious that using a p tag
is intended to make the pubkey a co-maintainer.
BREAKING CHANGE: format of maintainers tags in repo events has
changed to reflect nip34 style and ngit will not detect the old
format
|
|
- change kind number
- do not rely on d identifiers for unique commit id. set it as default
to unique commit id shorthand.
- remove "r-" prefix from unique commit id r tag and instead add checks
for SHA1 validity
- rename tag git_server to clone
- add web tag
- use single relays tag instead of multiple relay tags
BREAKING CHANGE: change repo event kind and tags to reflect
nip34 draft. events with the older kind will no longer be found and will
not be in a valid format
|
|
now falls back to displayName, display_name or npub
test pass when loggined printed to the cli in
e0f543e8adb144f6deff6ff7ea0c412c9fcac5b4 are commented out
|
|
this is a contribution from jk (sectore) that I rebased and squashed
into this commit.
the tests were broken in the last few commits to rush out some fixes.
this change may introduce more issues because of
Relay.respond_standard_req.
|
|
this shouldn't be present
|
|
before checking out PR branch
add confirm prompt before checking out branch and applying changes
|
|
- create yaml file with maintainers and relays
- add maintainers to repo event
- add current user as maintainer
- custom repo relays from cli argument
- save git-server in repo event
|