Azure Pipelines Self-Service Actions
Port can trigger Azure pipelines using incoming webhooks triggers.
The steps shown in the image above are as follows:
-
An action is invoked in Port;
-
Port signs the action payload using SHA-1 with the
clientSecret
value and puts it in theX-Port-Signature
request header.infoVerifying the webhook request using the request headers provides the following benefits:
- Ensures that the request payload has not been tampered with
- Ensures that the sender of the message is Port
- Ensures that the received message is not a replay of an older message
-
Port publishes an invoked
WEBHOOK
via aPOST
request tohttps://dev.azure.com/{org_name}/_apis/public/distributedtask/webhooks/{webhook_name}?api-version=6.0-preview
An example flow would be:
- A developer asks to run an Azure pipeline;
- Port sends a
POST
request with the action payload to the Azure webhookURL
; - The Azure webhook receives the new action request;
- The Azure webhook triggers the pipeline;
Define Incoming Webhook in Azureโ
To define an incoming webhook in Azure, follow the steps below:
- Create a Service connection of type Incoming WebHook;
- Put your Port
clientSecret
value in the Secret key field; - Put the header
X-Port-Signature
in theHeaders
field; - Enter the service connection name in the
Service connection name
field; - Add the service connection resources in the Azure pipeline yaml:
The complete documentation showing how to configure Azure incoming webhooks can be found here.
resources:
webhooks:
- webhook: { webhookName }
connection: { Service connection name }
Define Azure pipeline actions in Portโ
To define the Azure pipelines invocation method in Port, follow the steps below:
- Go to the blueprint you want to configure an action on;
- Add the a new action as described in the actions page;
- In the
invocationMethod
key, add the following information:
{
...
"userInputs": {
...
},
"invocationMethod": {
"type": "AZURE-DEVOPS",
"org": "<AZURE-DEVOPS-ORG>",
"webhook": "<AZURE-DEVOPS-WEBHOOK-NAME>"
},
"trigger": "CREATE"
...
}
<AZURE-DEVOPS-ORG>
- your Azure DevOps organization name, can be found in your Azure DevOps URL:https://dev.azure.com/{AZURE-DEVOPS-ORG}
;<AZURE-DEVOPS-WEBHOOK-NAME>
- the name you gave to the webhook resource in the Azure yaml pipeline file.
Examplesโ
Refer to the deployment example page for practical self-service actions using Azure pipelines.