Skip to content

Commit 82556a5

Browse files
committed
Merge branch 'release/0.110.0'
2 parents 467f64b + ad17f9a commit 82556a5

19 files changed

+724
-912
lines changed

.config/dotnet-tools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"isRoot": true,
44
"tools": {
55
"cake.tool": {
6-
"version": "4.0.0",
6+
"version": "5.0.0",
77
"commands": [
88
"dotnet-cake"
99
]

GitVersion.yml

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,7 @@
1-
mode: ContinuousDelivery
1+
workflow: GitFlow/v1 # https://github.com/GitTools/GitVersion/blob/main/docs/input/docs/reference/configuration.md#snippet-/docs/workflows/GitFlow/v1.yml
2+
23
branches:
3-
master:
4-
regex: (master|main)
5-
mode: ContinuousDelivery
6-
tag:
7-
increment: Patch
8-
prevent-increment-of-merged-branch-version: true
9-
track-merge-target: false
10-
feature:
11-
regex: feature(s)?[/-]
12-
mode: ContinuousDeployment
134
develop:
14-
regex: dev(elop)?(ment)?$
15-
mode: ContinuousDeployment
16-
tag: beta
17-
hotfix:
18-
regex: hotfix(es)?[/-]
19-
mode: ContinuousDeployment
20-
tag: hotfix
5+
label: beta # default is 'alpha' for the 'develop' branch. I prefer 'beta'.
216
release:
22-
regex: release(s)?[/-]
23-
mode: ContinuousDeployment
24-
tag: rc
25-
ignore:
26-
sha: []
7+
label: rc # default is 'beta' for the 'release' branch. I prefer 'RC'.

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ var attachments = new[]
8787
var messageId = await strongGridClient.Mail.SendToSingleRecipientAsync(to, from, subject, html, text, attachments: attachments).ConfigureAwait(false);
8888
```
8989

90-
You have access to numerous 'resources' (such as Contacts, Lists, Segments, Settings, SenderAuthentication, etc) off of the Client and each resource offers several methods to such as retrieve, create, update, delete, etc.
90+
You have access to numerous 'resources' (such as Contacts, Lists, Segments, Settings, SenderAuthentication, etc) off of the Client and each resource offers several methods such as retrieve, create, update, delete, etc.
9191

9292
Here are a few example:
9393
```csharp
@@ -120,7 +120,7 @@ var template = await strongGridClient.Templates.CreateAsync("My template");
120120
```
121121

122122
### Dynamic templates
123-
In August 2018, SendGrid released a new feature in their API that allows you to use the [Handlebars syntax](https://sendgrid.com/docs/User_Guide/Transactional_Templates/Using_handlebars.html) to specify merge fields in your content. Using this powerfull new feature in StrongGrid is very easy.
123+
In August 2018, SendGrid released a new feature in their API that allows you to use the [Handlebars syntax](https://sendgrid.com/docs/User_Guide/Transactional_Templates/Using_handlebars.html) to specify merge fields in your content. Using this powerful new feature in StrongGrid is very easy.
124124

125125
First, you must specify `TemplateType.Dynamic` when creating a new template like in this example:
126126

@@ -228,7 +228,7 @@ namespace WebApplication1.Controllers
228228

229229
### Parsing a signed webhook
230230

231-
SendGrid has a feature called `Signed Event Webhook Requests` which you can enable under `Settings > Mail Settings > Event Settings` when logged in your SendGrid account. When this feature is enabled, SendGrid includes additional information with each webhook that allow you to verify that this webhook indeed originated from SendGrid and therefore can be trusted. Specifically, the webhook will include a "signature" and a "timestamp" and you must use these two value along with a public key that SendGrid generated when you enabled the feature to validate the data being submited to you. Please note that SendGrid sometimes refers to this value as a "verification key". In case you are curious and want to know more about the inticacies of validating the data, I invite you to read SendGrid's [documentation on this topic](https://sendgrid.com/docs/for-developers/tracking-events/getting-started-event-webhook-security-features/).
231+
SendGrid has a feature called `Signed Event Webhook Requests` which you can enable under `Settings > Mail Settings > Event Settings` when logged in your SendGrid account. When this feature is enabled, SendGrid includes additional information with each webhook that allows you to verify that this webhook indeed originated from SendGrid and therefore can be trusted. Specifically, the webhook will include a "signature" and a "timestamp" and you must use these two values along with a public key that SendGrid generated when you enabled the feature to validate the data being submited to you. Please note that SendGrid sometimes refers to this value as a "verification key". In case you are curious and want to know more about the intricacies of validating the data, I invite you to read SendGrid's [documentation on this topic](https://sendgrid.com/docs/for-developers/tracking-events/getting-started-event-webhook-security-features/).
232232

233233
However, if you want to avoid learning how to perform the validation and you simply want this validation to be conveniently performed for you, StrongGrid can help! The `WebhookParser` class has a method called `ParseSignedEventsWebhookAsync`which will automatically validate the data and throw a security exception if validation fails. If the validation fails, you should consider the webhook data to be invalid. Here's how it works:
234234

@@ -318,9 +318,9 @@ var warmupSettings = WarmupSettings.FromSendGridRecomendedSettings(poolName, est
318318
```
319319

320320
**Progress repository:** By default StrongGrid's WarmupEngine will write progress information in a file on your computer's `temp` folder but you can override this settings.
321-
You can change the folder where this file is saved but you can also decide to use a completely different repository. Out of the box, StrongGrid provides `FileSystemWarmupProgressRepository` and `MemoryWarmupProgressRepository`.
321+
You can change the folder where this file is saved and you can also decide to use a completely different repository. Out of the box, StrongGrid provides `FileSystemWarmupProgressRepository` and `MemoryWarmupProgressRepository`.
322322
It also provides an interface called `IWarmupProgressRepository` which allows you to write your own implementation to save the progress data to a location more suitable to you such as a database, Azure, AWS, etc.
323-
Please note that `MemoryWarmupProgressRepository` in intended to be used for testing and we don't recommend using it in production. The main reason for this recommendation is that the data is stored in memory and it's lost when your computer is restarted.
323+
Please note that `MemoryWarmupProgressRepository` in intended to be used for testing and we don't recommend using it in production. The main reason for this recommendation is that the data is stored in memory and is lost when your computer is restarted.
324324
This means that your warmup process would start all over from day 1 each time you computer is rebooted.
325325

326326
```csharp

Source/StrongGrid.Benchmark/StrongGrid.Benchmark.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="BenchmarkDotNet" Version="0.13.12" />
9+
<PackageReference Include="BenchmarkDotNet" Version="0.14.0" />
1010
<PackageReference Include="RichardSzalay.MockHttp" Version="7.0.0" />
1111
</ItemGroup>
1212

Source/StrongGrid.IntegrationTests/StrongGrid.IntegrationTests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
<PackageReference Include="Logzio.DotNet.NLog" Version="1.2.0" />
1616
<PackageReference Include="Microsoft.ApplicationInsights.NLogTarget" Version="2.22.0" />
1717
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
18-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
19-
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
20-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
21-
<PackageReference Include="NLog.Extensions.Logging" Version="5.3.11" />
18+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
19+
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
20+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" />
21+
<PackageReference Include="NLog.Extensions.Logging" Version="5.3.14" />
2222
</ItemGroup>
2323

2424
<ItemGroup>

Source/StrongGrid.IntegrationTests/Tests/ApiKeys.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public async Task RunAsync(IBaseClient client, TextWriter log, CancellationToken
5151

5252
// GET THE CURRENT USER'S PERMISSIONS
5353
var permissions = await client.User.GetPermissionsAsync(null, cancellationToken).ConfigureAwait(false);
54+
Array.Sort(permissions); // Sort the permissions alphabetically for convenience
5455
await log.WriteLineAsync($"Current user has been granted {permissions.Length} permissions").ConfigureAwait(false);
5556

5657
// CREATE AND DELETE A BILLING API KEY (if authorized)

Source/StrongGrid.UnitTests/StrongGrid.UnitTests.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@
1111
<PrivateAssets>all</PrivateAssets>
1212
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1313
</PackageReference>
14-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
1515
<PackageReference Include="NSubstitute" Version="5.1.0" />
1616
<PackageReference Include="NSubstitute.Analyzers.CSharp" Version="1.0.17">
1717
<PrivateAssets>all</PrivateAssets>
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
</PackageReference>
2020
<PackageReference Include="RichardSzalay.MockHttp" Version="7.0.0" />
2121
<PackageReference Include="Shouldly" Version="4.2.1" />
22-
<PackageReference Include="xunit" Version="2.8.1" />
23-
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1">
22+
<PackageReference Include="xunit" Version="2.9.2" />
23+
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
2424
<PrivateAssets>all</PrivateAssets>
2525
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2626
</PackageReference>

0 commit comments

Comments
 (0)