Create a function triggered by a GitHub webhook
Learn how to create a function that is triggered by an HTTP webhook request with a GitHub-specific payload.
- A GitHub account with at least one project.
- An Azure subscription. If you don't have one, create a free account before you begin.
Favorite Functions in the portal
If you haven't already done so, add Function Apps to your favorites in the Azure portal. This makes it easier to find your function apps. If you have already done this, skip to the next section.
Log in to the Azure portal.
Click the arrow at the bottom left to expand all services, type
Functionsin the Filter field, and then click the star next to Function Apps.
This adds the Functions icon to the menu on the left of the portal.
Close the menu, then scroll down to the bottom to see the Functions icon. Click this icon to see a list of all your function apps. Click your function app to work with functions in this app.
Create an Azure Function app
Click the New button found on the upper left-hand corner of the Azure portal, then select Compute > Function App.
Use the function app settings as specified in the table below the image.
Setting Suggested value Description App name Globally unique name Name that identifies your new function app. Valid characters are
Subscription Your subscription The subscription under which this new function app will be created. Resource Group myResourceGroup Name for the new resource group in which to create your function app. OS Windows Serverless hosting is currently only available when running on Windows. For Linux hosting, see Create your first function running on Linux using the Azure CLI. Hosting plan Consumption plan Hosting plan that defines how resources are allocated to your function app. In the default Consumption Plan, resources are added dynamically as required by your functions. In this serverless hosting, you only pay for the time your functions run. Location West Europe Choose a location near you or near other services your functions will access. Storage account Globally unique name Name of the new storage account used by your function app. Storage account names must be between 3 and 24 characters in length and may contain numbers and lowercase letters only. You can also use an existing account.
Click Create to provision and deploy the new function app.
Next, you create a function in the new function app.
Create a GitHub webhook triggered function
Expand your function app and click the + button next to Functions. If this is the first function in your function app, select Custom function. This displays the complete set of function templates.
Select the GitHub WebHook template for your desired language. Name your function, then select Create.
In your new function, click </> Get function URL, then copy and save the values. Do the same thing for </> Get GitHub secret. You use these values to configure the webhook in GitHub.
Next, you create a webhook in your GitHub repository.
Configure the webhook
In GitHub, navigate to a repository that you own. You can also use any repository that you have forked. If you need to fork a repository, use https://github.com/Azure-Samples/functions-quickstart.
Click Settings, then click Webhooks, and Add webhook.
Use settings as specified in the table, then click Add webhook.
|Payload URL||Copied value||Use the value returned by </> Get function URL.|
|Secret||Copied value||Use the value returned by </> Get GitHub secret.|
|Content type||application/json||The function expects a JSON payload.|
|Event triggers||Let me select individual events||We only want to trigger on issue comment events.|
Now, the webhook is configured to trigger your function when a new issue comment is added.
Test the function
In your GitHub repository, open the Issues tab in a new browser window.
In the new window, click New Issue, type a title, and then click Submit new issue.
In the issue, type a comment and click Comment.
Go back to the portal and view the logs. You should see a trace entry with the new comment text.
Clean up resources
Other quick starts in this collection build upon this quick start. If you plan to continue on to work with subsequent quick starts or with the tutorials, do not clean up the resources created in this quick start.
If you do not plan to continue, click the Resource group for the function app in the portal, and then click Delete.
You have created a function that runs when a request is received from a GitHub webhook.
Learn how to create functions with other kinds of triggers or how to integrate functions with other Azure services.
- Create a function that runs on a schedule
- Create a function triggered by Storage queue messages
- Create a function triggered by a generic webhook
- Create a function triggered by a GitHub webhook
- Add messages to an Azure Storage queue using Functions
- Store unstructured data in Azure Cosmos DB using Functions
For more information about webhook triggers, see Azure Functions HTTP and webhook bindings.