Repository navigation
Combined Dependabot updates - NuGet packages and GitHub Actions - #24
Merged
Merged
Conversation
NuGet Package Updates: - FastEndpoints: 7.1.1 -> 7.2.0 - FastEndpoints.Swagger: 7.1.1 -> 7.2.0 - HotChocolate.AspNetCore: 15.1.11 -> 15.1.12 - HotChocolate.Data: 15.1.11 -> 15.1.12 - Microsoft.AspNetCore.OpenApi: 10.0.1 -> 10.0.2 - Microsoft.Data.SqlClient: 6.1.3 -> 6.1.4 - Microsoft.Data.Sqlite: 10.0.1 -> 10.0.2 - Microsoft.EntityFrameworkCore: 10.0.1 -> 10.0.2 - Microsoft.EntityFrameworkCore.InMemory: 10.0.1 -> 10.0.2 - Microsoft.EntityFrameworkCore.Relational: 10.0.1 -> 10.0.2 - Microsoft.EntityFrameworkCore.Tasks: 10.0.1 -> 10.0.2 - Microsoft.AspNetCore.Mvc.Testing: 10.0.0-rc.2.25502.107 -> 10.0.2 GitHub Actions Updates: - actions/checkout: v4.2.2 -> v6.0.1 - actions/setup-dotnet: v4.3.1 -> v5.1.0 - actions/upload-artifact: v4.6.2 -> v6.0.0 - codecov/codecov-action: af2ee03 -> 671740a - dawidd6/action-download-artifact: v7 -> v12 Closes #2, #3, #4, #5, #6, #8, #9, #10, #11, #12, #13, #14, #16, #17
This was referenced Jan 19, 2026
- actions/checkout@v6.0.1: 8e8c483db84b4bee98b60c0593521ed34d9990e8 - actions/upload-artifact@v6.0.0: b7c566a772e6b6bfb58ed0dc250532a479d7789f
- actions/setup-dotnet@v5.1.0: baa11fbfe1d6520db94683bd5c7a3818018e4309
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…waiter Root Cause: CountingPerspectiveReceptor used ConcurrentBag with Contains() + Add() pattern, which is NOT atomic. Under concurrent execution, multiple threads could pass the Contains() check before any Add() completes, resulting in duplicate counting or missed counts, causing tests to timeout or complete prematurely. Race Condition Example: 1. Thread A: !Contains(key) → true 2. Thread B: !Contains(key) → true (before A adds) 3. Thread A: Add(key), Increment(count) // count = 1 4. Thread B: Add(key), Increment(count) // count = 2 (DUPLICATE!) 5. Result: Same perspective counted twice OR waiter never reaches expected count Fix: - Replace ConcurrentBag<string> with ConcurrentDictionary<string, byte> - Replace Contains() + Add() with atomic TryAdd() - TryAdd() returns true only for first caller, preventing race Files Changed: - CountingPerspectiveReceptor.cs: Use ConcurrentDictionary + TryAdd() - PerspectiveCompletionWaiter.cs: Create ConcurrentDictionary instead of ConcurrentBag - ServiceBusIntegrationFixture.cs: Same fix for WaitForPerspectiveCompletionAsync This explains why RabbitMQ tests aren't flaky - they use PerspectiveCompletionWaiter from TestUtilities which now has the fix, while Service Bus tests had duplicate code. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ed-dependabot-updates
Missed updating InMemoryIntegrationFixture when fixing the race condition in CountingPerspectiveReceptor. Changed ConcurrentBag to ConcurrentDictionary to match the updated receptor signature. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Problem: ReportGenerator was trying to merge coverage reports that referenced source-generated files (.whizbang-generated/**/*.g.cs) before those files existed, causing 'File does not exist (any more)' errors. Root Cause: Coverage artifacts from test workflows reference source-generated files from their builds. When SonarCloud workflow tried to merge these coverage reports, the files were missing because the project hadn't been built yet in this workflow. Solution: Build project BEFORE merging coverage reports to ensure all source-generated files exist. Then build again inside SonarScanner block for code analysis. Workflow order (fixed): 1. Download coverage artifacts from all test workflows 2. Build project (generates all .whizbang-generated files) 3. Merge coverage with ReportGenerator (files now exist) 4. SonarScanner begin 5. Build again (SonarScanner analyzes code during build) 6. SonarScanner end (uploads analysis + merged coverage) This adds one extra build but eliminates the coverage merge failures. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…action SonarCloud flagged githubactions:S7637 - using tag instead of full commit SHA reduces supply chain security. Changed: nuget/login@v1 → NuGet/login@d22cc5f This ensures precise, verifiable dependency tracking and prevents accidental or malicious reference to unintended commits. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove `permissions: read-all` from security-scorecard.yml and use job-level least-privilege permissions instead. This resolves the SonarCloud vulnerability (githubactions:S8234) that was blocking the quality gate. The analysis job already had specific permissions defined, so the workflow-level read-all was both unnecessary and overly permissive. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
This PR combines 14 Dependabot PRs into a single update for easier review and merging.
NuGet Package Updates
FastEndpoints
HotChocolate
Microsoft Packages
GitHub Actions Updates
Files Changed
Directory.Packages.props(NuGet versions)Closes
Closes #2, #3, #4, #5, #6, #8, #9, #10, #11, #12, #13, #14, #16, #17
Test Plan
🤖 Generated with Claude Code
Additional Fixes
1. Race Condition in Azure Service Bus Integration Tests
Fixed a concurrency bug in
CountingPerspectiveReceptorwhereConcurrentBag.Contains() + Add()caused duplicate perspective counting under concurrent execution. Replaced withConcurrentDictionary.TryAdd()for atomic check-and-add.Files:
CountingPerspectiveReceptor.cs- UseConcurrentDictionary.TryAdd()for atomic operationsPerspectiveCompletionWaiter.cs- CreateConcurrentDictionaryinstead ofConcurrentBagServiceBusIntegrationFixture.cs- Azure Service Bus fixture updatedInMemoryIntegrationFixture.cs- InMemory fixture updated2. SonarCloud Coverage Merge Failure
Fixed "File does not exist (any more)" errors when SonarCloud tried to merge coverage reports that referenced source-generated files.
Root Cause: Coverage artifacts from test workflows reference source-generated files (
.whizbang-generated/**/*.g.cs) from their builds. When SonarCloud workflow merged these reports, the files were missing because the project hadn't been built yet.Solution: Build project BEFORE merging coverage reports to ensure all source-generated files exist.
File:
.github/workflows/quality.yml- Build before coverage merge