Skip to content

Fix PR #897 review feedback and add comprehensive bearer auth tests#936

Merged
christianhelle merged 1 commit into
mainfrom
fix/pr897-review-feedback
Mar 4, 2026
Merged

Fix PR #897 review feedback and add comprehensive bearer auth tests#936
christianhelle merged 1 commit into
mainfrom
fix/pr897-review-feedback

Conversation

@christianhelle

@christianhelle christianhelle commented Mar 4, 2026

Copy link
Copy Markdown
Owner

Summary

Addresses all review comments from PR #897 and adds comprehensive test coverage for the new authentication header features.

Code Fixes

Style & Conventions

  • Fix AuthenticationHeaderStyle enum to use Allman brace style, matching other enums in the codebase
  • Add [JsonConverter(typeof(JsonStringEnumConverter))] to AuthenticationHeaderStyle property in RefitGeneratorSettings for consistent serialization
  • Remove trailing whitespace in RefitInterfaceGenerator.cs

Documentation

  • Add XML documentation for SecurityScheme property in RefitGeneratorSettings.cs
  • Add XML docs for new CLI properties in Settings.cs
  • Fix grammatically unclear SecurityScheme description
  • Update docs/json-schema.json with authenticationHeaderStyle and securityScheme properties
  • Update README.md with new CLI options

Bug Fixes

  • Remove trailing space in ParameterExtractor.cs bearer header string
  • Make bearer scheme comparison case-insensitive (StringComparison.OrdinalIgnoreCase) in both ParameterExtractor.cs and RefitInterfaceGenerator.cs

New Tests

Added 16 new test methods covering the previously untested AuthenticationHeaderStyle.Method code path and SecurityScheme filter:

  • Method style generates [Headers("Authorization: Bearer")] attribute
  • Parameter style generates [Header("Authorization: Bearer")] string bearerToken
  • Build verification for both Method and Parameter styles
  • Method style does NOT add bearer parameter or ApiKey method headers
  • SecurityScheme filter correctly isolates bearer vs ApiKey schemes

New test resource files:

  • V3/SwaggerPetstoreWithBearerAuthenticationHeaders.json/yaml
  • V3/SwaggerPetstoreWithMixedAuthenticationHeaders.json

Verification

  • Build: dotnet build -c Release succeeded (0 errors)
  • Tests: 1258 passed, 0 failed
  • Format: dotnet format --verify-no-changes passed

Summary by CodeRabbit

  • New Features

    • Added --generate-authentication-header CLI option to control authentication code generation with None, Parameter, or Method styles.
    • Added --security-scheme CLI option to generate Authorization headers for specific security schemes.
    • Enhanced Bearer authentication header handling with support for multiple generation styles and case-insensitive scheme matching.
  • Documentation

    • Updated CLI help text with new authentication-related options.
    • Enhanced JSON schema with new configuration properties.
  • Tests

    • Added comprehensive test coverage for Bearer authentication header generation with different styles and security scheme filtering scenarios.

- Fix AuthenticationHeaderStyle enum to use Allman brace style
- Add [JsonConverter(typeof(JsonStringEnumConverter))] to AuthenticationHeaderStyle property
- Add XML documentation for SecurityScheme and CLI Settings properties
- Fix grammatically unclear SecurityScheme description
- Remove trailing space in ParameterExtractor bearer header string
- Make bearer scheme comparison case-insensitive in both ParameterExtractor and RefitInterfaceGenerator
- Remove trailing whitespace in RefitInterfaceGenerator
- Update docs/json-schema.json with authenticationHeaderStyle and securityScheme properties
- Update README.md with --generate-authentication-header and --security-scheme CLI options
- Add bearer auth test specs (V3 JSON/YAML) and mixed auth spec for filter tests
- Add tests for AuthenticationHeaderStyle.Method (bearer header generation and build verification)
- Add tests for AuthenticationHeaderStyle.Parameter with bearer auth
- Add tests for SecurityScheme filter in both Method and Parameter modes
- Add tests verifying Method style does not generate parameters or ApiKey headers

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 4, 2026 16:06
@coderabbitai

coderabbitai Bot commented Mar 4, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 30a163ec-53ec-4418-94b8-d5a5d34a885b

📥 Commits

Reviewing files that changed from the base of the PR and between 86eab90 and 14101a4.

