Skip to main content
Azure Container Apps is a serverless container platform built on Kubernetes. It handles scaling, networking, and TLS certificates automatically, letting you focus on configuring MergeWatch rather than managing infrastructure.

Overview

This guide walks you through deploying the MergeWatch container to Azure Container Apps, connecting it to Azure Database for PostgreSQL - Flexible Server, and configuring the GitHub App webhook.

Prerequisites

1

Install the Azure CLI

2

Create a resource group

3

Gather your GitHub App credentials

4

Choose an LLM provider

Set LLM_PROVIDER to your preferred provider. For Azure OpenAI, you can use managed identity authentication via LiteLLM — no static API keys required.

Deploy to Azure Container Apps

1

Create a Container Apps environment

2

Create the Container App

Setting --min-replicas 0 allows the app to scale to zero when no webhooks are being processed. Azure Container Apps scales up automatically when a request arrives.
3

Use secrets for sensitive values (recommended)

4

Note the FQDN

After creation, retrieve the app URL:

Set up Postgres

MergeWatch requires PostgreSQL to store installation and review data. Azure Database for PostgreSQL - Flexible Server is the recommended option.
1

Create a Flexible Server instance

2

Create the database

3

Allow access from Container Apps

The 0.0.0.0 rule allows connections from Azure services. For tighter security, use VNet integration between Container Apps and the Flexible Server.
4

Update the DATABASE_URL

Update your Container App with the Flexible Server connection string:

Managed identity for Azure OpenAI

If you use Azure OpenAI as your LLM provider via LiteLLM, you can authenticate with a managed identity instead of static API keys.
1

Enable managed identity

2

Grant the identity access to Azure OpenAI

3

Configure LiteLLM environment variables

Configure the webhook URL

Set the webhook URL on your GitHub App to the Container App FQDN followed by /webhook:
Azure Container Apps provides TLS automatically on the default FQDN. Do not use http:// — GitHub requires HTTPS for webhook delivery.

Next steps

Configure review behavior

Tune sensitivity, ignored paths, and review focus areas.

Environment variables

Full list of supported environment variables.

Troubleshooting

Common issues and how to fix them.

Upgrading

How to update MergeWatch to the latest version.