Skip to content

Commit 5dcb812

Browse files
authored
Add Additional UseSentry extensions for Easy Azure Function setup (#3971)
* Add overload for azure function setup * Update CHANGELOG.md * Update verify files * Update CHANGELOG.md
1 parent c6a5d4a commit 5dcb812

File tree

4 files changed

+34
-1
lines changed

4 files changed

+34
-1
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## Unreleased
4+
5+
### Fixes
6+
- Add Azure Function UseSentry overloads for easier wire ups ([#3971](https://github.com/getsentry/sentry-dotnet/pull/3971))
7+
38
## 5.1.1
49

510
### Fixes

src/Sentry.Azure.Functions.Worker/SentryFunctionsWorkerApplicationBuilderExtensions.cs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,42 @@ public static IFunctionsWorkerApplicationBuilder UseSentry(this IFunctionsWorker
2626
public static IFunctionsWorkerApplicationBuilder UseSentry(this IFunctionsWorkerApplicationBuilder builder, HostBuilderContext context, string dsn)
2727
=> builder.UseSentry(context, o => o.Dsn = dsn);
2828

29+
/// <summary>
30+
/// Uses Sentry integration.
31+
/// </summary>
32+
public static IFunctionsWorkerApplicationBuilder UseSentry(
33+
this IFunctionsWorkerApplicationBuilder builder,
34+
Action<SentryAzureFunctionsOptions>? optionsConfiguration)
35+
{
36+
if (builder is IHostApplicationBuilder appBuilder)
37+
{
38+
return builder.UseSentry(appBuilder.Configuration, optionsConfiguration);
39+
}
40+
throw new InvalidOperationException("Builder is not of type " + typeof(IHostApplicationBuilder));
41+
}
42+
2943
/// <summary>
3044
/// Uses Sentry integration.
3145
/// </summary>
3246
public static IFunctionsWorkerApplicationBuilder UseSentry(
3347
this IFunctionsWorkerApplicationBuilder builder,
3448
HostBuilderContext context,
3549
Action<SentryAzureFunctionsOptions>? optionsConfiguration)
50+
=> builder.UseSentry(context.Configuration, optionsConfiguration);
51+
52+
53+
/// <summary>
54+
/// Uses Sentry integration.
55+
/// </summary>
56+
public static IFunctionsWorkerApplicationBuilder UseSentry(
57+
this IFunctionsWorkerApplicationBuilder builder,
58+
IConfiguration configuration,
59+
Action<SentryAzureFunctionsOptions>? optionsConfiguration)
3660
{
3761
builder.UseMiddleware<SentryFunctionsWorkerMiddleware>();
3862

3963
var services = builder.Services;
40-
var section = context.Configuration.GetSection("Sentry");
64+
var section = configuration.GetSection("Sentry");
4165
#if NET8_0_OR_GREATER
4266
services.AddSingleton<IConfigureOptions<SentryAzureFunctionsOptions>>(_ =>
4367
new SentryAzureFunctionsOptionsSetup(section)

test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.DotNet8_0.verified.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
public static class SentryFunctionsWorkerApplicationBuilderExtensions
88
{
99
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context) { }
10+
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, System.Action<Sentry.Azure.Functions.Worker.SentryAzureFunctionsOptions>? optionsConfiguration) { }
11+
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration, System.Action<Sentry.Azure.Functions.Worker.SentryAzureFunctionsOptions>? optionsConfiguration) { }
1012
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, System.Action<Sentry.Azure.Functions.Worker.SentryAzureFunctionsOptions>? optionsConfiguration) { }
1113
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, string dsn) { }
1214
}

test/Sentry.Azure.Functions.Worker.Tests/ApiApprovalTests.Run.Net4_8.verified.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
public static class SentryFunctionsWorkerApplicationBuilderExtensions
88
{
99
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context) { }
10+
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, System.Action<Sentry.Azure.Functions.Worker.SentryAzureFunctionsOptions>? optionsConfiguration) { }
11+
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration, System.Action<Sentry.Azure.Functions.Worker.SentryAzureFunctionsOptions>? optionsConfiguration) { }
1012
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, System.Action<Sentry.Azure.Functions.Worker.SentryAzureFunctionsOptions>? optionsConfiguration) { }
1113
public static Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder UseSentry(this Microsoft.Azure.Functions.Worker.IFunctionsWorkerApplicationBuilder builder, Microsoft.Extensions.Hosting.HostBuilderContext context, string dsn) { }
1214
}

0 commit comments

Comments
 (0)