| Age | Commit message (Collapse) | Author |
|
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
|
|
from_branch and to_branch have been replaced
by specifying revision ranges
|
|
wrapping `send --in-reply-to` unless branch up-to-date
|
|
introduced in
9f1d8cd964a04197565a2acb1f2b174c9582d333
|
|
ammended should read amended
|
|
reduce wording in choices
|
|
previously these commits would be skipped
|
|
also updated copy and code comments
|
|
to align with changes done to pull
c5dfd1b7e509eedc33de75343de8659e3c9e0b2a
also improved copy
|
|
to align with changes done to pull
c5dfd1b7e509eedc33de75343de8659e3c9e0b2a
also improved copy
|
|
also updated copy and code comments
|
|
add test for scenario and tweak copy
|
|
added tests to cover one of these rebase scenarios
|
|
and added some comments to better describe the 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...
|
|
if a revision responds to a root patch (no cover letter)
then the revision will nolonger be applied on top of
the first patch in the original set
|
|
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
|
|
and create functions to use this for non-root patches
|
|
if description isn't present this was causing an breaking error
|
|
when trying to create a branch from a proposal
when the the parent commit id doesnt exist
|
|
the description is not currently displayed so no tests where written
|
|
to reflect the requirement for certain tags
|
|
PR is a problematic term when it ambiguous whether the
set of patches are PR-like or email-patch like.
|
|
instead of commit ids as part of nip34 compliance and to enable
applying proposals to tip of master in the future
|
|
minor improvement to error message
|
|
as part of nip34 compliance
|
|
improve summary for help commands
|
|
instead of no default
|
|
previously filtering for d tag rather than a tag
this kind of bug should be picked up by tests when our
mock relay is applying filters before sending events
|
|
previously looking for p tag rather than author
this kind of bug should be picked up by tests when our
mock relay is applying filters before sending events
|
|
it wasn't clear why no results were coming back from relays
or why it is needs (added reference to relay updates)
|
|
also add a default web
|
|
wss://eden.nostr.land is a paid relay
wss://nostr.wine is paid relay
|
|
add a ui feature to countdown to timeout so user doesn't consider
exiting early
|
|
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
|
|
Improve how progress is reported in the UI when fetching events
|
|
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
|
|
this temporarily fixes tests that rely on the cli output from fetching
events by not printing verbose messages during tests
when a better solution is implemented for communicating get_events
status, it should be intergrated into the tests
|
|
a crashing bug was identifed when users ran ngit with large relay sets.
the test suite would also stop at random tests and produce a
...running for over 60 seconds error but only on nix configuration
and not when using rustup. this change fixes this so the ngit must have
been crashing more often when ran with the reduced resources of a nix
shell.
the test suite consistantly runs successfully under nix when this change
is applied to v0.1.0. later changes were made to mitigate this and other
issues as hot fixes which either intentionally broke tests (to rush the
change through as a hotfix) or unintentionally in the case of nostr 0.27
upgrade in fc3f22eac2bb81823f170f61ba9d39baff76b933
changes introduced in e0f543e8adb144f6deff6ff7ea0c412c9fcac5b4,
specifically queuing up relays, are probably not needed so I have
increased the number of relays proccessed at any one time from 5 to 15
|
|
hardcoding this relay as we have temporarily added to to all new repo
events, it will never return any results and connecting to many relays
is causing problems
|
|
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.
|
|
instead of the `more_fallback_relays`
|
|
this is a temporary fix until we handle relays more effectively
|
|
use fallback relays instead of more fallback relays
|
|
the tool had not been tested with large number of user relays, some of
which are misbehaving. It works well when sending events to relays but
struggles when fetching messages.
it seems to crash when accessing a large number of relays. this change
queues up relays so many are not connected to at the same time.
it also shows more verbose messages about its connection and success
with relays.
many of the tests will fail as a result of this change as I havn't
updated them to expect details of more relay interaction.
further changes are urgently needed to improve the speed of fetching
events.
- relay interaction UI should reflect the smooth approach used for
sending events
- we don't need to fetch user events from every relay
- we could show the user information that we have already collected
and allow them to interact
|
|
this shouldn't be present
|
|
to prevent tests from poluting public relays
|
|
before applying changes and bail if not
|
|
before checking out PR branch
add confirm prompt before checking out branch and applying changes
|
|
to maintain correct commit ids which is required to apply multiple
commits
its noted that no tests are written and the scenario where the author
and committer differ has not been tested
clearly the validate_patch_applied function has code that corrects an
error where the author / committer 'signatures' do not apply correctly.
this will not be fixed under a pgp signed commit scenario.
|
|
so that commit ids can be maintained
|
|
so that the user knows why a remote is required
|
|
so that changes to relays changes can be picked up
|
|
so that it is outside the 30000 <= n < 40000 parameterized replacable
range
|
|
- 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
|
|
- find pr with a branch-name that matches checked out branch
- check branch isnt behind latest patch on pr
- push new commits a patches associated with pr
|
|
- find pr event which matches branch name
- fetch and apply latest commits
|
|
- update nix flake
- bump hard coded reference to rustfmt nightly version
- fix warning that latest version of rustfmt produced
|
|
- fetch prs and present as a selectable list
- create and / or checkout branch for selected pr
- apply latest patches as commits
|
|
add single choice selector as an enabler for selecting pr from a list
|
|
add RepoActions trait methods to checkout ref, create branch at commit
and check if a commit exists
|
|
tag pr event with title, description and the name of the current
checkedout branch
|
|
r tags are indexed by relays in they same way as t tags and are a more
appropriate for referencing commits
|
|
fetch repository reference events to identify repository relays
send pr events to repository relays alongside user relays
|
|
file created in the wrong folder in error
|
|
we dont need to th verbose of getters and setters for this right now
|
|
enable wider usage of repoistory reference details
|
|
replacable event with root-commit, name, description and relay tags
|
|
reuse client across login and send events
|
|
connect immediately before requesting or sending events
no longer waiting for all relays to connect before interacting with any of them
|
|
fix breaking changes
|
|
immediately request metadata and relay list from any newly discovered
user write relays
|
|
get user relay list and metadata events from relays when keys are
used and last fetch attempt was more than an hour ago
uses user's write relays if known, otherwise uses fallback relays
to achieve this a method for intergration testing event fetching
from relays was added
|
|
add tests but these currently don't work when run together
|
|
- add client
- use client to send event
- add async functionality - enabler for relay interaction whilst
getting cli input
|
|
- identify commits
- create pull request event
- create patch events
|
|
Enables the user to only handle the nsec upon first use of the tool
by encrypting it with a password and storing it on disk in an
application cache.
The approach to encryption draws heavily from that used by the gossip
nostr client.
- unencrypted nsec is zeroed from memory
- a salt is used to defend against rainbow tables
- computationally expensive key stretching defends against
brute-force attacks of passwords with low entropy.
There is UX trade-off between decryption speed and key-stretching
computation. This UX challenge is exacerbated in a cli tool as
decryption must take place more regularly. Thought was put into the
selected n_log and a heavily reduced value is provided for long
passwords where security benefits are smaller.
A more granular reducing in computation was also considered by
rejected to avoided to revealing just how weak a password is as most
weak passwords are reused.
|
|
Create skeleton for a complete rebuild of the prototype as a production
ready product.
Includes design patterns for:
- dependency injection
- unit testing with dependency mocking
- integration testing
- error handling
- config storage
BREAKING-CHANGE: ground-up redesign with incompatible protocol standards
|