src/users.psm1
$CreateUserQuery = Get-Content -Raw "$PSScriptRoot/queries/CreateUser.graphql" function New-SourcegraphUser { <# .SYNOPSIS Creates a new user account .DESCRIPTION Creates a new user account .PARAMETER Username The username for the new user .PARAMETER Email The email address of the new user .PARAMETER Endpoint The endpoint URL of the Sourcegraph instance (default https://sourcegraph.com) .PARAMETER Token The authentication token (if needed). Go to the settings page on Sourcegraph to generate one. #> [CmdletBinding(SupportsShouldProcess)] param( [ValidateNotNullOrEmpty()] [Parameter(Mandatory)] [string] $Username, [ValidateNotNullOrEmpty()] [Parameter(Mandatory)] [string] $Email, [Uri] $Endpoint = 'https://sourcegraph.com', [SecureString] $Token ) if ($PSCmdlet.ShouldProcess("Creating user $Username <$Email>", "Create user $Username <$Email>?", "Confirm")) { $data = Invoke-SourcegraphApiRequest -Query $CreateUserQuery -Variables @{username = $Username; email = $Email} -Endpoint $Endpoint -Token $Token $data.createUser } } Set-Alias New-SrcUser New-SourcegraphUser $UserFields = Get-Content -Raw "$PSScriptRoot/queries/UserFields.graphql" $UserQuery = (Get-Content -Raw "$PSScriptRoot/queries/User.graphql") + $UserFields $UsersQuery = (Get-Content -Raw "$PSScriptRoot/queries/Users.graphql") + $UserFields function Get-SourcegraphUser { <# .SYNOPSIS Get users on a Sourcegraph instance .PARAMETER Username Get only the user with the given username .PARAMETER Endpoint The endpoint URL of the Sourcegraph instance (default https://sourcegraph.com) .PARAMETER Token The authentication token (if needed). Go to the settings page on Sourcegraph to generate one. #> [CmdletBinding(SupportsPaging)] param( [Uri] $Endpoint = 'https://sourcegraph.com', [string] $Username, [string] $Query, [string] $Tag, [ValidateSet('TODAY', 'THIS_WEEK', 'THIS_MONTH', 'ALL_TIME')] [string] $ActivePeriod, [SecureString] $Token ) if ($Username) { $query = $UserQuery $variables = @{ username = $Username } (Invoke-SourcegraphApiRequest -Query $UserQuery -Variables $variables -Endpoint $Endpoint -Token $Token).user } else { $variables = @{ query = $Query; tag = $Tag; activePeriod = $ActivePeriod } if ($PSBoundParameters.ContainsKey('First')) { $variables['first'] = $PSCmdlet.PagingParameters.First } $data = Invoke-SourcegraphApiRequest -Query $UsersQuery -Variables $variables -Endpoint $Endpoint -Token $Token if ($PSCmdlet.PagingParameters.IncludeTotalCount) { $PSCmdlet.PagingParameters.NewTotalCount($data.users.totalCount, 1) } $data.users.nodes } } Set-Alias Get-SrcUser Get-SourcegraphUser |