Skip to content

Fix issue with randomly failing tests to due parallel execution#872

Merged
christianhelle merged 6 commits into
mainfrom
fix-failing-tests
Jan 15, 2026
Merged

Fix issue with randomly failing tests to due parallel execution#872
christianhelle merged 6 commits into
mainfrom
fix-failing-tests

Conversation

@christianhelle

@christianhelle christianhelle commented Jan 15, 2026

Copy link
Copy Markdown
Owner
  • Use assembly location as temp folder
  • Add Refit.HttpClientFactory package reference to test project
  • chore(deps): update TUnit dependency to v1.11.28
  • Add conditional test cases for SwaggerPetstore IObservableResponse
  • Use assembly location as base for temporary directories in WriteRefitterSettingsFile tests.
  • Skip clean up if build fails

Summary by CodeRabbit

  • Tests
    • Updated testing framework dependencies to the latest stable version.
    • Enhanced test coverage for generated code scenarios.
    • Improved test infrastructure for better build and path handling.
    • Added package dependency validation to generated code tests.

✏️ Tip: You can customize this high-level summary in your review settings.

Copilot AI review requested due to automatic review settings January 15, 2026 13:52
@coderabbitai

coderabbitai Bot commented Jan 15, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

These changes update test infrastructure by bumping the TUnit testing framework to version 1.11.28, refactoring the build helper's working path generation to use assembly location, expanding test parameters for non-debug builds, and adding Refit.HttpClientFactory as a package dependency to the embedded project template.

Changes

Cohort / File(s) Summary
TUnit Framework Upgrade
src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj, src/Refitter.Tests/Refitter.Tests.csproj
Both test project files updated from TUnit 1.9.2 to 1.11.28
Build Path Generation
src/Refitter.Tests/Build/BuildHelper.cs
Replaced in-process path generation with assembly location-based folder derivation; adds working directory cleanup logic with exception swallowing
Embedded Project Template
src/Refitter.Tests/Build/ProjectFileContents.cs
Added Refit.HttpClientFactory 8.0.0 PackageReference to Net80App embedded project file template
Test Parameterization
src/Refitter.Tests/SwaggerPetstoreTests.cs
Added conditional test case arguments (SwaggerPetstoreYamlV3, SwaggerPetstoreJsonV2, SwaggerPetstoreYamlV2) for non-DEBUG builds to two test methods
Test Setup & Assertions
src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
Updated temporary directory path derivation to use assembly location; enhanced test assertion to deserialize and verify ContractsOutputFolder value

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

dependencies, testing

Poem

🐰 A testing tale so fine and bright,
TUnit bumped to heights of might!
Paths now found where code resides,
Tests expanded far and wide—
Build and verify, our tests unite!

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main objective of the PR, which is to fix randomly failing tests caused by parallel execution issues.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sonarqubecloud

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses random test failures caused by parallel test execution by changing temporary directory locations and adding missing dependencies. The key improvement is using the assembly location as the base for temporary directories instead of the system temp folder, which helps avoid conflicts between parallel test runs.

Changes:

  • Modified temporary directory creation to use assembly location instead of system temp path in BuildHelper and one WriteRefitterSettingsFile test
  • Added Refit.HttpClientFactory package reference to test project files to support generated code compilation
  • Updated TUnit test framework from v1.9.2 to v1.11.28
  • Added conditional compilation to limit SwaggerPetstore IObservableResponse test cases to Release builds only
  • Implemented cleanup skip when builds fail to preserve artifacts for debugging

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/Refitter.Tests/WriteRefitterSettingsFileTests.cs Updated one test to use assembly location for temp directory; removed trailing whitespace
src/Refitter.Tests/SwaggerPetstoreTests.cs Added conditional compilation directives to run additional test cases only in Release mode
src/Refitter.Tests/Refitter.Tests.csproj Updated TUnit dependency from v1.9.2 to v1.11.28
src/Refitter.Tests/Build/ProjectFileContents.cs Added Refit.HttpClientFactory package reference to test project template
src/Refitter.Tests/Build/BuildHelper.cs Changed temp directory to use assembly location; added cleanup that only runs on successful builds
src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj Updated TUnit dependency from v1.9.2 to v1.11.28

