upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/git_remote_helper.rs
AgeCommit message (Collapse)Author
2024-08-07fix(remote): `push` apply proposal permissionsDanConwayDev
so that only the author and repo maintainers can push to a proposal
2024-08-07feat(remote): `push` add commits to proposalDanConwayDev
push commits as patches to a proposal or propoal revision
2024-08-07fix(remote): `push` dont send rejected to serverDanConwayDev
dont send refspec to a git server which was rejected due to a conflict highlighted on a different git server
2024-08-07feat(remote): `fetch` applies proposal commitsDanConwayDev
that have been proposal tips returned by `list` can be found
2024-08-06fix(remote): `list` correct proposal refsDanConwayDev
as the `refs/heads/` prefix wasn't present
2024-08-06feat(remote): `fetch` ignore git servers `prs/*`DanConwayDev
as the namespace is reserved for nostr patches
2024-08-06feat(remote): `fetch` report on progressDanConwayDev
so that user knows what step we are on
2024-08-06feat(remote): `list` includes open proposalsDanConwayDev
and filters out other branches in `prs/*` namespace
2024-08-05fix(remote): `push` when server is ahead of nostrDanConwayDev
but behind local. correctly report on situation and allow push
2024-08-05feat(remote): print git url short nameDanConwayDev
instead of the full url so messages are easier to read
2024-08-05feat(remote): improve `list` warning copyDanConwayDev
so it is clearer and easier to read
2024-08-05feat(remote): improve `push` warning copyDanConwayDev
so it is clearer and easier to read
2024-08-05feat(remote): `push` handle out-of-sync serversDanConwayDev
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
2024-08-05refactr(remote) `list` abstract `list_from_remotes`DanConwayDev
In preparation for its reuse within `push`
2024-08-02feat(remote): `list` add git server statusDanConwayDev
so we have a status update and know which server is slow
2024-08-02feat(remote): improve warning copyDanConwayDev
so it is more concise and clear
2024-08-02feat(remote): warn when out of syncDanConwayDev
with git servers. this will also form the basis of preventing failed pushes
2024-08-02fix: identifer in parse `nostr://npub/identifer`DanConwayDev
as it was hardcoded to test value
2024-08-01fix(remote): display nostr fetch reportDanConwayDev
use stderr to write lines that get displayed when run as a git-remote-helper
2024-08-01Revert "fix(remote): display nostr fetch report"DanConwayDev
This reverts commit 6b63f150ba9e7c69bf83bcbd24543051c765c9f6.
2024-08-01fix(remote): display nostr fetch reportDanConwayDev
use `stderr` to write lines that get displayed when run as a git-remote-helper
2024-08-01test(remote): fix url `from_naddr`DanConwayDev
as rust-nostr doesn't add trailing slash to relays
2024-08-01feat(remote): `--version` get from cargo packageDanConwayDev
instead of manually set. aligns with ngit version.
2024-08-01feat(remote): add `nostr://npub/identifer`DanConwayDev
support with optional relays as query parameter
2024-08-01test(remote): add nostr url parse testDanConwayDev
in prep for supporting new format
2024-08-01feat(remote): `fetch` fallsback to other serversDanConwayDev
listed in the announcement `clone` tag
2024-08-01feat(remote): `push` to all `clone` serversDanConwayDev
initially we push to the first server, if successful update the state event, then siliently push to the others and silently fail
2024-08-01fix(remote): download oids not refstrDanConwayDev
so that if the git server is ahead of the state announcement, only the commits in the state annoucement will be downloaded
2024-08-01feat(remote): `fetch` uses state eventDanConwayDev
and falls back to git server is state event cant be found
2024-07-31fix(remote): updating `push` state eventDanConwayDev
ensure refs are included in state event use `HashMap` to improve `RepoState` struct
2024-07-31feat(remote): `push` issues state eventDanConwayDev
if no previous state events can be found it replicates git server otherwise it just updates pushed value
2024-07-30refactor: add struct `RepoState`DanConwayDev
to more easily access state details
2024-07-30refactor(remote): improve readabilityDanConwayDev
and move code identifying git server url into `list`, `fetch` and `push`.
2024-07-29refactor(remote): abstract `list`DanConwayDev
in preparation for managing state via nostr
2024-07-28fix(remote): only update ref when `push` succeedsDanConwayDev
only update remote ref when push was successful
2024-07-28refactor(remote): abstract `fetch` and `push`DanConwayDev
so main doesn't grow too large
2024-07-28feat(remote): report on `push`DanConwayDev
pass outcome back to git to enable reporting
2024-07-28feat(remote): batch `push` and `fetch`DanConwayDev
requests so that the git_server is called once rather than many time in serial
2024-07-28refactor(remote): allow more `push` callbacksDanConwayDev
by using GitAuthenticatior credential callback directly rather than its `push` method
2024-07-26fix(remote): push updates remote refsDanConwayDev
push was not updating remote refs after the anon remote was being pushed
2024-07-26fix(remote): authenticate pushesDanConwayDev
in the future we could implement our own credentials callback function to remove the dependancy
2024-07-26feat(remote): add nostr git remote helperDanConwayDev
as a simple proxy to the first git server listed in announcement parse clone url as `nostr://naddr123...`