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

supabase / supabase-flutter / 32018494325
89%

Build:
DEFAULT BRANCH: main
Ran 17 Aug 2026 10:07AM UTC
Jobs 9
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

17 Aug 2026 10:05AM UTC coverage: 88.253% (+0.01%) from 88.239%
32018494325

push

github

web-flow
refactor(auth)!: return a Uri from OAuthResponse.url instead of a String (#1729)

## What kind of change does this PR introduce?

Breaking change, refactor. Closes SDK-1496.

> [!NOTE]
> This was originally stacked on #1728. That has landed, so this branch
is
> rebased directly onto `main` and stands on its own.

## What is the current behavior?

#1722 changed `getSSOSignInUrl` to return a `Future<Uri>`, which left
the two
sibling URL getters disagreeing with it:

| Method | Returns |
| --- | --- |
| `AuthClient.getSSOSignInUrl` | `Future<Uri>` |
| `AuthClient.getOAuthSignInUrl` | `Future<OAuthResponse>` with `String
url` |
| `AuthClient.getLinkIdentityUrl` | `Future<OAuthResponse>` with `String
url` |

Shipping v3 that way means three URL-returning auth methods with two
different
types for the same concept, and callers still writing `Uri.parse` for
two of
them.

## What is the new behavior?

`OAuthResponse.url` is a `Uri`. Both getters share that type, so this
covers
them in one change and makes all three consistent.

Two internal tidy-ups fall out of it:

- `_getUrlForProvider` returns the `Uri` it builds rather than a whole
`OAuthResponse`. `getLinkIdentityUrl` only ever wanted the URL to send a
request to, and the response type belongs at the public boundary, so it
is now
  constructed there by both public methods.
- `supabase_flutter`'s `_launchAuthUrl` takes a `Uri` and drops its
internal
  `Uri.parse`. It hands the value straight to `launchUrl`.

## The wire format is unchanged

This is the part worth scrutinising, since the URL is built by string
interpolation and is now parsed before it leaves the client.

The query is still built with `Uri(queryParameters: ...)` exactly as
before, and
`Uri.parse` round-trips the result byte for byte. Verified against the
shapes
this code actually produces:

```
SAME  ...?provider=google&redirect_to=https%3A%2F%2Fsupabase.com
SAME  ...?provider=github&scopes=repo&redirect_to=redirectToURL
SAME  ...?provider=c... (continued)

1 of 1 new or added line in 1 file covered. (100.0%)

71 existing lines in 2 files now uncovered.

5732 of 6495 relevant lines covered (88.25%)

4.11 hits per line

Coverage Regressions

Lines Coverage ∆ File
70
82.89
0.0% packages/supabase_auth/lib/src/auth_client.dart
1
91.67
0.0% packages/supabase_auth/lib/src/types/auth_response.dart
Jobs
ID Job ID Ran Files Coverage
9 supabase_flutter - 32018494325.9 17 Aug 2026 10:07AM UTC 10
81.87
GitHub Action Run
9 supabase - 31805117378.9 14 Aug 2026 01:37PM UTC 13
87.19
GitHub Action Run
4 yet_another_json_isolate - 31785069647.4 14 Aug 2026 08:44AM UTC 1
94.44
GitHub Action Run
5 storage_client - 31804163356.5 14 Aug 2026 01:23PM UTC 13
85.03
GitHub Action Run
9 supabase_auth - 32009240063.9 17 Aug 2026 08:16AM UTC 27
89.72
GitHub Action Run
9 realtime_client - 31804163356.9 14 Aug 2026 01:24PM UTC 11
90.51
GitHub Action Run
6 functions_client - 31804163356.6 14 Aug 2026 01:21PM UTC 3
97.75
GitHub Action Run
4 supabase_common - 31804163356.4 14 Aug 2026 01:21PM UTC 16
99.48
GitHub Action Run
8 postgrest - 31804163356.8 14 Aug 2026 01:23PM UTC 10
85.46
GitHub Action Run
Source Files on build 32018494325
  • Tree
  • List 104
  • Changed 26
  • Source Changed 26
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32018494325
  • c8a66f10 on github
  • Prev Build on main (#32016936960)
  • Next Build on main (#32018797734)
  • Delete
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