README.org

v1.0.5
gitbay-ios/README.org rendered · source · history · blame · raw

79 lines · 3601 bytes

 1#+title: gitbay-ios
 2#+author: Christian Cleberg
 3
 4A native iOS client for [[https://gitbay.org][gitbay]], a CLI-first git forge.
 5
 6This app is a reading, reviewing and responding surface for the times you are
 7not at a keyboard.
 8
 9# TODO: on publish, replace with the App Store badge:
10# [[https://apps.apple.com/app/id<APP_ID>][https://toolbox.marketingtools.apple.com/api/v2/badges/download-on-the-app-store/black/en-us]]
11
12* What it does
13
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 |
23
24* Signing in
25
26As =gitbay= requires, your SSH key is your identity. To login to the mobile app,
27you will need to mint a bearer token:
28
29#+begin_src sh
30gitbay auth token create --name iphone --scope full --ttl 90d
31#+end_src
32
33Alternatively, =--scope read= works too, but a read-only token cannot comment or
34merge.
35
36Any gitbay instance works. You just need to enter the host at sign-in.
37
38* Building
39
40Requires Xcode with an iOS 26.5 SDK. Swift 6 language mode, default =MainActor=
41isolation.
42
43#+begin_src sh
44xcodebuild -project gitbay.xcodeproj -scheme gitbay \
45  -destination 'platform=iOS Simulator,name=iPhone 17' build
46#+end_src
47
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.
50
51* Tests
52
53=gitbayTests= is hermetic and runs offline; network calls go through a stubbed
54=URLProtocol=.
55
56#+begin_src sh
57xcodebuild -project gitbay.xcodeproj -scheme gitbay \
58  -destination 'platform=iOS Simulator,name=iPhone 17' \
59  test -only-testing:gitbayTests
60#+end_src
61
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:
65
66#+begin_src sh
67TEST_RUNNER_GITBAY_UITEST_LIVE=1 \
68TEST_RUNNER_GITBAY_UITEST_TOKEN=<token> \
69xcodebuild -project gitbay.xcodeproj -scheme gitbay \
70  -destination 'platform=iOS Simulator,name=iPhone 17' test
71#+end_src
72
73* Contributing
74
75To contribute, create a merge request with your changes:
76
77#+begin_src sh
78gitbay mr create --source <branch> --target main --title "..."
79#+end_src