mirror of
https://github.com/cooperspencer/gickup
synced 2026-08-04 20:12:52 +02:00
* Adds Radicle destination This destination allows mirroring repositories into the storage of a local [Radicle](https://radicle.network) node. Requires `git` + Radicle Command Line Interface (CLI) tools installed, i.e. `rad` and `git-remote-rad` binaries. See https://radicle.network/install . The repository is initialized with `rad init` on the first run and pushed through the `git-remote-rad` helper afterwards, so the refs are signed with the key of the Radicle profile. Because every backup run works on a fresh temporary clone, each run has to find the Repository ID (RID) created for an upstream on an earlier run: every mirror records its upstream URL in a "dev.gickup" extension of the signed Radicle identity document `payload`, and the storage is scanned for a repository whose recorded source matches and whose refs are signed by this profile's key — comparable to the existence lookups the forge destinations make against their APIs, just against local storage. (Local-first, For The Win!) Unlike other forge destinations we cannot use go-git for pushing, because Radicle repositories are only reachable through the `git-remote-rad` remote helper, which go-git does not support. All storage-touching operations therefore shell out to the system `git` and `rad` binaries, so identity creation and signed-refs handling stay inside the Radicle tooling. Signed-off-by: Yorgos Saslis <yorgos.work@proton.me> * fixup! Adds Radicle destination Signed-off-by: Yorgos Saslis <yorgos.work@proton.me> * fixup! Adds Radicle destination Signed-off-by: Yorgos Saslis <yorgos.work@proton.me> --------- Signed-off-by: Yorgos Saslis <yorgos.work@proton.me> Co-authored-by: Andreas Wachter <andreas.wachter@buddyspencer.monster>