formats/GitHubRateLimitResource.Format.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
    <ViewDefinitions>
        <View>
            <Name>GitHubRateLimitResource</Name>
            <ViewSelectedBy>
                <TypeName>GitHubRateLimitResource</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>Name</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Limit</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Used</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Remaining</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>ResetsAt</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>ResetsIn</Label>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Limit</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Used</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Remaining</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>ResetsAt</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                    if ($null -eq $_.ResetsIn) {
                                    return
                                    }

                                    if ($_.ResetsIn -lt 0) {
                                    $text = 'Expired'
                                    } else {
                                    $text = $_.ResetsIn.ToString('hh\:mm\:ss')
                                    }

                                    if ($Host.UI.SupportsVirtualTerminal -and
                                    ($env:GITHUB_ACTIONS -ne 'true')) {
                                    if ($_.Name -in @('source_import',
                                    'dependency_snapshots', 'code_scanning_autofix', 'search',
                                    'dependency_sbom', 'code_search')) {
                                    $maxValue = [TimeSpan]::FromMinutes(1)
                                    } else {
                                    $maxValue = [TimeSpan]::FromHours(1)
                                    }

                                    $ratio = [Math]::Min(($_.ResetsIn / $maxValue), 1)
                                    [GitHubFormatter]::FormatColorByRatio($ratio, $text)
                                    } else {
                                    $text
                                    }
                                </ScriptBlock>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
    </ViewDefinitions>
</Configuration>