Files
Cloud-20Engineering/Powershell/Lists/Snyk/SnykOverview.ps1
Jurjen Ladenius bc24e238d6 New Snyk overview
2023-09-01 15:11:49 +02:00

59 lines
2.1 KiB
PowerShell

$access_token = Get-AzKeyVaultSecret -VaultName "consoleapp" -Name "SnykKey" -AsPlainText
$head = @{ Authorization ="$access_token" }
$version = "2023-08-29%7Ebeta"
$ofs = ', '
[string] $date = Get-Date -Format "yyyy-MM-dd HHmm"
$fileName = ".\$date snyk projects.csv"
class SnykOverview {
[string] $OrganisationId = ""
[string] $OrganisationName = ""
[string] $GroupId = ""
[string] $OrganisationSlug = ""
[string] $ProjectId = ""
[string] $ProjectRepo = ""
[string] $ProjectName = ""
[string] $ProjectType = ""
[string] $ProjectCreateDate = ""
[string] $ProjectTargetFile = ""
[string] $ProjectTargetRunTime = ""
}
[SnykOverview[]]$Result = @()
$organisationUrl = "https://api.snyk.io/rest/orgs?version=$version"
$organisationResponse = Invoke-RestMethod -Uri $organisationUrl -Method GET -Headers $head
foreach ($organisation in $organisationResponse.data)
{
$organisationId = $organisation.id
$projectUrl = "https://api.snyk.io/rest/orgs/$organisationId/projects?version=$version&limit=100"
$projectResponse = Invoke-RestMethod -Uri $projectUrl -Method GET -Headers $head
foreach ($project in $projectResponse.data)
{
$projectName = $project.attributes.name
[SnykOverview] $SnykOverview = [SnykOverview]::new()
$SnykOverview.OrganisationId = $organisationId
$SnykOverview.OrganisationName = $organisation.attributes.name
$SnykOverview.GroupId = $organisation.attributes.group_id
$SnykOverview.OrganisationSlug = $organisation.attributes.slug
$SnykOverview.ProjectId = $project.id
$SnykOverview.ProjectRepo = $projectName.Split(":")[0]
$SnykOverview.ProjectName = $projectName.Split(":")[1]
$SnykOverview.ProjectType = $project.attributes.type
$SnykOverview.ProjectCreateDate = $project.attributes.created
$SnykOverview.ProjectTargetFile = $project.attributes.target_file
$SnykOverview.ProjectTargetRunTime = $project.attributes.target_runtime
$Result += $SnykOverview
}
}
$Result | Export-Csv -Path $fileName -NoTypeInformation -Force
$Result | Format-Table