GitHub webhook events definitions for .NET
$ dotnet add package Octokit.WebhooksLibraries to handle GitHub Webhooks in .NET applications.
dotnet add package Octokit.Webhooks.AspNetCore
Create a class that derives from WebhookEventProcessor and override any of the virtual methods to handle webhooks from GitHub. For example, to handle Pull Request webhooks:
public sealed class MyWebhookEventProcessor : WebhookEventProcessor
{
protected override ValueTask ProcessPullRequestWebhookAsync(
WebhookHeaders headers,
PullRequestEvent pullRequestEvent,
PullRequestAction action,
CancellationToken cancellationToken = default)
{
...
}
}
Register your implementation of WebhookEventProcessor:
builder.Services.AddSingleton<WebhookEventProcessor, MyWebhookEventProcessor>();
Map the webhook endpoint:
app.UseEndpoints(endpoints =>
{
...
endpoints.MapGitHubWebhooks();
...
});
MapGitHubWebhooks() takes two optional parameters:
path. Defaults to /api/github/webhooks, the URL of the endpoint to use for GitHub.secret. The secret you have configured in GitHub, if you have set this up.NOTE: Support is only provided for isolated process Azure Functions.
dotnet add package Octokit.Webhooks.AzureFunctions
Create a class that derives from WebhookEventProcessor and override any of the virtual methods to handle webhooks from GitHub. For example, to handle Pull Request webhooks:
public sealed class MyWebhookEventProcessor : WebhookEventProcessor
{
protected override ValueTask ProcessPullRequestWebhookAsync(
WebhookHeaders headers,
PullRequestEvent pullRequestEvent,
PullRequestAction action,
CancellationToken cancellationToken = default)
{
...
}
}
Register your implementation of WebhookEventProcessor:
.ConfigureServices(collection =>
{
...
collection.AddSingleton<WebhookEventProcessor, MyWebhookEventProcessor>();
...
})
Configure the webhook function:
new HostBuilder()
...
.ConfigureGitHubWebhooks()
...
.Build();
ConfigureGitHubWebhooks() either takes an optional parameter:
secret. The secret you have configured in GitHub, if you have set this up.or:
configure. A function that takes an IConfiguration instance and expects the secret you have configured in GitHub in return.The function is available on the /api/github/webhooks endpoint.
All packages in this repository are licensed under the MIT license.