Create a change request from Azure DevOps via changecontrol api
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-25-2024 01:48 PM
Hello
I keep getting bad request when trying to send in a change request. Is my fields wrong? I am new to this.
trigger: none
pool:
name: 'DevOps-Test'
steps:
- task: PowerShell@2
displayName: 'Create Change Control Request in ServiceNow'
inputs:
targetType: 'inline'
script: |
$serviceNowInstance = "<Service Now Instance>"
$apiEndpointChangeRequest = "/api/sn_devops/devops/orchestration/changeControl"
$url = "$serviceNowInstance$apiEndpointChangeRequest"
# Define the headers for the HTTP request
$headers = @{
"Content-Type" = "application/json"
"Accept" = "application/json"
"Authorization" = "sn_devops.DevOpsToken xxx:xxx"
}
# Define orchestration task details
$orchestrationTaskDetails = @{
message = "Pipeline execution started successfully"
triggerType = "user"
}
# Define the orchestrationTaskURL
$orchestrationTaskURL = "https://dev.azure.com/<organization name>/$(System.TeamProject)/_build/results?buildId=$(Build.BuildId)"
# Build the change request payload
$changeRequestDetails =@{
attributes = @{
requested_by = @{
name = "<username>"
}
start_date = "2024-10-16 11:00:00"
end_date = "2024-10-20 11:00:00"
comments = "Creating a new change request via API"
category = "DevOps"
priority = "1"
callback_url = "https://dev.azure.com/<organization name>/<project name>/_apis/build/builds/$(Build.BuildId)?api-version=6.0"
orchestrationTaskDetails = $orchestrationTaskDetails
orchestrationTaskURL = $orchestrationTaskURL
}
} | ConvertTo-Json -Depth 10 -Compress
Write-Host "Change Request Payload: $changeRequestDetails"
try {
$response = Invoke-RestMethod -Uri $url -Method Post -Headers $headers -Body $changeRequestDetails
Write-Host "Change Request Created Successfully!"
Write-Host "Response from ServiceNow: $($response | ConvertTo-Json -Depth 10)"
} catch {
Write-Error "Failed to create Change Request. Status Code: $($_.Exception.Response.StatusCode)"
Write-Error "Error Details: $($_.Exception.Message)"
}