krz/hutch

an ios client for sourcehut

clone: git clone https://gitbay.org/krz/hutch.git

remove-splash-highlighter: README.md · raw

 1# Hutch
 2iOS client for SourceHut.
 3
 4[![builds.sr.ht status](https://builds.sr.ht/~ccleberg/Hutch.svg)](https://builds.sr.ht/~ccleberg/Hutch?)
 5[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=zerolabsco_hutch&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=zerolabsco_hutch)
 6[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=zerolabsco_hutch&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=zerolabsco_hutch)
 7
 8[![App Store Badge](https://zerolabs.sh/storebutton.svg)](https://apps.apple.com/us/app/hutch-for-sourcehut/id6760742299)
 9
10## Overview
11
12Hutch is a native SwiftUI app for browsing and managing SourceHut services on iPhone and iPad. It uses SourceHut's GraphQL APIs and stores your personal access token in the iOS keychain.
13
14The app currently includes:
15
16- Home dashboard with assigned tickets, recent builds, and projects
17- Repository browsing for Git and Mercurial repositories
18- Repository details including README, references, commits, diffs, files, artifacts, and settings
19- Artifact upload and deletion on release tags
20- Tracker and ticket browsing, ticket detail views, and tracker creation
21- Ticket editing and deletion, with subscriptions for tickets and trackers
22- Build job browsing, build detail views, and build submission
23- Inbox and mailing list reading flows
24- Patchset review: cover letters, per-patch diffs, checks, version chains, and status changes
25- Mailing list creation, settings, and deletion
26- Paste browsing, creation, and detail views
27- Profile and account settings, including SSH keys, PGP keys, personal access token management, and the audit log
28- Email preferences for todo.sr.ht and lists.sr.ht
29- Deep links for repositories, tickets, and build jobs
30
31Some SourceHut services are still browser-only from within Hutch. Unsupported areas currently open in Safari instead of rendering in-app.
32
33## Requirements
34
35- Xcode with current iOS SDK support
36- iOS Simulator or physical iOS device
37- A SourceHut account
38- A SourceHut personal access token
39
40## Getting Started
41
421. Clone the repository:
43
44   ```sh
45   git clone https://git.sr.ht/~ccleberg/Hutch
46   ```
47
482. Open the project in Xcode.
493. Build and run the app on a simulator or device.
504. On first launch, create or paste a SourceHut personal access token.
51
52You can create a token at:
53
54- `https://meta.sr.ht/oauth2/personal-token`
55
56## Using Hutch
57
58After signing in with a valid token, Hutch presents five primary areas:
59
60- `Home`: dashboard for projects, assigned tickets, recent builds, and inbox access
61- `Repositories`: browse, search, create, and manage repositories
62- `Tickets`: browse trackers, create trackers, and view ticket details
63- `Builds`: inspect build jobs and submit new builds
64- `More`: lists, pastes, settings, and external links for unsupported services
65
66Authentication notes:
67
68- Hutch validates the token against `meta.sr.ht` before saving it
69- The token is stored in the iOS keychain
70- `Reset App Data` removes saved token data, caches, cookies, and local web data from the device
71
72## Development
73
74The project is an Xcode app with tests under `HutchTests`.
75
76Typical workflow:
77
781. Open the workspace or project in Xcode.
792. Select the Hutch app scheme.
803. Build the app.
814. Run the test plan in `Hutch/HutchTests.xctestplan`.
82
83## Contributing
84
85Contributions are welcome. Keep changes scoped, include tests when behavior changes, and open a pull request with a clear summary of the user-facing impact.
86
87Hutch is hosted on both [GitHub](https://github.com/zerolabsco/hutch) and [sourcehut](https://sr.ht/~ccleberg/Hutch), which are kept in sync. Report issues or send patches on whichever you prefer — GitHub issues and pull requests, or the [todo.sr.ht tracker](https://todo.sr.ht/~ccleberg/hutch) and [`git send-email`](https://git-send-email.io/).
88
89## Security
90
91If you discover a security issue, see [SECURITY.md](SECURITY.md).
92
93## License
94
95This project is licensed under the GPL 3.0 or later. See [LICENSE](LICENSE).
96
97## Contact
98
99Questions or feedback: hello@cleberg.net