📒 Files selected for processing (14)
  • README.md
  • docs/json-schema.json
  • src/Refitter.Core/ParameterExtractor.cs
  • src/Refitter.Core/RefitInterfaceGenerator.cs
  • src/Refitter.Core/Settings/AuthenticationHeaderStyle.cs
  • src/Refitter.Core/Settings/RefitGeneratorSettings.cs
  • src/Refitter.Tests/Resources/EmbeddedResources.cs
  • src/Refitter.Tests/Resources/SampleOpenSpecifications.cs
  • src/Refitter.Tests/Resources/V3/SwaggerPetstoreWithBearerAuthenticationHeaders.json
  • src/Refitter.Tests/Resources/V3/SwaggerPetstoreWithBearerAuthenticationHeaders.yaml
  • src/Refitter.Tests/Resources/V3/SwaggerPetstoreWithMixedAuthenticationHeaders.json
  • src/Refitter.Tests/SwaggerPetstoreApizrTests.cs
  • src/Refitter.Tests/SwaggerPetstoreTests.cs
  • src/Refitter/Settings.cs

📝 Walkthrough

Walkthrough

This PR adds support for generating HTTP authentication headers in multiple styles (Method, Parameter, None) and filtering by security scheme. Changes include new CLI options, configuration settings, bearer token detection improvements, three OpenAPI test specification files, and comprehensive test coverage for authentication header generation scenarios.

Changes

