utilities/pipelines/sharedScripts/teamLinter/Get-AvmGitHubTeamsData.ps1 (70 lines of code) (raw):

Function Get-AvmGitHubTeamsData { [CmdletBinding()] param ( [Parameter(Mandatory)] [ValidateSet('AllTeams', 'AllResource', 'AllPattern', 'AllBicep', 'AllBicepResource', 'BicepResourceOwners', 'BicepResourceContributors', 'AllBicepPattern', 'BicepPatternOwners', 'BicepPatternContributors', 'AllTerraform', 'AllTerraformResource', 'TerraformResourceOwners', 'TerraformResourceContributors', 'AllTerraformPattern', 'TerraformPatternOwners', 'TerraformPatternContributors' )] [string]$TeamFilter ) try { # use githubCLI to get all teams in Azure organization $rawGhTeams = gh api orgs/Azure/teams --paginate $formattedGhTeams = ConvertFrom-Json $rawGhTeams } catch { Write-Error "Error: $_" } # Convert JSON to PowerShell Object # Filter Teams for AVM $filterAvmGhTeams = $formattedGhTeams | Where-Object { $_.name -like '*avm-*' } # Filter Teams for AVM Resource Modules $filterAvmResGhTeams = $filterAvmGhTeams | Where-Object { $_.name -like '*res-*' } # Filter Teams for AVM Pattern Modules $filterAvmPtnGhTeams = $filterAvmGhTeams | Where-Object { $_.name -like '*ptn-*' } # Filter AVM Module Teams for Bicep $filterAvmBicepGhTeams = $filterAvmGhTeams | Where-Object { $_.name -like '*bicep' } # Filter AVM Module Teams for Bicep Resource Modules $filterAvmBicepResGhTeams = $filterAvmBicepGhTeams | Where-Object { $_.name -like '*res-*' } # Filter AVM Module Teams for Bicep Resource Modules Owners $filterAvmBicepResGhTeamsOwners = $filterAvmBicepResGhTeams | Where-Object { $_.name -like '*owners-*' } # Filter AVM Module Teams for Bicep Resource Modules Contributors $filterAvmBicepResGhTeamsContributors = $filterAvmBicepResGhTeams | Where-Object { $_.name -like '*contributors-*' } # Filter AVM Module Teams for Bicep Pattern Modules $filterAvmBicepPtnGhTeams = $filterAvmBicepGhTeams | Where-Object { $_.name -like '*ptn-*' } # Filter AVM Module Teams for Bicep Pattern Modules Owners $filterAvmBicepPtnGhTeamsOwners = $filterAvmBicepPtnGhTeams | Where-Object { $_.name -like '*owners-*' } # Filter AVM Module Teams for Bicep Pattern Modules Contributors $filterAvmBicepPtnGhTeamsContributors = $filterAvmBicepPtnGhTeams | Where-Object { $_.name -like '*contributors-*' } # Filter AVM Module Teams for Terraform $filterAvmTfGhTeams = $filterAvmGhTeams | Where-Object { $_.name -like '*tf' } # Filter AVM Module Teams for Terraform Resource Modules $filterAvmTfResGhTeams = $filterAvmTfGhTeams | Where-Object { $_.name -like '*res-*' } # Filter AVM Module Teams for Terraform Resource Modules Owners $filterAvmTfResGhTeamsOwners = $filterAvmTfResGhTeams | Where-Object { $_.name -like '*owners-*' } # Filter AVM Module Teams for Terraform Resource Modules Contributors $filterAvmTfResGhTeamsContributors = $filterAvmTfResGhTeams | Where-Object { $_.name -like '*contributors-*' } # Filter AVM Module Teams for Terraform Pattern Modules $filterAvmTfPtnGhTeams = $filterAvmTfGhTeams | Where-Object { $_.name -like '*ptn-*' } # Filter AVM Module Teams for Terraform Pattern Modules Owners $filterAvmTfPtnGhTeamsOwners = $filterAvmTfPtnGhTeams | Where-Object { $_.name -like '*owners-*' } # Filter AVM Module Teams for Terraform Pattern Modules Contributors $filterAvmTfPtnGhTeamsContributors = $filterAvmTfPtnGhTeams | Where-Object { $_.name -like '*contributors-*' } switch ($TeamFilter) { 'AllTeams' { return $filterAvmGhTeams } 'AllResource' { return $filterAvmResGhTeams } 'AllPattern' { return $filterAvmPtnGhTeams } 'AllBicep' { return $filterAvmBicepGhTeams } 'BicepResourceOwners' { return $filterAvmBicepResGhTeamsOwners } 'BicepResourceContributors' { return $filterAvmBicepResGhTeamsContributors } 'AllBicepResource' { return $filterAvmBicepResGhTeams } 'AllBicepPattern' { return $filterAvmBicepPtnGhTeams } 'BicepPatternOwners' { return $filterAvmBicepPtnGhTeamsOwners } 'BicepPatternContributors' { return $filterAvmBicepPtnGhTeamsContributors } 'AllTerraform' { return $filterAvmTfGhTeams } 'AllTerraformResource' { return $filterAvmTfResGhTeams } 'TerraformResourceOwners' { return $filterAvmTfResGhTeamsOwners } 'TerraformResourceContributors' { return $filterAvmTfResGhTeamsContributors } 'AllTerraformPattern' { return $filterAvmTfPtnGhTeams } 'TerraformPatternOwners' { return $filterAvmTfPtnGhTeamsOwners } 'TerraformPatternContributors' { return $filterAvmTfPtnGhTeamsContributors } } }