{"id":49631888,"url":"https://github.com/zerolabsco/hutch","last_synced_at":"2026-05-09T00:01:44.816Z","repository":{"id":344879917,"uuid":"1183548800","full_name":"zerolabsco/hutch","owner":"zerolabsco","description":"an ios client for sourcehut","archived":false,"fork":false,"pushed_at":"2026-05-07T02:04:37.000Z","size":1163,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-07T03:31:37.231Z","etag":null,"topics":["app","ios","sourcehut"],"latest_commit_sha":null,"homepage":"https://zerolabs.sh/hutch/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zerolabsco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["ccleberg"]}},"created_at":"2026-03-16T18:07:02.000Z","updated_at":"2026-05-07T02:04:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zerolabsco/hutch","commit_stats":null,"previous_names":["ccleberg/hutch","zerolabsco/hutch"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/zerolabsco/hutch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerolabsco%2Fhutch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerolabsco%2Fhutch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerolabsco%2Fhutch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerolabsco%2Fhutch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zerolabsco","download_url":"https://codeload.github.com/zerolabsco/hutch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerolabsco%2Fhutch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32802533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","ios","sourcehut"],"created_at":"2026-05-05T13:00:57.471Z","updated_at":"2026-05-09T00:01:44.793Z","avatar_url":"https://github.com/zerolabsco.png","language":"Swift","funding_links":["https://github.com/sponsors/ccleberg"],"categories":["Developer"],"sub_categories":[],"readme":"# Hutch\niOS client for SourceHut.\n\n[![builds.sr.ht status](https://builds.sr.ht/~ccleberg/Hutch.svg)](https://builds.sr.ht/~ccleberg/Hutch?)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=zerolabsco_hutch\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=zerolabsco_hutch)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=zerolabsco_hutch\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=zerolabsco_hutch)\n\n## Overview\n\nHutch 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.\n\nThe app currently includes:\n\n- Home dashboard with assigned tickets, recent builds, and projects\n- Repository browsing for Git and Mercurial repositories\n- Repository details including README, references, commits, diffs, files, artifacts, and settings\n- Tracker and ticket browsing, ticket detail views, and tracker creation\n- Build job browsing, build detail views, and build submission\n- Inbox and mailing list reading flows\n- Paste browsing, creation, and detail views\n- Profile and account settings, including SSH keys, PGP keys, and personal access token management\n- Deep links for repositories, tickets, and build jobs\n\nSome SourceHut services are still browser-only from within Hutch. Unsupported areas currently open in Safari instead of rendering in-app.\n\n## Requirements\n\n- Xcode with current iOS SDK support\n- iOS Simulator or physical iOS device\n- A SourceHut account\n- A SourceHut personal access token\n\n## Getting Started\n\n1. Clone the repository:\n\n   ```sh\n   git clone https://git.sr.ht/~ccleberg/Hutch\n   ```\n\n2. Open the project in Xcode.\n3. Build and run the app on a simulator or device.\n4. On first launch, create or paste a SourceHut personal access token.\n\nYou can create a token at:\n\n- `https://meta.sr.ht/oauth2/personal-token`\n\n## Using Hutch\n\nAfter signing in with a valid token, Hutch presents five primary areas:\n\n- `Home`: dashboard for projects, assigned tickets, recent builds, and inbox access\n- `Repositories`: browse, search, create, and manage repositories\n- `Tickets`: browse trackers, create trackers, and view ticket details\n- `Builds`: inspect build jobs and submit new builds\n- `More`: lists, pastes, settings, and external links for unsupported services\n\nAuthentication notes:\n\n- Hutch validates the token against `meta.sr.ht` before saving it\n- The token is stored in the iOS keychain\n- `Reset App Data` removes saved token data, caches, cookies, and local web data from the device\n\n## Development\n\nThe project is an Xcode app with tests under `HutchTests`.\n\nTypical workflow:\n\n1. Open the workspace or project in Xcode.\n2. Select the Hutch app scheme.\n3. Build the app.\n4. Run the test plan in `Hutch/HutchTests.xctestplan`.\n\n## Contributing\n\nContributions are welcome. Keep changes scoped, include tests when behavior changes, and open a pull request with a clear summary of the user-facing impact.\n\n## Security\n\nIf you discover a security issue, see [SECURITY.md](SECURITY.md).\n\n## License\n\nThis project is licensed under the GPL 3.0 or later. See [LICENSE](LICENSE).\n\n## Contact\n\nQuestions or feedback: hello@cleberg.net\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerolabsco%2Fhutch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerolabsco%2Fhutch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerolabsco%2Fhutch/lists"}