File: Verify-Resource-Ref.ps1

package info (click to toggle)
golang-github-azure-azure-sdk-for-go 68.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 556,256 kB
  • sloc: javascript: 196; sh: 96; makefile: 7
file content (42 lines) | stat: -rw-r--r-- 1,326 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
. (Join-Path $PSScriptRoot common.ps1)
Install-Module -Name powershell-yaml -RequiredVersion 0.4.1 -Force -Scope CurrentUser
$ymlfiles = Get-ChildItem $RepoRoot -recurse | Where-Object {$_ -like '*.yml'}
$affectedRepos = [System.Collections.ArrayList]::new()

foreach ($file in $ymlfiles)
{
  Write-Host "Verifying '${file}'"
  $ymlContent = Get-Content $file.FullName -Raw
  $ymlObject = ConvertFrom-Yaml $ymlContent -Ordered

  if ($ymlObject.Contains("resources"))
  {
    if ($ymlObject["resources"]["repositories"])
    {
      $repositories = $ymlObject["resources"]["repositories"]
      foreach ($repo in $repositories)
      {
        $repoName = $repo["repository"]
        if (-not ($repo.Contains("ref")))
        {
          $errorMessage = "File: ${file}, Repository: ${repoName}."
          [void]$affectedRepos.Add($errorMessage)
        }
      }
    }
  }
}

if ($affectedRepos.Count -gt 0)
{
    Write-Output "Ref not found in the following Repository Resources."
    foreach ($errorMessage in $affectedRepos)
    {
        Write-Output "`t$errorMessage"
    }
    Write-Output "Please ensure you add a Ref: when using repository resources"
    Write-Output "More Info at https://aka.ms/azsdk/engsys/tools-versioning"
    exit 1
}

Write-Output "All repository resources in yaml files reference a valid tag"