# Configure Azure DevOps Webhooks

## Configure Webhooks

Azure DevOps allows webhooks to be configured on the Azure DevOps project level.

## Applying Webhooks

From your Azure DevOps project page, click **Project settings**, then select **Service hooks** from the sidebar.  We're actually going to create three webhooks here via the same method:

* Code pushed
* Pull request created
* Pull request updated

From here, click the green "+" button to create a webhook. This will open up an overlay. From here, click **Web Hooks** from the sidebar, then click **Next**.

<figure><img src="https://1629876294-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXCHVzWTQRp0LHSiL1fMX%2Fuploads%2FCjYsBFQ9Azgm7yxNu2o3%2Fimage.png?alt=media&#x26;token=d1ae9202-098d-4de2-b6d2-08c7471a2dd4" alt=""><figcaption></figcaption></figure>

On this next page, pick the event to configure a webhook for. We'll be doing this for each of the events above. It's recommended that you choose **\[Any]** for all of the options as this ensures you don't have to re-configure these hooks every time you add a repository.

<figure><img src="https://1629876294-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXCHVzWTQRp0LHSiL1fMX%2Fuploads%2FhuwotsXBF9CwFOR4WFYp%2Fimage.png?alt=media&#x26;token=8002028a-e7c9-46c1-89bc-ab5355669d98" alt=""><figcaption></figcaption></figure>

On this next page, we'll put the webhook endpoint to configure. This will be the same for all webhooks. Ensure the hostname or IP address given can be used to access the proxy server:

<figure><img src="https://1629876294-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXCHVzWTQRp0LHSiL1fMX%2Fuploads%2F4PGpbtjxegoriWiHGYcW%2Fimage.png?alt=media&#x26;token=6dad4ef0-d499-4c90-a940-f8b4bb155f40" alt=""><figcaption></figcaption></figure>

You can use the **Test** button to test that this webhook endpoint can be reached. When finished, click **Finish**.

Complete these steps for all necessary webhooks.

### Webhook Security

This step is optional, but recommended. If you'd like added security for outgoing webhooks, you can specify a **Basic authentication username** and a **Basic authentication password** when entering the webhook URL.

* You will need the same webhook secret for all of your organizations/repositories if you add one.
* The `username` and `password` must match the `PROVIDER_WEBHOOK_SECRET` field when you configured the proxy.