Cohort / File(s) Summary
Documentation & Schema
README.md, docs/json-schema.json, src/Refitter/Settings.cs
Added new CLI options for authentication header generation style and security scheme filtering, along with corresponding JSON schema properties and XML documentation.
Core Authentication Logic
src/Refitter.Core/ParameterExtractor.cs, src/Refitter.Core/RefitInterfaceGenerator.cs
Refined bearer token detection with null-safe pattern checks and case-insensitive scheme comparison; adjusted header attribute formatting.
Settings & Configuration
src/Refitter.Core/Settings/AuthenticationHeaderStyle.cs, src/Refitter.Core/Settings/RefitGeneratorSettings.cs
Added new AuthenticationHeaderStyle enum and SecurityScheme property to RefitGeneratorSettings with JsonConverter attribute for serialization.
Test Resources
src/Refitter.Tests/Resources/EmbeddedResources.cs, src/Refitter.Tests/Resources/SampleOpenSpecifications.cs, src/Refitter.Tests/Resources/V3/*
Introduced three new OpenAPI specification files (Bearer auth JSON/YAML and mixed auth JSON) and updated resource accessors to support them.
Test Coverage
src/Refitter.Tests/SwaggerPetstoreTests.cs, src/Refitter.Tests/SwaggerPetstoreApizrTests.cs
Added 10+ test methods validating Bearer authentication header generation with different styles, security scheme filtering, and code compilation.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • #897 — Directly related; both add AuthenticationHeaderStyle enum, update RefitGeneratorSettings/Settings with SecurityScheme, and refine bearer token detection logic.
  • #663 — Related; both modify ParameterExtractor.cs to adjust header parameter handling logic.
  • #830 — Related; both modify SwaggerPetstoreTests and SwaggerPetstoreApizrTests test files for authentication-related testing.

Suggested labels

enhancement, .NET

Poem

🐰 Headers hop with Bearer's grace,
Method, Parameter find their place,
Schemes now filter, logic refined,
Auth flows smoothly, well-designed!
Tests proliferate, all secure—
The burrow's authentication, pure! 🔐

🚥 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 pull request title accurately describes the main focus of the changeset: addressing review feedback from PR #897 and adding comprehensive bearer authentication tests.

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

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/pr897-review-feedback

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.

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 review feedback from PR #897 and adds comprehensive test coverage for bearer authentication header generation. It fixes code style issues, improves documentation, and validates both Method and Parameter authentication header styles along with the SecurityScheme filter.

Changes:

  • Style/bug fixes: Allman brace style for AuthenticationHeaderStyle enum, case-insensitive bearer scheme comparison, trailing whitespace/space removals, JsonConverter attribute added
  • Documentation: XML docs for new properties, updated README and JSON schema
  • New tests: 16 test methods covering bearer auth header styles, build verification, and SecurityScheme filtering, with new JSON/YAML test resource files

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/Refitter.Core/Settings/AuthenticationHeaderStyle.cs Fixed Allman brace style for enum
src/Refitter.Core/Settings/RefitGeneratorSettings.cs Added JsonConverter attribute to AuthenticationHeaderStyle and XML docs for SecurityScheme
src/Refitter.Core/RefitInterfaceGenerator.cs Removed trailing whitespace; case-insensitive bearer scheme comparison
src/Refitter.Core/ParameterExtractor.cs Removed trailing space in bearer header string; case-insensitive bearer scheme comparison
src/Refitter/Settings.cs Added XML docs and improved [Description] text for auth properties
src/Refitter.Tests/SwaggerPetstoreTests.cs Added 11 new test methods for bearer/mixed auth scenarios
src/Refitter.Tests/SwaggerPetstoreApizrTests.cs Added 5 new test methods for bearer/mixed auth scenarios (Apizr variant)
src/Refitter.Tests/Resources/SampleOpenSpecifications.cs Added 3 new enum values for bearer/mixed auth spec variants
src/Refitter.Tests/Resources/EmbeddedResources.cs Added accessors and switch cases for the 3 new spec resources
src/Refitter.Tests/Resources/V3/SwaggerPetstoreWithBearerAuthenticationHeaders.json New test resource: petstore spec with bearer-only security
src/Refitter.Tests/Resources/V3/SwaggerPetstoreWithBearerAuthenticationHeaders.yaml New test resource: YAML variant of bearer-only petstore spec
src/Refitter.Tests/Resources/V3/SwaggerPetstoreWithMixedAuthenticationHeaders.json New test resource: petstore spec with both bearer and API key security
docs/json-schema.json Added authenticationHeaderStyle and securityScheme schema properties
README.md Added CLI documentation for --generate-authentication-header and --security-scheme

You can also share your feedback on Copilot code review. Take the survey.

}
},
"X-Expires-After": {
"description": "date in UTC when toekn expires",

Copilot AI Mar 4, 2026

Copy link

Choose a reason for hiding this comment

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

Typo in the description field: 'toekn' should be 'token'.

Suggested change
"description": "date in UTC when toekn expires",
"description": "date in UTC when token expires",

Copilot uses AI. Check for mistakes.
type: integer
format: int32
X-Expires-After:
description: date in UTC when toekn expires

Copilot AI Mar 4, 2026

Copy link

Choose a reason for hiding this comment

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

Typo in the description field: 'toekn' should be 'token'.

Suggested change
description: date in UTC when toekn expires
description: date in UTC when token expires

Copilot uses AI. Check for mistakes.
}
},
"X-Expires-After": {
"description": "date in UTC when toekn expires",

Copilot AI Mar 4, 2026

Copy link

Choose a reason for hiding this comment

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

Typo in the description field: 'toekn' should be 'token'.

Suggested change
"description": "date in UTC when toekn expires",
"description": "date in UTC when token expires",

Copilot uses AI. Check for mistakes.
generatedCode.Should().Contain("[Header(\"Authorization: Bearer\")] string bearerToken");
// auth_key only appears once (as a regular operation parameter on DeletePet),
// not on every operation (which would indicate the security filter is not working)
Regex.Matches(generatedCode, @"\[Header\(""auth_key""\)\]").Count.Should().BeLessThanOrEqualTo(1);

Copilot AI Mar 4, 2026

Copy link

Choose a reason for hiding this comment

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

The assertion BeLessThanOrEqualTo(1) also passes if auth_key header appears zero times, which would not validate the expected behavior described in the comment (that it appears exactly once as a regular operation parameter). Consider using Be(1) to make the assertion more precise and to ensure the test actually detects the expected single occurrence.

Suggested change
Regex.Matches(generatedCode, @"\[Header\(""auth_key""\)\]").Count.Should().BeLessThanOrEqualTo(1);
Regex.Matches(generatedCode, @"\[Header\(""auth_key""\)\]").Count.Should().Be(1);

Copilot uses AI. Check for mistakes.
@sonarqubecloud

sonarqubecloud Bot commented Mar 4, 2026

Copy link
Copy Markdown

@codecov

codecov Bot commented Mar 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.41%. Comparing base (86eab90) to head (14101a4).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #936      +/-   ##
==========================================
+ Coverage   88.80%   89.41%   +0.61%     
==========================================
  Files          26       26              
  Lines        1509     1511       +2     
==========================================
+ Hits         1340     1351      +11     
+ Misses         91       85       -6     
+ Partials       78       75       -3     
Flag Coverage Δ
unittests 89.41% <100.00%> (+0.61%) ⬆️

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 87e227d into main Mar 4, 2026
17 of 18 checks passed
@christianhelle
christianhelle deleted the fix/pr897-review-feedback branch March 4, 2026 16:25
@christianhelle christianhelle added enhancement New feature, bug fix, or request .NET Pull requests that contain changes to .NET code labels Mar 4, 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>
vgmello pushed a commit to vgmello/momentum that referenced this pull request May 10, 2026
Updated [Refitter.MSBuild](https://github.com/christianhelle/refitter)
from 1.7.3 to 2.0.0.

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

_Sourced from [Refitter.MSBuild'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)

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

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Refitter.MSBuild&package-manager=nuget&previous-version=1.7.3&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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</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

enhancement New feature, bug fix, or request .NET Pull requests that contain changes to .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants