formats/GitHubContext.Format.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
    <ViewDefinitions>
        <View>
            <Name>GitHubContextTableView</Name>
            <ViewSelectedBy>
                <TypeName>AppGitHubContext</TypeName>
                <TypeName>InstallationGitHubContext</TypeName>
                <TypeName>UserGitHubContext</TypeName>
                <TypeName>GitHubContext</TypeName>
            </ViewSelectedBy>
            <TableControl>
                <TableHeaders>
                    <TableColumnHeader>
                        <Label>*</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Name</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>AuthType</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>TokenType</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>TokenExpiresAt</Label>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>TokenExpiresIn</Label>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <ScriptBlock>
                                    if ($_.Name -eq (Get-GitHubConfig).DefaultContext) {
                                    ">"
                                    }
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>AuthType</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>TokenType</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>TokenExpiresAt</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                    if ($null -eq $_.TokenExpiresIn) {
                                    return
                                    }

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

                                    if ($Host.UI.SupportsVirtualTerminal -and
                                    ($env:GITHUB_ACTIONS -ne 'true')) {
                                    switch ($_.AuthType) {
                                    'UAT' {
                                    $maxValue = [TimeSpan]::FromHours(8)
                                    }
                                    'IAT' {
                                    $maxValue = [TimeSpan]::FromHours(1)
                                    }
                                    }
                                    $ratio = [Math]::Min(($_.TokenExpiresIn / $maxValue), 1)
                                    [GitHubFormatter]::FormatColorByRatio($ratio, $text)
                                    } else {
                                    $text
                                    }
                                </ScriptBlock>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>GitHubContextListView</Name>
            <ViewSelectedBy>
                <TypeName>GitHubContext</TypeName>
            </ViewSelectedBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <ListItems>
                            <ListItem>
                                <PropertyName>ID</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Name</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>DisplayName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Type</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>HostName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>ApiBaseUri</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>ApiVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>AuthType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>NodeID</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>DatabaseID</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>UserName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>TokenType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Enterprise</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Owner</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Repository</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>HttpVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>PerPage</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
        <View>
            <Name>AppGitHubContextListView</Name>
            <ViewSelectedBy>
                <TypeName>AppGitHubContext</TypeName>
            </ViewSelectedBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <ListItems>
                            <ListItem>
                                <PropertyName>Name</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Type</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>AuthType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>TokenType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>HostName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>UserName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>ClientID</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>OwnerName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>OwnerType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Permissions</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Events</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>ApiBaseUri</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Enterprise</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Owner</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Repository</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>HttpVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>PerPage</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
        <View>
            <Name>InstallationGitHubContextListView</Name>
            <ViewSelectedBy>
                <TypeName>InstallationGitHubContext</TypeName>
            </ViewSelectedBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <ListItems>
                            <ListItem>
                                <PropertyName>Name</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Type</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>AuthType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>TokenType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>HostName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>UserName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>ClientID</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>InstallationID</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>TokenExpiresAt</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>TokenExpiresIn</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>InstallationType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>InstallationName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Permissions</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Events</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>ApiBaseUri</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Enterprise</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Owner</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Repository</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>HttpVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>PerPage</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
        <View>
            <Name>UserGitHubContextListView</Name>
            <ViewSelectedBy>
                <TypeName>UserGitHubContext</TypeName>
            </ViewSelectedBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <ListItems>
                            <ListItem>
                                <PropertyName>Name</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Type</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>AuthType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>TokenType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>HostName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>UserName</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>AuthClientID</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>DeviceFlowType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Scope</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>TokenExpiresAt</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>TokenExpiresIn</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>RefreshTokenExpiresAt</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>RefreshTokenExpiresIn</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>ApiBaseUri</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Enterprise</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Owner</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Repository</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>HttpVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>PerPage</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
    </ViewDefinitions>
</Configuration>