Comment on lines +116 to +117
var folder = Path.GetDirectoryName(GetType().Assembly.Location) ?? Path.GetTempPath();
var tempDir = Path.Combine(folder, Guid.NewGuid().ToString());

Copilot AI Jan 15, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only one test method in this file has been updated to use the assembly location pattern, but there are five other test methods (starting at lines 160, 199, 241, 288, and 337) that still use Path.GetTempPath() directly. For consistency and to fully address parallel execution issues, all tests that create temporary directories in this file should use the same pattern: Path.GetDirectoryName(GetType().Assembly.Location) ?? Path.GetTempPath().

Copilot uses AI. Check for mistakes.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/Refitter.Tests/Build/ProjectFileContents.cs`:
- Line 12: Update the embedded project template in ProjectFileContents (the
string containing the PackageReference) so the Refit.HttpClientFactory
PackageReference line uses Version="9.0.2" instead of "8.0.0"; locate the
PackageReference entry for "Refit.HttpClientFactory" in the ProjectFileContents
constant and change the Version attribute to 9.0.2 to match the rest of the test
projects.
🧹 Nitpick comments (1)
src/Refitter.Tests/Build/BuildHelper.cs (1)

46-53: Cleanup behavior is correct but consider logging cleanup failures.

The cleanup logic correctly:

  1. Only runs on successful builds (after the exception throw on failure)
  2. Swallows exceptions to prevent test failures due to cleanup issues

This aligns with the PR objective to "skip cleanup if build fails" for easier debugging. However, silently swallowing cleanup errors could hide issues in CI environments where disk space accumulates.

💡 Optional: Add trace logging for cleanup failures
         try
         {
             Directory.Delete(path, true);
         }
         catch
         {
-            // Ignore cleanup errors
+            // Ignore cleanup errors - log for diagnostics if needed
+            // System.Diagnostics.Trace.WriteLine($"Failed to cleanup test directory: {path}");
         }
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ba0e5ad and ea1ee5a.

📒 Files selected for processing (6)
  • src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
  • src/Refitter.Tests/Build/BuildHelper.cs
  • src/Refitter.Tests/Build/ProjectFileContents.cs
  • src/Refitter.Tests/Refitter.Tests.csproj
  • src/Refitter.Tests/SwaggerPetstoreTests.cs
  • src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
🧰 Additional context used
📓 Path-based instructions (1)
**/*.cs

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

**/*.cs: Always run dotnet format src/Refitter.sln before committing or CI (.github/workflows/build.yml) will fail
Follow existing C# coding conventions defined in .editorconfig
Use PascalCase for public members in C# code
Use camelCase for parameters and local variables in C# code
Include XML documentation for public APIs in C# code
Use meaningful variable and method names in C# code
Keep methods focused with single responsibility in C# code
Code must be properly formatted according to .editorconfig rules for CI to pass

Files:

  • src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
  • src/Refitter.Tests/Build/BuildHelper.cs
  • src/Refitter.Tests/SwaggerPetstoreTests.cs
  • src/Refitter.Tests/Build/ProjectFileContents.cs
🧠 Learnings (10)
📓 Common learnings
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to src/Refitter.Core/**/*.cs : For Core library changes: Run full test suite and verify generated code builds successfully
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to src/Refitter/**/*.cs : For CLI changes: Test with a real OpenAPI specification to ensure generation works correctly
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to src/Refitter.Tests/Examples/**/*.cs : New CLI options must add unit tests in `src/Refitter.Tests/Examples/` following the established pattern
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to **/*.Tests.cs : All new code must include unit tests following the pattern used in `Refitter.Tests.Examples` namespace
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: When making framework-specific changes, always test both .NET 8.0 and .NET 9.0 targets
📚 Learning: 2026-01-13T07:38:42.714Z
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to src/Refitter.Core/**/*.cs : For Core library changes: Run full test suite and verify generated code builds successfully

Applied to files:

  • src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
  • src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
  • src/Refitter.Tests/Build/BuildHelper.cs
  • src/Refitter.Tests/SwaggerPetstoreTests.cs
  • src/Refitter.Tests/Refitter.Tests.csproj
  • src/Refitter.Tests/Build/ProjectFileContents.cs
📚 Learning: 2026-01-13T07:38:42.714Z
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to src/Refitter/**/*.cs : For CLI changes: Test with a real OpenAPI specification to ensure generation works correctly

Applied to files:

  • src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
  • src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
  • src/Refitter.Tests/Build/BuildHelper.cs
  • src/Refitter.Tests/SwaggerPetstoreTests.cs
  • src/Refitter.Tests/Refitter.Tests.csproj
  • src/Refitter.Tests/Build/ProjectFileContents.cs
📚 Learning: 2026-01-13T07:38:42.714Z
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to src/Refitter.Tests/Examples/**/*.cs : New CLI options must add unit tests in `src/Refitter.Tests/Examples/` following the established pattern

Applied to files:

  • src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
  • src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
  • src/Refitter.Tests/Build/BuildHelper.cs
  • src/Refitter.Tests/SwaggerPetstoreTests.cs
  • src/Refitter.Tests/Refitter.Tests.csproj
  • src/Refitter.Tests/Build/ProjectFileContents.cs
📚 Learning: 2026-01-13T07:38:42.714Z
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to **/*.Tests.cs : All new code must include unit tests following the pattern used in `Refitter.Tests.Examples` namespace

Applied to files:

  • src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
  • src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
  • src/Refitter.Tests/SwaggerPetstoreTests.cs
  • src/Refitter.Tests/Refitter.Tests.csproj
  • src/Refitter.Tests/Build/ProjectFileContents.cs
📚 Learning: 2026-01-13T07:38:42.714Z
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to src/Refitter.Core/Settings/RefitGeneratorSettings.cs : New CLI options must add corresponding property to `src/Refitter.Core/Settings/RefitGeneratorSettings.cs`

Applied to files:

  • src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
  • src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
  • src/Refitter.Tests/Build/ProjectFileContents.cs
📚 Learning: 2026-01-13T07:38:42.714Z
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to src/Refitter.Core/**/*Generator.cs : New CLI options must implement logic in `src/Refitter.Core/RefitInterfaceGenerator.cs` or related generator classes

Applied to files:

  • src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
📚 Learning: 2026-01-13T07:38:42.714Z
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Applies to src/Refitter/GenerateCommand.cs : New CLI options must update the `CreateRefitGeneratorSettings()` method in `src/Refitter/GenerateCommand.cs` to map the setting

Applied to files:

  • src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
  • src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
📚 Learning: 2026-01-13T07:38:42.714Z
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: Always verify that generated Refit interfaces compile and work correctly after changes

Applied to files:

  • src/Refitter.Tests/SwaggerPetstoreTests.cs
📚 Learning: 2026-01-13T07:38:42.714Z
Learnt from: CR
Repo: christianhelle/refitter PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-13T07:38:42.714Z
Learning: When making framework-specific changes, always test both .NET 8.0 and .NET 9.0 targets

Applied to files:

  • src/Refitter.Tests/Build/ProjectFileContents.cs
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: CodeQL analysis (csharp)
  • GitHub Check: Agent
  • GitHub Check: Analyze (csharp)
  • GitHub Check: 👌 Verify build
  • GitHub Check: 👌 Verify build
  • GitHub Check: 👌 Verify build
🔇 Additional comments (6)
src/Refitter.Tests/Refitter.Tests.csproj (1)

26-26: LGTM!

The TUnit version update to 1.11.28 is consistent with the corresponding change in Refitter.SourceGenerator.Tests.csproj. This ensures uniform test framework behavior across all test projects.

src/Refitter.Tests/Build/BuildHelper.cs (1)

10-12: Good fix for parallel execution isolation.

Using the assembly location as the base directory with a unique GUID ensures each parallel test run gets its own isolated working directory. The fallback to Path.GetTempPath() handles edge cases where the assembly location might be unavailable.

src/Refitter.Tests/SwaggerPetstoreTests.cs (1)

587-591: LGTM!

The conditional test parameterization for Can_Build_Generated_Code_With_IObservableResponse follows the established pattern used by other build tests in this file (e.g., Can_Build_Generated_Code, Can_Build_Generated_Code_With_IApiResponse). This reduces test execution time during local DEBUG builds while maintaining full coverage in CI/Release builds.

src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj (1)

17-17: TUnit version bump to 1.11.28 is consistent and current.

The update is synchronized across both Refitter.SourceGenerator.Tests.csproj and Refitter.Tests.csproj at the latest available version.

src/Refitter.Tests/WriteRefitterSettingsFileTests.cs (2)

116-117: LGTM! Appropriate fix for parallel test execution.

Using the assembly location as the base for the temp directory makes sense here since this is the only test that calls Directory.SetCurrentDirectory(). This isolates the working directory from other parallel test runs and aligns with the approach mentioned in the PR summary for BuildHelper.cs.


272-275: LGTM! Stronger assertion improves test reliability.

Deserializing and checking the actual property value is more robust than string containment checks. This verifies the serialization/deserialization round-trip works correctly for ContractsOutputFolder.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include=""Refit.HttpClientFactory"" Version=""8.0.0"" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find all Refit.HttpClientFactory references with version info
rg "Refit\.HttpClientFactory.*Version" --type=xml -B2 -A2

Repository: christianhelle/refitter

Length of output: 49


🏁 Script executed:

#!/bin/bash
# Broader search for all Refit.HttpClientFactory references
rg "Refit\.HttpClientFactory" -A1 -B1

# Also check the specific files mentioned
echo "=== ProjectFileContents.cs ==="
cat -n src/Refitter.Tests/Build/ProjectFileContents.cs

echo "=== Refitter.SourceGenerator.Tests.csproj ==="
rg "Refit\.HttpClientFactory" src/Refitter.SourceGenerator.Tests.csproj -A1 -B1

Repository: christianhelle/refitter

Length of output: 6271


🏁 Script executed:

#!/bin/bash
# Check the pattern of package versions in ProjectFileContents.cs to see if they're intentionally pinned to net8.0
echo "=== All packages in embedded project (net8.0) ==="
cat -n src/Refitter.Tests/Build/ProjectFileContents.cs | grep -A 30 "Net80App"

# Check if there are comments explaining version choice
echo "=== Check for version-related comments in file ==="
rg -i "version|8\.0\.|9\.0\." src/Refitter.Tests/Build/ProjectFileContents.cs -B2 -A2

# Verify Refit.HttpClientFactory compatibility - check if 9.0.2 supports net8.0
echo "=== Check git history for this change ==="
git log --oneline -n 20 -- src/Refitter.Tests/Build/ProjectFileContents.cs

Repository: christianhelle/refitter

Length of output: 3717


Update Refit.HttpClientFactory to version 9.0.2 for consistency.

Adding Refit.HttpClientFactory to the embedded project template is good for verifying generated code compiles. However, version 8.0.0 creates an inconsistency: all test projects and examples (MinimalApi, MSBuild, MauiExample, MultipleFiles, ConsoleApp, and SourceGenerator.Tests) use version 9.0.2. The embedded template should match to ensure generated code is tested against the same version used across the test suite. Change to Version="9.0.2".

🤖 Prompt for AI Agents
In `@src/Refitter.Tests/Build/ProjectFileContents.cs` at line 12, Update the
embedded project template in ProjectFileContents (the string containing the
PackageReference) so the Refit.HttpClientFactory PackageReference line uses
Version="9.0.2" instead of "8.0.0"; locate the PackageReference entry for
"Refit.HttpClientFactory" in the ProjectFileContents constant and change the
Version attribute to 9.0.2 to match the rest of the test projects.

@codecov

codecov Bot commented Jan 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 51.92%. Comparing base (1275ff9) to head (ea1ee5a).
⚠️ Report is 14 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #872       +/-   ##
===========================================
- Coverage   92.76%   51.92%   -40.85%     
===========================================
  Files          23       23               
  Lines        1950     1610      -340     
===========================================
- Hits         1809      836      -973     
- Misses         48      755      +707     
+ Partials       93       19       -74     
Flag Coverage Δ
unittests 51.92% <ø> (-40.85%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@christianhelle
christianhelle merged commit a8479be into main Jan 15, 2026
16 of 17 checks passed
@christianhelle
christianhelle deleted the fix-failing-tests branch January 15, 2026 14:05
@coderabbitai coderabbitai Bot mentioned this pull request Jan 26, 2026
hwinther pushed a commit to hwinther/test that referenced this pull request May 6, 2026
Updated [refitter](https://github.com/christianhelle/refitter) from
1.7.1 to 2.0.0.

<details>
<summary>Release notes</summary>

_Sourced from [refitter's
releases](https://github.com/christianhelle/refitter/releases)._

## 2.0.0

## What's Changed

* Fix numeric format with pattern quirk - infer type from format for all
numeric types by @​Copilot in
christianhelle/refitter#869
* Read group documentation from document tags. by @​DJ4ddi in
christianhelle/refitter#887
* Fix null reference and XML escaping in XmlDocumentationGenerator by
@​Copilot in christianhelle/refitter#890
* Fix build workflow: add dotnet restore before dotnet msbuild in
Prepare step by @​Copilot in
christianhelle/refitter#892
christianhelle/refitter#895
* Fix MSBuild workflow by @​christianhelle in
christianhelle/refitter#898
* Add support for generating a single client from multiple OpenAPI
specifications by @​Copilot in
christianhelle/refitter#904
* Migrate from Microsoft.OpenApi.Readers 1.x to Microsoft.OpenApi 3.x by
@​vgmello in christianhelle/refitter#907
* Improve Smoke Tests execution time by @​christianhelle in
christianhelle/refitter#915
* Fix #​580: Nullable strings marked correctly by @​christianhelle in
christianhelle/refitter#921
* Fix #​672: MultipleInterfaces ByTag method naming scoped per-interface
by @​christianhelle in
christianhelle/refitter#922
* Fix #​635: Refactor source generator to use context.AddSource() by
@​christianhelle in christianhelle/refitter#923
* Add custom format mappings configuration by @​christianhelle in
christianhelle/refitter#927
* Fix multipart form-data parameter extraction by @​christianhelle in
christianhelle/refitter#928
christianhelle/refitter#911
christianhelle/refitter#902
* Fix smoke tests: --interface-only variant missing using directive for
contract types by @​Copilot in
christianhelle/refitter#933
* Fix SonarCloud Code Quality Issues by @​Copilot in
christianhelle/refitter#932
* Add debug logging for source generator when searching for .refitter
files by @​codymullins in
christianhelle/refitter#743
* Fix: Base type not generated for types using oneOf with discriminator
by @​Copilot in christianhelle/refitter#906
* Add option for Method Level Authorization header attribute by
@​Roflincopter in christianhelle/refitter#897
* Fix PR #​897 review feedback and add comprehensive bearer auth tests
by @​christianhelle in
christianhelle/refitter#936
* Fix numeric suffix added to interface method names in ByTag mode by
@​Copilot in christianhelle/refitter#914
* Improve OpenAPI parse + codegen throughput by removing avoidable
allocations and repeated regex work by @​Copilot in
christianhelle/refitter#937
* Move [JsonConverter] from enum properties to enum types by
@​christianhelle in christianhelle/refitter#938
* Fix broken CLI tool help text by @​christianhelle in
christianhelle/refitter#940
* Improve code coverage to >90% by @​christianhelle in
christianhelle/refitter#941
* Microsoft.OpenApi v3.4 by @​christianhelle in
christianhelle/refitter#945
* Add Unicode support for XML doc comment generation by @​christianhelle
in christianhelle/refitter#948
* Add PropertyNamingPolicy support for JSON property naming by
@​christianhelle in christianhelle/refitter#969
christianhelle/refitter#966
* Fix recursive schema stack overflows by @​christianhelle in
christianhelle/refitter#971
* Made Header Parameters for Security Schemes safe to use as C# variable
name by @​smoerijf in
christianhelle/refitter#977
* Enhance schema alias handling and property name generation by
@​christianhelle in christianhelle/refitter#996
* Verify alias handling and sanitize PascalCase properties by
@​christianhelle in christianhelle/refitter#997
* Harden .refitter settings deserialization and output path handling by
@​christianhelle in christianhelle/refitter#1000
* Special-case the default .refitter filename before deriving
OutputFilename by @​coderabbitai[bot] in
christianhelle/refitter#1002
* [v2.0 audit] Fix pre-release regressions from #​1057 by
@​christianhelle in christianhelle/refitter#1064
* Resolve high-severity audit findings from #​1057 by @​christianhelle
in christianhelle/refitter#1067
* [v2.0 audit] Close remaining verified #​1057 regressions by
@​christianhelle in christianhelle/refitter#1070
* Harden generation flows by @​christianhelle in
christianhelle/refitter#1071
* Breaking changes and Migration Guide for v2.0.0 by @​christianhelle in
christianhelle/refitter#1009
* Handle equivalent duplicate schemas in multi-spec merge by
@​christianhelle in christianhelle/refitter#1076
* Tighten warning handling across Refitter builds by @​christianhelle in
christianhelle/refitter#1079
* Fix default solution path and update .NET version in VS Code config by
@​christianhelle in christianhelle/refitter#1082
* Fix docker smoke tests by @​christianhelle in
christianhelle/refitter#1081
* Sanitize malformed schema type names without renaming clean schemas by
@​christianhelle in christianhelle/refitter#1085

 ... (truncated)

## 1.7.3

## What's Changed
* Add support for systems running only .NET 10.0 (without .NET 8.0 or
9.0) in Refitter.MSBuild by @​christianhelle in
christianhelle/refitter#882
* Update to return HttpResponseMessage for file downloads by @​frogcrush
in christianhelle/refitter#877

## New Contributors
* @​frogcrush made their first contribution in
christianhelle/refitter#877

**Full Changelog**:
christianhelle/refitter@1.7.2...1.7.3

## 1.7.2

**Implemented enhancements:**

- Improve Immutable Records ergonomics
[\#​844](christianhelle/refitter#844)
- Omit certain operation headers and include all others
[\#​840](christianhelle/refitter#840)
- Create .refitter settings file as part of output
[\#​859](christianhelle/refitter#859) by
@[christianhelle
- Fix integerType enum deserialization issue
[\#​855](christianhelle/refitter#855)
([christianhelle](https://github.com/christianhelle))
- support custom nswag template directory \#​844
[\#​854](christianhelle/refitter#854) by
@​kmc059000
- Fix missing method parameter XML code-documentation
[\#​850](christianhelle/refitter#850)
([christianhelle](https://github.com/christianhelle))

**Fixed bugs:**

- integerType parsing in settings file fails
[\#​851](christianhelle/refitter#851)
- CS1573 : Method parameter has no matching XML comment
[\#​846](christianhelle/refitter#846)

**Merged pull requests:**

- docs: add frogcrush as a contributor for code
[\#​878](christianhelle/refitter#878)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- Migrate solution files from .sln to .slnx format
[\#​876](christianhelle/refitter#876)
([Copilot](https://github.com/apps/copilot-swe-agent))
- Fix issue with randomly failing tests to due parallel execution
[\#​872](christianhelle/refitter#872)
([christianhelle](https://github.com/christianhelle))
- chore\(deps\): update dependency tunit to 1.9.2
[\#​863](christianhelle/refitter#863)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency tunit to 1.7.7
[\#​862](christianhelle/refitter#862)
([renovate[bot]](https://github.com/apps/renovate))
- Add unit tests for WriteRefitterSettingsFile functionality
[\#​860](christianhelle/refitter#860)
([Copilot](https://github.com/apps/copilot-swe-agent))
- chore\(deps\): update dependency ruby to v4
[\#​858](christianhelle/refitter#858)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency tunit to 1.6.28
[\#​857](christianhelle/refitter#857)
([renovate[bot]](https://github.com/apps/renovate))
- docs: add 0x2badc0de as a contributor for bug
[\#​856](christianhelle/refitter#856)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- chore\(deps\): update dependency swashbuckle.aspnetcore to 10.1.0
[\#​853](christianhelle/refitter#853)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency tunit to 1.6.0
[\#​852](christianhelle/refitter#852)
([renovate[bot]](https://github.com/apps/renovate))
- docs: add lilinus as a contributor for code
[\#​849](christianhelle/refitter#849)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- chore\(deps\): update dependency ruby to v3.4.8
[\#​845](christianhelle/refitter#845)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency tunit to 1.5.70
[\#​837](christianhelle/refitter#837)
([renovate[bot]](https://github.com/apps/renovate))


**Full Changelog**:
christianhelle/refitter@1.7.1...1.7.2

Commits viewable in [compare
view](christianhelle/refitter@1.7.1...2.0.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=refitter&package-manager=nuget&previous-version=1.7.1&new-version=2.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants