main
Build iOS App / Build .ipa and publish source (push) Successful in 31s
Sideloaded apps can't use APNs (no push entitlement without Apple signing), so deliver notifications via an iOS BGAppRefreshTask that polls the monitored repos every ~15 min and fires local notifications (no Apple push needed): - new PRs that appear in the open set - CI status changes on existing PRs Persistence: NotificationState tracks announced PR ids + last-known CI status so we only fire on actual changes, not every poll. AppDelegate registers the background task and reschedules the next one. Info.plist gets UIBackgroundModes fetch + the BGTask identifier. Settings gains a Notifications toggle; also poll after a foreground inbox load so state seeds and changes are caught promptly. Bump to 3.6.
GiteaPR
Native iOS app to manage Gitea pull requests from your self-hosted instance (gitea.bueso.eu). Multi-repo inbox, PR review, read-only diff browsing, and Gitea Actions check status with one-tap re-run.
Built unsigned via Gitea Actions on the iMac runner and distributed through the SideStore source at https://apps.bueso.eu/source.json.
Build
xcodebuild -project GiteaPR.xcodeproj -scheme GiteaPR -configuration Release \
-sdk iphoneos -destination 'generic/platform=iOS' \
CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO build
Setup in the app
- Create a personal access token in Gitea
(Settings → Applications) with scopes:
read:repositorywrite:repository(review, merge, comment)read:user
- Enter the instance URL (e.g.
https://gitea.bueso.eu) and the token in Settings. The token is stored in the iOS Keychain.
Known limitations
- Inline file review comments are not exposed by the Gitea API; the diff viewer is read-only and comments are PR-level only.
- No push notifications in v1 (pull-to-refresh + badge).
- No offline queue in v1.
Languages
Swift
100%