Async GitHub API client

C#
using System.Net.Http.Json;
using System.Text.Json.Serialization;

public sealed record Repo(
    string Name,
    [property: JsonPropertyName("html_url")] string HtmlUrl);

public static class GitHubClient
{
    private static readonly HttpClient Http = new()
    {
        BaseAddress = new Uri("https://api.github.com/"),
        Timeout = TimeSpan.FromSeconds(10)
    };

    public static async Task<IReadOnlyList<Repo>> GetReposAsync(
        string user, CancellationToken ct = default)
    {
        using var request = new HttpRequestMessage(
            HttpMethod.Get, $"users/{Uri.EscapeDataString(user)}/repos?per_page=100");
        request.Headers.UserAgent.ParseAdd("bits-example");

        using var response = await Http.SendAsync(request, ct);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadFromJsonAsync<List<Repo>>(ct) ?? [];
    }
}