The iOS half of krz/gitbay!101.
- Explore tab — what the instance hosts, paginated, topics as accent chips.
repo searchneeds 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.htmlandblob.htmlput 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 — aNavigationLinkinside.swipeActionsdoesn'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/readcan 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