Use a deployment button to deploy templates from GitHub repository

This article describes how to use the Deploy to Azure button to deploy ARM JSON templates from a GitHub repository. You can add the button directly to the file in your GitHub repository. Or, you can add the button to a web page that references the repository. This method doesn't support Bicep files.

The deployment scope is determined by the template schema. For more information, see:

Use common image

To add the button to your web page or repository, use the following image:

![Deploy to Azure](
<img src=""/>

The image appears as:

Deploy to Azure button

Create URL for deploying template

To create the URL for your template, start with the raw URL to the template in your repo. To see the raw URL, select Raw.

select Raw

The format of the URL is:

Then, convert the URL to a URL-encoded value. You can use an online encoder or run a command. The following PowerShell example shows how to URL encode a value.

$url = ""

The example URL has the following value when URL encoded.

Each link starts with the same base URL:

Add your URL-encoded template link to the end of the base URL.

You have your full URL for the link.


To deploy a template or reference a linked template that is stored in a private GitHub repo, see a custom solution documented in a MVP blog. You can set up an Azure function as a proxy to construct the URL needed to access a template file in a private GitHub repo.

If you're using Git with Azure Repos instead of a GitHub repo, you can still use the Deploy to Azure button. Make sure your repo is public. Use the Items operation to get the template. Your request should be in the following format:{organization-name}/{project-name}/_apis/git/repositories/{repository-name}/items?scopePath={url-encoded-path}&api-version=6.0

Encode this request URL.

Create Deploy to Azure button

Finally, put the link and image together.

To add the button with Markdown in the file in your GitHub repository or a web page, use:

[![Deploy to Azure](](

For HTML, use:

<a href="" target="_blank">
  <img src=""/>

For Git with Azure repo, the button is in the format:

[![Deploy to Azure](](

Deploy the template

To test the full solution, select the following button:

Deploy to Azure

The portal displays a pane that allows you to easily provide parameter values. The parameters are pre-filled with the default values from the template. The camel-cased parameter name, storageAccountType, defined in the template is turned into a space-separated string when displayed on the portal.

Use portal to deploy

Next steps