a native ios client for gitbay

client ios swift

https://gitbay.org

explore, and history at a ref and per file !17

merged cmc wants to merge krz/gitbay-ios:explore-and-refs-log into main

cmc

The iOS half of krz/gitbay!101.

  • Explore tab — what the instance hosts, paginated, topics as accent chips. repo search needs a query, so without this there was no way to find a repository you didn't already know the name of.
  • History at a ref — the tree screen offers it for the ref being browsed, and a file offers its own history. This follows the web: tree.html and blob.html put the links exactly there. My first attempt was a swipe action on the refs list, which the web has no equivalent for and which didn't work anyway — a NavigationLink inside .swipeActions doesn't render as a tappable button.

174 unit tests green. Live smoke green: Explore listing repositories this account doesn't own, and history at a ref reached from the tree.

Archive download is not here, and I'd like a decision rather than guessing. repo download works over SSH, but the row can't be closed the same way as the others:

  • Its output is gzip, and /api/v1/read can only carry a command's stdout as a JSON string — binary gets mangled. So the app can't fetch it through the API.
  • The web's /archive/ route authenticates with a session cookie, not a bearer token, so linking out works for public repos and fails for private ones — the same limitation release assets already have, but more visible here.
  • There's also a question of whether it's worth having. The brief rules out local git — no clone, no checkout, no build — so a tarball on a phone has no obvious use beyond saving to Files.

Three options, in increasing cost: leave it out and mark the Parity row as intentionally absent for iOS; link to the web route and accept that private repos fail; or add a binary-safe read endpoint to the API, which would fix release asset downloads too.

Ref #11