...

Text file src/github.com/Azure/azure-sdk-for-go/eng/common/scripts/Invoke-DevOpsAPI.ps1

Documentation: github.com/Azure/azure-sdk-for-go/eng/common/scripts

     1. "${PSScriptRoot}\logging.ps1"
     2
     3$DevOpsAPIBaseURI = "https://dev.azure.com/{0}/{1}/_apis/{2}/{3}?{4}api-version=6.0"
     4
     5function Get-DevOpsApiHeaders ($Base64EncodedToken) {
     6  $headers = @{
     7    Authorization = "Basic $Base64EncodedToken"
     8  }
     9  return $headers
    10}
    11
    12function Start-DevOpsBuild {
    13  param (
    14    $Organization="azure-sdk",
    15    $Project="internal",
    16    $SourceBranch,
    17    [Parameter(Mandatory = $true)]
    18    $DefinitionId,
    19    [ValidateNotNullOrEmpty()]
    20    [Parameter(Mandatory = $true)]
    21    $Base64EncodedAuthToken,
    22    [Parameter(Mandatory = $false)]
    23    [string]$BuildParametersJson
    24  )
    25
    26  $uri = "$DevOpsAPIBaseURI" -F $Organization, $Project , "build" , "builds", ""
    27
    28  $parameters = @{
    29    sourceBranch = $SourceBranch
    30    definition = @{ id = $DefinitionId }
    31    parameters = $BuildParametersJson
    32  }
    33
    34  return Invoke-RestMethod `
    35          -Method POST `
    36          -Body ($parameters | ConvertTo-Json) `
    37          -Uri $uri `
    38          -Headers (Get-DevOpsApiHeaders -Base64EncodedToken $Base64EncodedAuthToken) `
    39          -MaximumRetryCount 3 `
    40          -ContentType "application/json"
    41}
    42
    43function Update-DevOpsBuild {
    44  param (
    45    $Organization="azure-sdk",
    46    $Project="internal",
    47    [ValidateNotNullOrEmpty()]
    48    [Parameter(Mandatory = $true)]
    49    $BuildId,
    50    $Status, # pass canceling to cancel build
    51    [ValidateNotNullOrEmpty()]
    52    [Parameter(Mandatory = $true)]
    53    $Base64EncodedAuthToken
    54  )
    55
    56  $uri = "$DevOpsAPIBaseURI" -F $Organization, $Project, "build", "builds/$BuildId", ""
    57  $parameters = @{}
    58
    59  if ($Status) { $parameters["status"] = $Status}
    60
    61  return Invoke-RestMethod `
    62          -Method PATCH `
    63          -Body ($parameters | ConvertTo-Json) `
    64          -Uri $uri `
    65          -Headers (Get-DevOpsApiHeaders -Base64EncodedToken $Base64EncodedAuthToken) `
    66          -MaximumRetryCount 3 `
    67          -ContentType "application/json"
    68}
    69
    70function Get-DevOpsBuilds {
    71  param (
    72    $Organization="azure-sdk",
    73    $Project="internal",
    74    $BranchName, #Should start with 'refs/heads/'
    75    $Definitions, # Comma seperated string of definition IDs
    76    $StatusFilter, # Comma seperated string 'cancelling, completed, inProgress, notStarted'
    77    [ValidateNotNullOrEmpty()]
    78    [Parameter(Mandatory = $true)]
    79    $Base64EncodedAuthToken
    80  )
    81
    82  $query = ""
    83
    84  if ($BranchName) { $query += "branchName=$BranchName&" }
    85  if ($Definitions) { $query += "definitions=$Definitions&" }
    86  if ($StatusFilter) { $query += "statusFilter=$StatusFilter&" }
    87  $uri = "$DevOpsAPIBaseURI" -F $Organization, $Project , "build" , "builds", $query
    88
    89  return Invoke-RestMethod `
    90          -Method GET `
    91          -Uri $uri `
    92          -Headers (Get-DevOpsApiHeaders -Base64EncodedToken $Base64EncodedAuthToken) `
    93          -MaximumRetryCount 3
    94}
    95
    96function Delete-RetentionLease {
    97  param (
    98    $Organization,
    99    $Project,
   100    $LeaseId,
   101    $Base64EncodedAuthToken
   102  )
   103
   104  $uri = "https://dev.azure.com/$Organization/$Project/_apis/build/retention/leases?ids=$LeaseId&api-version=6.0-preview.1"
   105
   106  return Invoke-RestMethod `
   107    -Method DELETE `
   108    -Uri $uri `
   109    -Headers (Get-DevOpsApiHeaders -Base64EncodedToken $Base64EncodedAuthToken) `
   110    -MaximumRetryCount 3
   111}
   112
   113function Get-RetentionLeases {
   114  param (
   115    $Organization,
   116    $Project,
   117    $DefinitionId,
   118    $RunId,
   119    $OwnerId,
   120    $Base64EncodedAuthToken
   121  )
   122
   123  $uri = "https://dev.azure.com/$Organization/$Project/_apis/build/retention/leases?ownerId=$OwnerId&definitionId=$DefinitionId&runId=$RunId&api-version=6.0-preview.1"
   124
   125  return Invoke-RestMethod `
   126    -Method GET `
   127    -Uri $uri `
   128    -Headers (Get-DevOpsApiHeaders -Base64EncodedToken $Base64EncodedAuthToken) `
   129    -MaximumRetryCount 3
   130}
   131
   132function Add-RetentionLease {
   133  param (
   134    $Organization,
   135    $Project,
   136    $DefinitionId,
   137    $RunId,
   138    $OwnerId,
   139    $DaysValid,
   140    $Base64EncodedAuthToken
   141  )
   142
   143  $parameter = @{}
   144  $parameter["definitionId"] = $DefinitionId
   145  $parameter["runId"] = $RunId
   146  $parameter["ownerId"] = $OwnerId
   147  $parameter["daysValid"] = $DaysValid
   148
   149
   150  $body = $parameter | ConvertTo-Json
   151
   152  $uri = "https://dev.azure.com/$Organization/$Project/_apis/build/retention/leases?api-version=6.0-preview.1"
   153
   154  return Invoke-RestMethod `
   155          -Method POST `
   156          -Body "[$body]" `
   157          -Uri $uri `
   158          -Headers (Get-DevOpsApiHeaders -Base64EncodedToken $Base64EncodedAuthToken) `
   159          -MaximumRetryCount 3 `
   160          -ContentType "application/json"
   161
   162}

View as plain text