• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-swift / 31826165516
87%

Build:
DEFAULT BRANCH: main
Ran 14 Aug 2026 05:58PM UTC
Jobs 1
Files 104
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Aug 2026 05:54PM UTC coverage: 85.091% (-1.2%) from 86.312%
31826165516

push

github

web-flow
fix(auth)!: fix macOS Keychain consent prompt and storage contract (#1208)

* fix(auth)!: return nil from Keychain reads when the item is absent

A missing item threw .itemNotFound instead of returning nil, contradicting
AuthLocalStorage's documented contract. Every fresh launch with no session
logged an error, and try? at the call sites collapsed genuine Keychain
failures into the same nil as 'no session'. Delete is now idempotent.

* feat(auth): add opt-in data-protection Keychain support

Adds a useDataProtectionKeychain flag threaded through every query, and
stops sending kSecAttrAccessible on macOS unless it is enabled — the
file-based Keychain ignores that attribute, so today it is inert.

* feat(auth): add Keychain location resolution helpers

* fix(auth)!: default Keychain service to the host app bundle identifier

Items were namespaced under a fixed 'supabase.gotrue.swift' service shared by
every app embedding the SDK. The service now defaults to the host app's bundle
identifier, matching KeychainAccess and SimpleKeychain. Existing sessions
migrate on first read.

* docs: add v3 migration entries for Keychain storage changes

* docs: narrow macOS consent-prompt claim to what TN3137 supports

Review found the Keychain migration entry overstated what the prior
research established: it asserted the file-based Keychain prompt still
displays the literal old "supabase.gotrue.swift" string, but the
service-name-drives-dialog-text claim was only ever community-sourced,
not Apple-documented (per the design doc's Non-goals section, which is
also why a kSecAttrLabel change was dropped from this work). Reword to
describe only the documented mechanism instead: the prompt is tied to
the app's designated requirement/ACL, governed by code-signing
identity rather than kSecAttrService, per Apple TN3137.

* fix(auth): make Keychain legacy cleanup and migration failure-safe

remove(key:) previously exited before running the legacy-cleanup loop
whenever the prima... (continued)

0 of 91 new or added lines in 2 files covered. (0.0%)

52 existing lines in 4 files now uncovered.

8812 of 10356 relevant lines covered (85.09%)

43.37 hits per line

Uncovered Changes

Lines Coverage ∆ File
54
0.0
-41.67% Sources/Auth/Storage/KeychainLocalStorage.swift
37
37.13
-25.65% Sources/Auth/Internal/Keychain.swift

Coverage Regressions

Lines Coverage ∆ File
27
17.95
-69.23% Sources/Helpers/AnyJSON/AnyJSON+Codable.swift
19
37.13
-25.65% Sources/Auth/Internal/Keychain.swift
4
89.89
-0.9% Sources/Auth/Types.swift
2
0.0
-41.67% Sources/Auth/Storage/KeychainLocalStorage.swift
Jobs
ID Job ID Ran Files Coverage
1 31826165516.1 14 Aug 2026 05:58PM UTC 104
85.09
GitHub Action Run
Source Files on build 31826165516
  • Tree
  • List 104
  • Changed 4
  • Source Changed 2
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31826165516
  • 528bd5fb on github
  • Prev Build on main (#31822794541)
  • Next Build on main (#32023273321)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc