krz/hutch
an ios client for sourcehut
clone: git clone https://gitbay.org/krz/hutch.git
v2.1: README.md · raw
1# Hutch
2iOS client for SourceHut.
3
4[](https://builds.sr.ht/~ccleberg/Hutch?)
5
6## Overview
7
8Hutch 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.
9
10The app currently includes:
11
12- Home dashboard with assigned tickets, recent builds, and projects
13- Repository browsing for Git and Mercurial repositories
14- Repository details including README, references, commits, diffs, files, artifacts, and settings
15- Tracker and ticket browsing, ticket detail views, and tracker creation
16- Build job browsing, build detail views, and build submission
17- Inbox and mailing list reading flows
18- Paste browsing, creation, and detail views
19- Profile and account settings, including SSH keys, PGP keys, and personal access token management
20- Deep links for repositories, tickets, and build jobs
21
22Some SourceHut services are still browser-only from within Hutch. Unsupported areas currently open in Safari instead of rendering in-app.
23
24## Requirements
25
26- Xcode with current iOS SDK support
27- iOS Simulator or physical iOS device
28- A SourceHut account
29- A SourceHut personal access token
30
31## Getting Started
32
331. Clone the repository:
34
35 ```sh
36 git clone https://git.sr.ht/~ccleberg/Hutch
37 ```
38
392. Open the project in Xcode.
403. Build and run the app on a simulator or device.
414. On first launch, create or paste a SourceHut personal access token.
42
43You can create a token at:
44
45- `https://meta.sr.ht/oauth/personal-access-tokens`
46
47## Using Hutch
48
49After signing in with a valid token, Hutch presents five primary areas:
50
51- `Home`: dashboard for projects, assigned tickets, recent builds, and inbox access
52- `Repositories`: browse, search, create, and manage repositories
53- `Tickets`: browse trackers, create trackers, and view ticket details
54- `Builds`: inspect build jobs and submit new builds
55- `More`: lists, pastes, settings, and external links for unsupported services
56
57Authentication notes:
58
59- Hutch validates the token against `meta.sr.ht` before saving it
60- The token is stored in the iOS keychain
61- `Reset App Data` removes saved token data, caches, cookies, and local web data from the device
62
63## Development
64
65The project is an Xcode app with tests under `HutchTests`.
66
67Typical workflow:
68
691. Open the workspace or project in Xcode.
702. Select the Hutch app scheme.
713. Build the app.
724. Run the test plan in `Hutch/HutchTests.xctestplan`.
73
74## Contributing
75
76Contributions are welcome. Keep changes scoped, include tests when behavior changes, and open a pull request with a clear summary of the user-facing impact.
77
78## Security
79
80If you discover a security issue, see [SECURITY.md](SECURITY.md).
81
82## License
83
84This project is licensed under the GPL 3.0 or later. See [LICENSE](LICENSE).
85
86## Contact
87
88Questions or feedback: hello@cleberg.net