upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-02-15fix: curate default relaysDanConwayDev
wss://eden.nostr.land is a paid relay wss://nostr.wine is paid relay
2024-02-14feat: get_events coutdown to timeoutDanConwayDev
add a ui feature to countdown to timeout so user doesn't consider exiting early
2024-02-14feat: find repo event by nevent or naddrDanConwayDev
if repo event cannot be found using unique commit the user can find it via a nevent or naddr also handle no PRs found
2024-02-14feat: send to default relays, blast repo eventDanConwayDev
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
2024-02-14feat: improve fetch events reportingDanConwayDev
Improve how progress is reported in the UI when fetching events
2024-02-14feat!: move `claim` > `init`DanConwayDev
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
2024-02-14feat!: move `prs create`>`send`, `prs list`>`list`DanConwayDev
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
2024-02-13feat!: nip34 set pr kind to patch kindDanConwayDev
this enables consistancy of display with simple clients that are just taking the output of `git format-patch`
2024-02-13feat!: nip34 make pr event optionalDanConwayDev
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.
2024-02-13feat(prs-create)!: pr to nip34-like cover letterDanConwayDev
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
2024-02-09refactor(git): find root commit from headDanConwayDev
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
2024-02-09feat(prs-create): add `PATCH n/n` to contentDanConwayDev
format patch as a series in the patch event content unless it is 1/1 and there is no pr (cover letter) event
2024-02-02test: replace block_on with tokio::testsjk
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
2024-02-02feat(prs-create)!: use nip34 patch kind and tagsDanConwayDev
- 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
2024-02-02feat(repo_ref)!: align maintainers tag to nip34 styleDanConwayDev
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
2024-02-02feat(repo_ref)!: use nip34 kind and tagsDanConwayDev
- 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
2024-01-31test: dont print verbose get_events log for testsDanConwayDev
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
2024-01-31fix: intermittent crashing by removing block_onDanConwayDev
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
2024-01-27fix: stop requesting events from blasterDanConwayDev
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
2024-01-27fix(login): stop bailing when no name in metadataDanConwayDev
now falls back to displayName, display_name or npub test pass when loggined printed to the cli in e0f543e8adb144f6deff6ff7ea0c412c9fcac5b4 are commented out
2024-01-26chore: upgrade rust-nostr v0.27.0v0.1.1DanConwayDev
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.
2024-01-26fix: use correct fallback relaysDanConwayDev
instead of the `more_fallback_relays`
2024-01-26feat(claim): add blaster to relay listDanConwayDev
this is a temporary fix until we handle relays more effectively
2024-01-26fix(claim): use correct fallback relaysDanConwayDev
use fallback relays instead of more fallback relays
2024-01-26fix: fetching messages with many unreliable relaysDanConwayDev
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
2024-01-23fix(prs-create): remove d tag from pr eventDanConwayDev
this shouldn't be present
2024-01-23build: env specific fallback relaysDanConwayDev
to prevent tests from poluting public relays
2024-01-23feat(pull): check for clean repoDanConwayDev
before applying changes and bail if not
2024-01-23feat(prs-list): check for clean repoDanConwayDev
before checking out PR branch add confirm prompt before checking out branch and applying changes
2024-01-22feat(git): apply pgp sig event tag to commitDanConwayDev
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.
2024-01-22feat(git) save pgp sig in patch eventDanConwayDev
so that commit ids can be maintained
2024-01-22feat(claim): improve no remote error messageDanConwayDev
so that the user knows why a remote is required
2024-01-22feat(login): reduced cache usage delayDanConwayDev
so that changes to relays changes can be picked up
2024-01-22feat(claim): change repo event kindDanConwayDev
so that it is outside the 30000 <= n < 40000 parameterized replacable range
2023-12-12feat(claim) create yaml add maintainers and relaysDanConwayDev
- 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
2023-12-08feat(push) push commits to existing prDanConwayDev
- 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
2023-12-07feat(pull) pull commits for checked out pr branchDanConwayDev
- find pr event which matches branch name - fetch and apply latest commits
2023-12-06build(deps) update nixDanConwayDev
- update nix flake - bump hard coded reference to rustfmt nightly version - fix warning that latest version of rustfmt produced
2023-12-01feat(prs-list) list and pull selected as branchDanConwayDev
- fetch prs and present as a selectable list - create and / or checkout branch for selected pr - apply latest patches as commits
2023-11-01feat:(cli_interactor) add choice selectorDanConwayDev
add single choice selector as an enabler for selecting pr from a list
2023-11-01feat(git) create and checkout branchDanConwayDev
add RepoActions trait methods to checkout ref, create branch at commit and check if a commit exists
2023-11-01feat(prs-create) add pr tag branch-name and titleDanConwayDev
tag pr event with title, description and the name of the current checkedout branch
2023-11-01feat(prs-create) use r instead of t tag for refsDanConwayDev
r tags are indexed by relays in they same way as t tags and are a more appropriate for referencing commits
2023-11-01feat(prs-create) send to repo relaysDanConwayDev
fetch repository reference events to identify repository relays send pr events to repository relays alongside user relays
2023-11-01refactor(claim) move repo_ref.rsDanConwayDev
file created in the wrong folder in error
2023-11-01refactor(claim) remove setter flowDanConwayDev
we dont need to th verbose of getters and setters for this right now
2023-11-01refactor(claim) add RepoRef structDanConwayDev
enable wider usage of repoistory reference details
2023-11-01feat(claim) create basic eventDanConwayDev
replacable event with root-commit, name, description and relay tags
2023-11-01feat(prs-create) send to user relaysDanConwayDev
reuse client across login and send events
2023-11-01refactor(client) simply connect flowDanConwayDev
connect immediately before requesting or sending events no longer waiting for all relays to connect before interacting with any of them
2023-11-01build(deps) update nostr nostr-sdkDanConwayDev
fix breaking changes
2023-11-01feat(login) fetch from discovered write relaysDanConwayDev
immediately request metadata and relay list from any newly discovered user write relays
2023-10-01feat(login) fetch user relays and metadataDanConwayDev
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
2023-10-01feat(prs-create) send to multiple relaysDanConwayDev
add tests but these currently don't work when run together
2023-10-01feat(prs-create) send commit to relayDanConwayDev
- add client - use client to send event - add async functionality - enabler for relay interaction whilst getting cli input
2023-10-01feat(prs-create) find commits and create eventsDanConwayDev
- identify commits - create pull request event - create patch events
2023-09-01feat(login) password login using encrypted nsecDanConwayDev
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.
2023-09-13refactor: rebuild app skeletonDanConwayDev
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