Public/Test-PSGitLabObject.ps1
function Test-PSGitLabObject { [CmdletBinding()] param ( [Parameter(Mandatory)] $OrganizationName, [Parameter(Mandatory)] $PrivateToken, [Parameter(Mandatory, ParameterSetName = 'Project')] $ProjectFullPath, [Parameter(Mandatory, ParameterSetName = 'Group')] $GroupFullPath ) switch ($PSCmdlet.ParameterSetName) { 'Project' { $query = @{ query = @" query { project(fullPath: "$($ProjectFullPath)") { id name createdAt lastActivityAt } } "@ } | ConvertTo-Json $response = Invoke-RestMethod -Uri "https://$($OrganizationName)/api/graphql" -Headers @{Authorization = "Bearer $($PrivateToken)" } -Method Post -Body $query -ContentType 'application/json' if ($response.data.project) { return $true } else { return $false } } 'Group' { $query = @{ query = @" query { group(fullPath: "$($GroupFullPath)") { id name } } "@ } | ConvertTo-Json $response = Invoke-RestMethod -Uri "https://$($OrganizationName)/api/graphql" -Headers @{Authorization = "Bearer $($PrivateToken)" } -Method Post -Body $query -ContentType 'application/json' if ($response.data.group) { return $true } else { return $false } } } } |