upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/lib/push.rs
AgeCommit message (Collapse)Author
2026-04-28fix(send): repo GRASP servers never tried when pushing PR proposal refsDanConwayDev
is_grasp_server_in_list does a direct string comparison, but repo_grasps (from grasp_servers()) contains normalised hostnames (e.g. relay.ngit.dev) while repo_ref.git_server holds full clone URLs. They never match, so to_try was always empty and every PR submission fell through to the fork creation / personal GRASP server fallback path. Fix: normalise each clone URL before comparing against repo_grasps.
2026-03-04add NIP-21 content tags (q/p) to issues, comments, PRs and patchesDanConwayDev
- parse nostr: URI mentions in issue bodies, comment bodies, PR descriptions, patch commit messages and cover letters - npub/nprofile mentions produce p tags; note/nevent/naddr mentions produce q tags per NIP-22 - naddr q tag value uses raw <kind>:<pubkey-hex>:<identifier> format - nevent pubkey field populated from embedded author or local cache lookup - dedup_tags() removes duplicate p tags and suppresses q tags whose event-id is already covered by an existing e threading tag - all parsing errors are non-fatal: invalid nostr: tokens are skipped
2026-02-26fix: report per-relay publish results in send_events summaryDanConwayDev
Change send_events() return type from Result<()> to Result<Vec<(String, bool)>> so callers can inspect which relays accepted events. Update the finish message to show "Published to X/N relays (failed: ...)" instead of the unconditional "Published ... to nostr relays".
2026-02-26feat: forward unrecognised push options to git serversDanConwayDev
Any -o option passed to `git push` that is not handled by ngit (title, description) is forwarded verbatim to the git server via git2::PushOptions::remote_push_options. This allows options such as `-o secret-scanning.skip` to pass through transparently. `ngit send` gains a matching -o / --push-option flag for the same purpose.
2025-11-13refactor: simplify get_short_git_server_nameDanConwayDev
so it doesnt use the git_repo
2025-10-28fix(pr): push use stderr rather than stdoutDanConwayDev
so we dont return a value to the git during remote helper operations
2025-10-17feat!(nostr_url): replace user with ssh_key_fileDanConwayDev
replaces the "user" in the nostr_url format with "ssh_key_file", to support the original intent, which was to allow users to specify different authentication credentials. most git servers always expect the ssh user to be 'git'. the idiumatic way of specifying logging in as a different user is to specify a different ssh key. the idiomatic way of storing non-default ssh keys is in the location `~/.ssh/key_name`. "ssh_key_file" can be specified as `key_name`, for keys in the default location, or as a relative or absolute custom location eg. `/other_keys/.ssh/nym1` or `../.ssh/nym1`. BREAKING CHANGE: in nostr git url nym1@ssh/npub123/identifer, nym1 is now treated as ssh key file location rather than a ssh user. it can be specified as a file within `~/.ssh` eg `~/.ssh/nym1` or a full or relative path.
2025-10-17feat(send): add `merge-base` tag to PR (Update)DanConwayDev
following its inclusion in the NIP-34 spec
2025-09-04feat(remote): use push PR non-interactive fallbackDanConwayDev
move the PR push code in 'ngit send' into lib. reuse the non-interactive fallbacks in git-remote-nostr
2025-08-07fix(send): refs not confirmed are usually acceptedDanConwayDev
having implemented 3b5c48f5a2a4b9be5d14baa8f5e801fefd5c1166, a ref pushed to refs/nostr/<event-id> on a github repo was accepted but was not confirmed
2025-08-07fix(send):server not confirming acceptanceDanConwayDev
don't treat this as accepted
2025-08-07fix(send): push PR refs to non-grasp serversDanConwayDev
attempt to use a range of protocols instead of unath http
2025-08-07fix(push): capture more error updating refsDanConwayDev
previously server might respond with errors updating refs but we were not treating this as a failure to push those refs.
2025-08-06feat(send): custom ref for PR clone urlDanConwayDev
allow specifying ref for pushing PR to custom clone url
2025-08-05feat(send): push PR to custom clone urlDanConwayDev
if the repo doesnt list any grasp servers, or pushing to them fails
2025-08-05feat(send): support PR and PR update eventsDanConwayDev
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.
2025-08-04refactor: move generate pr event fn into libDanConwayDev
for future use in `ngit send`
2025-07-25refactor: move push helpers to libDanConwayDev
to enable forthcoming ngit sync cmd