Commit ce4ff56609

ce4ff56609137090f1527ac59e0795ec40dc6880

parent: 079c94c2d1

Unsigned

cmc <hello@cleberg.net> · 2026-08-31 20:00 UTC

README: a feature table, and clearer prose

The "What it does" bullets become a two-column table — area, and what is
in it.

Also carries edits made alongside: the sign-in section leads with the SSH
key as identity, building and contributing read more directly, and the
live-fixture and bundle-identifier notes are dropped.

=gitbay= uses org verbatim rather than backticks, which org has no markup
for and would render literally.

Layout: unified · split

README.org +26 −36
@@ -3,59 +3,55 @@
33
44A native iOS client for [[https://gitbay.org][gitbay]], a CLI-first git forge.
55
6The command line is the product. This app is a reading, reviewing and
7responding surface for the times you are not at a keyboard.
6This app is a reading, reviewing and responding surface for the times you are
7not at a keyboard.
88
99# TODO: on publish, replace with the App Store badge:
1010# [[https://apps.apple.com/app/id<APP_ID>][https://toolbox.marketingtools.apple.com/api/v2/badges/download-on-the-app-store/black/en-us]]
1111
1212* What it does
1313
14- *Dashboard* — your review queue, assigned work, open merge requests and
15 issues, pinned repositories, recent activity.
16- *Repositories* — file tree and blob view with syntax highlighting,
17 history at a ref or per file, blame, branches and tags, and file editing
18 on a branch.
19- *Merge requests and issues* — lists, detail, comments, milestones, and a
20 unified diff.
21- *Builds* — build list, job picker, logs.
22- *Releases and wiki*, read from the same instance.
23- *Explore, feed and profiles* — discovery, activity, contribution graph.
24- *READMEs* in Markdown and Org. Org renders natively through
25 [[https://gitbay.org/krz/org-swift][OrgSwiftUI]] — selectable text, Dynamic Type, VoiceOver — rather than in a
26 web view.
14| Area | What's there |
15|----------------------------+-------------------------------------------------------------------------------------------------------------------------------|
16| Dashboard | Your review queue, assigned work, open merge requests and issues, pinned repositories, recent activity |
17| Repositories | File tree and blob view with syntax highlighting, history at a ref or per file, blame, branches and tags, file editing on a branch |
18| Merge requests and issues | Lists, detail, comments, milestones, and a unified diff |
19| Builds | Build list, job picker, logs |
20| Releases and wiki | Read from the same instance |
21| Explore, feed and profiles | Discovery, activity, contribution graph |
22| READMEs | Markdown and Org. Org renders natively through [[https://gitbay.org/krz/org-swift][OrgSwiftUI]] — selectable text, Dynamic Type, VoiceOver — rather than in a web view |
2723
2824* Signing in
2925
30Auth is a bearer token, minted over SSH on a machine that already has your
31key. The app never asks for a password.
26As =gitbay= requires, your SSH key is your identity. To login to the mobile app,
27you will need to mint a bearer token:
3228
3329#+begin_src sh
3430gitbay auth token create --name iphone --scope full --ttl 90d
3531#+end_src
3632
37=--scope read= works too, but a read-only token cannot comment or merge.
38The token is stored in the iOS keychain.
33Alternatively, =--scope read= works too, but a read-only token cannot comment or
34merge.
3935
40Any gitbay instance works; the host is entered at sign-in.
36Any gitbay instance works. You just need to enter the host at sign-in.
4137
4238* Building
4339
44Requires Xcode with an iOS 26.5 SDK. Swift 6 language mode, default
45=MainActor= isolation.
40Requires Xcode with an iOS 26.5 SDK. Swift 6 language mode, default =MainActor=
41isolation.
4642
4743#+begin_src sh
4844xcodebuild -project gitbay.xcodeproj -scheme gitbay \
4945 -destination 'platform=iOS Simulator,name=iPhone 17' build
5046#+end_src
5147
52Dependencies resolve over SSH ([[https://gitbay.org/krz/org-swift][krz/org-swift]]) and HTTPS
53([[https://github.com/raspu/Highlightr][Highlightr]]), so a key that can reach gitbay.org is needed to build.
48Dependencies resolve over SSH ([[https://gitbay.org/krz/org-swift][krz/org-swift]]) and HTTPS ([[https://github.com/raspu/Highlightr][Highlightr]]), so a key
49that can reach gitbay.org is needed to build.
5450
5551* Tests
5652
57=gitbayTests= is hermetic and runs offline; network calls go through a
58stubbed =URLProtocol=.
53=gitbayTests= is hermetic and runs offline; network calls go through a stubbed
54=URLProtocol=.
5955
6056#+begin_src sh
6157xcodebuild -project gitbay.xcodeproj -scheme gitbay \
@@ -63,9 +59,9 @@ xcodebuild -project gitbay.xcodeproj -scheme gitbay \
6359 test -only-testing:gitbayTests
6460#+end_src
6561
66=gitbayUITests= includes a live smoke suite that talks to a real instance.
67It is opt-in, and skips without both variables. Environment reaches the
68test runner only with the =TEST_RUNNER_= prefix:
62=gitbayUITests= includes a live smoke suite that talks to a real instance. It is
63opt-in, and skips without both variables. Environment reaches the test runner
64only with the =TEST_RUNNER_= prefix:
6965
7066#+begin_src sh
7167TEST_RUNNER_GITBAY_UITEST_LIVE=1 \
@@ -74,16 +70,10 @@ xcodebuild -project gitbay.xcodeproj -scheme gitbay \
7470 -destination 'platform=iOS Simulator,name=iPhone 17' test
7571#+end_src
7672
77The live suite depends on fixtures it does not create; each is guarded by
78a skip rather than seeded, since seeding one would mean a push.
79
8073* Contributing
8174
82Merge requests, not pull requests — this is gitbay, not GitHub. =gh= does
83nothing here.
75To contribute, create a merge request with your changes:
8476
8577#+begin_src sh
8678gitbay mr create --source <branch> --target main --title "..."
8779#+end_src
88
89Bundle identifier =org.gitbay.gitbay=. Releases are tagged =vX.Y.Z=.