Skip to content

Add collection format option to CLI tool documentation#664

Merged
christianhelle merged 12 commits intomainfrom
collection-formats
Apr 28, 2025
Merged

Add collection format option to CLI tool documentation#664
christianhelle merged 12 commits intomainfrom
collection-formats

Conversation

@christianhelle
Copy link
Copy Markdown
Owner

@christianhelle christianhelle commented Apr 28, 2025

This pull request introduces support for configurable collection formats for array query parameters in the Refitter tool. The changes include the addition of a new CollectionFormat enumeration, updates to the CLI and .refitter file format to accept this option, and corresponding updates to the documentation and tests.

Feature: Configurable Collection Format for Array Query Parameters

  • Added CollectionFormat enumeration: Introduced a new CollectionFormat enum in src/Refitter.Core/Settings/CollectionFormat.cs to define supported formats such as Multi, Csv, Ssv, Tsv, and Pipes.
  • Updated RefitGeneratorSettings: Added a CollectionFormat property in src/Refitter.Core/Settings/RefitGeneratorSettings.cs to allow configuration of the collection format for array query parameters, defaulting to Multi.
  • Modified query attribute generation: Updated src/Refitter.Core/ParameterExtractor.cs to use the configured CollectionFormat when generating query attributes.

CLI and .refitter File Enhancements

  • CLI support for --collection-format: Added a new --collection-format option to the CLI in src/Refitter/Settings.cs and updated examples in src/Refitter/Program.cs and README.md. [1] [2] [3] [4]
  • .refitter file support: Extended the .refitter file format to include a collectionFormat property, with corresponding documentation updates in docs/docfx_project/articles/refitter-file-format.md. [1] [2]

Documentation Updates

  • Documentation for CLI and .refitter updates: Updated docs/docfx_project/articles/cli-tool.md to document the new --collection-format option and its possible values. [1] [2]

Testing Enhancements

  • New unit tests: Added comprehensive tests in src/Refitter.Tests/Examples/CollectionFormatTests.cs to validate the correct generation of code for different collection formats.
  • Smoke tests: Updated test/smoke-tests.ps1 to include a test case for the --collection-format option with Csv as an example.

These changes ensure that users can flexibly configure how array query parameters are serialized, improving compatibility with different API specifications.

Summary by CodeRabbit

  • New Features

    • Added support for configuring the format of collection (array) query parameters in the CLI tool and .refitter file, with options including Multi, Csv, Ssv, Tsv, and Pipes.
    • Introduced a new command-line option and configuration property to select the desired collection format for generated code.
  • Documentation

    • Updated user guides and examples to document the new --collection-format option and its usage.
    • Enhanced .refitter file format documentation to include the new collectionFormat property.
  • Tests

    • Added tests to verify correct code generation and compilation for each supported collection format.

@christianhelle christianhelle linked an issue Apr 28, 2025 that may be closed by this pull request
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 28, 2025

Walkthrough

The changes introduce a new configurable option, collectionFormat, for specifying how array query parameters are formatted in generated code. This is implemented as a new CollectionFormat enum with values such as Multi, Csv, Ssv, Tsv, and Pipes, and is surfaced through CLI, settings, and .refitter file support. Documentation and examples are updated to reflect the new option. The code generator and parameter extraction logic are modified to use the selected collection format. Tests and smoke tests are added to verify the correct handling and code generation for different collection formats.

Changes

Files/Paths Change Summary
README.md, docs/docfx_project/articles/cli-tool.md, docs/docfx_project/articles/refitter-file-format.md Updated documentation and examples to describe and demonstrate the new --collection-format option, its allowed values, and its usage in CLI and .refitter files.
src/Refitter.Core/Settings/CollectionFormat.cs Added new CollectionFormat enum with values Multi, Csv, Ssv, Tsv, and Pipes, each documented with summaries and examples.
src/Refitter.Core/Settings/RefitGeneratorSettings.cs, src/Refitter/Settings.cs Added new public property CollectionFormat to both RefitGeneratorSettings and Settings classes, with default value Multi, CLI binding, and documentation.
src/Refitter.Core/ParameterExtractor.cs Modified query attribute generation logic to use the selected CollectionFormat from settings instead of the previously hardcoded Multi.
src/Refitter/GenerateCommand.cs Passed the CollectionFormat property from CLI settings into generator settings during command execution.
src/Refitter/Program.cs Added a new CLI usage example demonstrating the --collection-format Csv option.
src/Refitter.Tests/Examples/CollectionFormatTests.cs Introduced new test class with tests verifying code generation, compilation, and correct attribute usage for different collection formats.
test/smoke-tests.ps1 Added a new smoke test scenario to generate and build code using the --collection-format csv option.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI/Settings
    participant CodeGenerator
    participant ParameterExtractor

    User->>CLI/Settings: Specify --collection-format (e.g., Csv)
    CLI/Settings->>CodeGenerator: Pass CollectionFormat setting
    CodeGenerator->>ParameterExtractor: Generate code for query parameters
    ParameterExtractor->>CodeGenerator: Use specified CollectionFormat in attributes
    CodeGenerator-->>User: Output code with correct collection format
Loading

Poem

🐇
A hop and a skip, a format anew,
Now arrays in queries can split right through!
Csv or Pipes, Ssv or Tabs,
Multi for many, the rabbit now grabs.
Tests and docs updated, the journey complete—
Collection formats make code extra neat!
🥕


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fb368ce and 59aff75.

📒 Files selected for processing (11)
  • README.md (2 hunks)
  • docs/docfx_project/articles/cli-tool.md (2 hunks)
  • docs/docfx_project/articles/refitter-file-format.md (2 hunks)
  • src/Refitter.Core/ParameterExtractor.cs (1 hunks)
  • src/Refitter.Core/Settings/CollectionFormat.cs (1 hunks)
  • src/Refitter.Core/Settings/RefitGeneratorSettings.cs (1 hunks)
  • src/Refitter.Tests/Examples/CollectionFormatTests.cs (1 hunks)
  • src/Refitter/GenerateCommand.cs (1 hunks)
  • src/Refitter/Program.cs (1 hunks)
  • src/Refitter/Settings.cs (1 hunks)
  • test/smoke-tests.ps1 (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
src/Refitter.Tests/Examples/CollectionFormatTests.cs (2)
src/Refitter.Tests/Build/BuildHelper.cs (2)
  • BuildHelper (6-53)
  • BuildCSharp (8-45)
src/Refitter.Core/RefitGenerator.cs (1)
  • RefitGenerator (10-300)
⏰ Context from checks skipped due to timeout of 90000ms (5)
  • GitHub Check: Analyze (csharp)
  • GitHub Check: 👌 Verify build
  • GitHub Check: script
  • GitHub Check: 👌 Verify build
  • GitHub Check: 👌 Verify build
🔇 Additional comments (18)
src/Refitter/Program.cs (1)

159-163: Excellent addition of the --collection-format example.

The new example demonstrates how to use the --collection-format option with the "Csv" value, which is consistent with the existing example pattern and properly positioned after the polymorphic serialization example.

docs/docfx_project/articles/cli-tool.md (2)

42-42: Well-structured example for the new collection format option.

The example follows the established pattern and clearly demonstrates the --collection-format Csv usage.


86-91: Clear and comprehensive documentation for the collection format option.

The documentation effectively describes:

  • Default value (Multi)
  • All possible values with explanations
  • Formatting consistent with other options in the documentation

This provides users with all necessary information to understand and use the new feature.

README.md (2)

63-63: Example correctly demonstrates the new collection format option.

The example follows the established pattern of other examples in the README and shows how to use the --collection-format Csv option.


107-107: Concise documentation of the collection format option for the README.

The description appropriately includes the default value (Multi) and available options in a format consistent with other options in the README. While less detailed than the CLI tool documentation, this is appropriate for the README context.

test/smoke-tests.ps1 (1)

182-182: Good test coverage for the new collection format option.

The test properly:

  • Uses "CollectionFormatCsv" as the namespace suffix and output path prefix
  • Includes the --collection-format csv argument
  • Enables the .NET Core switch, consistent with similar feature tests
  • Maintains the same pattern as other feature tests

This addition ensures the new feature is properly tested in smoke tests.

src/Refitter/GenerateCommand.cs (1)

149-149: Good work adding the CollectionFormat property to the RefitGeneratorSettings!

This change properly passes the collection format configuration from the CLI settings to the Refit generator settings, enabling configurable array query parameter formatting.

docs/docfx_project/articles/refitter-file-format.md (2)

66-66: Documentation updated correctly for the new CollectionFormat option.

The documentation clearly explains the purpose of the new collectionFormat property, its possible values, and its default value. This will help users understand how to configure array parameter formatting in their .refitter files.


425-425: Minor readability improvement to the withRequestOptions description.

Clean-up of trailing content in the description improves the documentation's consistency.

src/Refitter.Core/ParameterExtractor.cs (1)

119-120: Good implementation of the dynamic collection format.

The code now correctly uses the configured collection format from settings instead of hardcoding Multi. This enables users to choose their preferred format for array query parameters.

src/Refitter.Core/Settings/CollectionFormat.cs (1)

1-38: Well-structured enum with clear documentation.

The CollectionFormat enum is well-designed with appropriate XML documentation that clearly explains each format option and includes examples. This makes the code self-documenting and provides valuable information for developers working with the codebase.

The enum correctly implements the collection formats as defined in the Swagger 2.0 specification, providing a complete set of options for array parameter serialization.

src/Refitter.Core/Settings/RefitGeneratorSettings.cs (1)

366-372: Well-implemented property for collection format configuration.

The CollectionFormat property is properly implemented with comprehensive XML documentation, appropriate description attribute, and correct default value. The JSON serialization configuration ensures proper integration with configuration files.

src/Refitter/Settings.cs (1)

233-245: Excellent CLI integration for the collection format option.

The implementation includes a comprehensive description that clearly explains each format option with examples of how they appear in query strings. Linking to the Swagger documentation is particularly helpful for users who want to understand the feature in depth.

src/Refitter.Tests/Examples/CollectionFormatTests.cs (5)

9-62: Good test setup with comprehensive OpenAPI specification.

The test class is well-structured with a complete OpenAPI specification that includes both required and optional array parameters, providing a solid foundation for testing the collection format feature.


63-78: Basic generation and build tests verify functionality.

These tests ensure that the code can be generated with the collection format option and successfully builds, which is a good sanity check for the feature.


80-97: Comprehensive parameterized tests for all collection formats.

Excellent use of theory with inline data to test each supported collection format. The assertions properly verify that both required and optional parameters use the correct format attribute in the generated code.


99-125: Well-implemented helper method for code generation.

The GenerateCode method properly sets up the test environment, configures the settings with the specified collection format, and ensures proper cleanup of temporary files.


127-135: Clean file management in test helpers.

The CreateSwaggerFile method correctly handles temporary file creation with unique identifiers to avoid conflicts during parallel test execution.

✨ Finishing Touches
  • 🔥 Error while generating docstrings. (🔄 Check again to generate docstrings again)

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@christianhelle christianhelle self-assigned this Apr 28, 2025
@christianhelle christianhelle added the enhancement New feature, bug fix, or request label Apr 28, 2025
@sonarqubecloud
Copy link
Copy Markdown

@christianhelle christianhelle requested a review from Copilot April 28, 2025 17:40
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 adds configurable collection format support for array query parameters in the Refitter tool. The changes include introducing a new CollectionFormat enum and property, updating the CLI and generator settings to use this option, and enhancing tests and documentation to cover the new functionality.

  • Added new CollectionFormat enum and corresponding properties in settings files.
  • Updated CLI examples and Refit generator settings to propagate the new option.
  • Enhanced tests and documentation to validate and describe the feature.

Reviewed Changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/Refitter/Settings.cs Added a new command-line option for specifying the collection format.
src/Refitter/Program.cs Updated example configuration to include the --collection-format option.
src/Refitter/GenerateCommand.cs Passed the CollectionFormat setting into the generator settings.
src/Refitter.Tests/Examples/CollectionFormatTests.cs Added comprehensive tests to verify correct code generation for each collection format.
src/Refitter.Core/Settings/RefitGeneratorSettings.cs Introduced a new property for CollectionFormat with proper JSON conversion.
src/Refitter.Core/Settings/CollectionFormat.cs Defined the CollectionFormat enum with supported formats.
src/Refitter.Core/ParameterExtractor.cs Updated the query attribute generation to use the configured collection format.
docs/docfx_project/articles/refitter-file-format.md Extended .refitter file documentation to include the new collectionFormat property.
docs/docfx_project/articles/cli-tool.md Documented the new --collection-format option with possible values.
README.md Updated examples and option lists to reflect the new collection format support.
Files not reviewed (1)
  • test/smoke-tests.ps1: Language not supported

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 28, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.51%. Comparing base (2ebf63f) to head (59aff75).
Report is 20 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #664      +/-   ##
==========================================
+ Coverage   95.47%   98.51%   +3.04%     
==========================================
  Files          59       60       +1     
  Lines        2896     2900       +4     
==========================================
+ Hits         2765     2857      +92     
+ Misses         99        4      -95     
- Partials       32       39       +7     
Flag Coverage Δ
unittests 98.51% <100.00%> (+3.04%) ⬆️

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 d536d5c into main Apr 28, 2025
12 checks passed
@christianhelle christianhelle deleted the collection-formats branch April 28, 2025 19:54
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 28, 2025

Caution

An unexpected error occurred while opening a pull request: Not Found - https://docs.github.com/rest/git/refs#get-a-reference

hwinther pushed a commit to hwinther/test that referenced this pull request Dec 4, 2025
Updated [refitter](https://github.com/christianhelle/refitter) from
1.4.0 to 1.7.0.

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

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

## 1.7.0

## What's Changed
* Fix Multipart file array support by @​christianhelle in
christianhelle/refitter#784
* Add option to remove
`[JsonConverter(typeof(JsonStringEnumConverter))]` from generated
contracts by @​christianhelle in
christianhelle/refitter#786
* Improve OpenAPI Description handling by @​christianhelle in
christianhelle/refitter#787
* Update Smoke Tests workflow trigger by @​christianhelle in
christianhelle/refitter#791
* Add support for customizing the default Integer format by
@​christianhelle in christianhelle/refitter#792
* NSwag v14.6.2 by @​christianhelle in
christianhelle/refitter#800

## New Contributors:
- @​christophdebaene 
- @​7amou3 
- @​HGCollier

**Full Changelog**:
christianhelle/refitter@1.6.5...1.7.0

## 1.6.5

## What's Changed
* Do not remove colon from url paths, verify they're not present in
operation names by @​eoma-knowit in
christianhelle/refitter#765
* Add ability to skip-validation + simplify Unicode logging by
@​david-pw in christianhelle/refitter#767
* Use NSwag's built-in System.Text.Json polymorphic serialization by
@​0xced in christianhelle/refitter#772

## New Contributors
* @​eoma-knowit made their first contribution in
christianhelle/refitter#765
* @​david-pw made their first contribution in
christianhelle/refitter#767
* @​0xced made their first contribution in
christianhelle/refitter#772

**Full Changelog**:
christianhelle/refitter@1.6.4...1.6.5

## 1.6.4

## What's Changed
* Fix SonarCloud maintainability issues - eliminate code duplication and
improve code quality in
christianhelle/refitter#753
* Update --operation-name-template implementation to replace all
{operationName} instances with Execute by @​christianhelle in
christianhelle/refitter#759


**Full Changelog**:
christianhelle/refitter@1.6.3...1.6.4

## 1.6.3

## What's Changed
* Fix MSBuild task so that the generated code is included in the
compilation by @​christianhelle in
christianhelle/refitter#745
* Add support for systems running only .NET 9.0 (without .NET 8.0) in
Refitter.MSBuild by @​christianhelle in
christianhelle/refitter#746
* Introduce --simple-output CLI argument by @​christianhelle in
christianhelle/refitter#751


**Full Changelog**:
christianhelle/refitter@1.6.2...1.6.3

## 1.6.2

## What's Changed
* docs: add @​SWarnberg as a contributor for bug by
@​allcontributors[bot] in
christianhelle/refitter#714
* docs: add @​lilinus as a contributor for bug by @​allcontributors[bot]
in christianhelle/refitter#717
* Fix missing namespace import by @​christianhelle in
christianhelle/refitter#718
* Fix match path on cmd prompt by @​christianhelle in
christianhelle/refitter#719
* Fix table alignments in CLI Output by @​christianhelle in
christianhelle/refitter#720
* NSwag v14.5.0 by @​renovate[bot] in
christianhelle/refitter#722
* Add comprehensive GitHub Copilot instructions for Refitter repository
by @​Copilot in christianhelle/refitter#725
* Bump actions/checkout from 4 to 5 by @​dependabot[bot] in
christianhelle/refitter#727
* chore(deps): update dependency polly to 8.6.2 by @​renovate[bot] in
christianhelle/refitter#716
* chore(deps): update dependency microsoft.extensions.http.resilience to
9.8.0 by @​renovate[bot] in
christianhelle/refitter#728
* ASCII Art Title by @​christianhelle in
christianhelle/refitter#729


**Full Changelog**:
christianhelle/refitter@1.6.1...1.6.2

## 1.6.1

## What's Changed
* Update dependency Refitter.SourceGenerator to 1.6.0 by @​renovate in
christianhelle/refitter#704
* Add console output screenshots to documentation by @​christianhelle in
christianhelle/refitter#705
* docs: add @​sb-chericks as a contributor for ideas, and bug by
@​allcontributors in christianhelle/refitter#707
* chore(deps): update dependency xunit.runner.visualstudio to 3.1.1 by
@​renovate in christianhelle/refitter#708
* Ensure that Refit interfaces have a XML docs by @​christianhelle in
christianhelle/refitter#709

**Full Changelog**:
christianhelle/refitter@1.6.0...1.6.1

## 1.6.0

**Implemented enhancements:**

- fix missing schema for dictionary keys
[\#​697](christianhelle/refitter#697) @​kirides
- Fancy CLI output using Spectre Console
[\#​695](christianhelle/refitter#695)
@​christianhelle

**Fixed bugs:**

- \[Bug\] Refitter generates invalid \[Range\] attribute for decimal
properties starting from v1.5.2
[\#​668](christianhelle/refitter#668)
@​tommieemeli
- Generates Content-Type: multipart/form-data Header which breaks
Multipart uploads
[\#​654](christianhelle/refitter#654) @​dbhjoh
@​jaroslaw-dutka

**Closed issues:**

- Improve documentation
[\#​700](christianhelle/refitter#700)

**Merged pull requests:**

- Update dependency Polly to 8.6.1
[\#​703](christianhelle/refitter#703)
([renovate[bot]](https://github.com/apps/renovate))
- Update dependency Swashbuckle.AspNetCore to v9
[\#​702](christianhelle/refitter#702)
([renovate[bot]](https://github.com/apps/renovate))
- Fix typos and grammar issues in documentation
[\#​701](christianhelle/refitter#701)
([Copilot](https://github.com/apps/copilot-swe-agent))
- Update dotnet monorepo
[\#​699](christianhelle/refitter#699)
([renovate[bot]](https://github.com/apps/renovate))
- Update dependency Polly to 8.6.0
[\#​698](christianhelle/refitter#698)
([renovate[bot]](https://github.com/apps/renovate))
- Update dependency Refitter.SourceGenerator to 1.5.6
[\#​696](christianhelle/refitter#696)
([renovate[bot]](https://github.com/apps/renovate))
- Update dependency Microsoft.NET.Test.Sdk to 17.14.1
[\#​692](christianhelle/refitter#692)
([renovate[bot]](https://github.com/apps/renovate))
- Update dependency Swashbuckle.AspNetCore to 8.1.4
[\#​691](christianhelle/refitter#691)
([renovate[bot]](https://github.com/apps/renovate))


See [Full
Changelog](christianhelle/refitter@1.5.6...1.6.0)

## 1.5.6

## What's Changed
* Use fully qualified type name in Class template by @​velvolue in
christianhelle/refitter#686
* Add .NET 9.0 to Target Frameworks by @​christianhelle in
christianhelle/refitter#690
* Do not add both [Multipart] and "Content-Type: multipart/form-data" by
@​jaroslaw-dutka in christianhelle/refitter#693

## Merged pull requests
* chore(deps): update dependency refitter.sourcegenerator to 1.5.5 by
@​renovate in christianhelle/refitter#671
* docs: add MrScottyTay as a contributor for bug by @​allcontributors in
christianhelle/refitter#673
* chore(deps): update dotnet monorepo by @​renovate in
christianhelle/refitter#674
* chore(deps): update dependency microsoft.build.utilities.core to
17.14.7 by @​renovate in
christianhelle/refitter#675
* chore(deps): update dependency microsoft.build.utilities.core to
17.14.8 by @​renovate in
christianhelle/refitter#676
* chore(deps): update dependency microsoft.net.test.sdk to 17.14.0 by
@​renovate in christianhelle/refitter#680
* Add Contribution Guidelines by @​copilot-swe-agent in
christianhelle/refitter#679
* chore(deps): update dependency swashbuckle.aspnetcore to 8.1.2 by
@​renovate in christianhelle/refitter#682
* docs: add velvolue as a contributor for bug by @​allcontributors in
christianhelle/refitter#687
* Use fully qualified type name in Class template by @​velvolue in
christianhelle/refitter#686
* Resolve build warnings and add TreatWarningsAsErrors by
@​copilot-swe-agent in
christianhelle/refitter#689
* Add .NET 9.0 to Target Frameworks by @​christianhelle in
christianhelle/refitter#690
* Do not add both [Multipart] and "Content-Type: multipart/form-data" by
@​jaroslaw-dutka in christianhelle/refitter#693

**Full Changelog**:
christianhelle/refitter@1.5.5...1.5.6

## 1.5.5

## What's Changed

- Using CollectionFormats other than Multi
[\#​640](christianhelle/refitter#640)
(@​ebarnard)
- Add collection format option to CLI tool documentation
[\#​664](christianhelle/refitter#664)
(@​christianhelle)
- Made Security Header Parameters safe for C\# when unsafe characters
are present
[\#​663](christianhelle/refitter#663)
(@​AragornHL)

## Merged pull requests:

- chore\(deps\): update dependency xunit.runner.visualstudio to 3.1.0
[\#​670](christianhelle/refitter#670)
([renovate[bot]](https://github.com/apps/renovate))
- docs: add tommieemeli as a contributor for bug
[\#​669](christianhelle/refitter#669)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- Update nswag monorepo to 14.4.0
[\#​665](christianhelle/refitter#665)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency refitter.sourcegenerator to 1.5.4
[\#​662](christianhelle/refitter#662)
([renovate[bot]](https://github.com/apps/renovate))

**Full Changelog**:
christianhelle/refitter@1.5.4...1.5.5

## 1.5.4

## What's Changed

- Adding security schemes to the api interface generator
[\#​106](christianhelle/refitter#106)
- Response type handling to only use 2XX range
[\#​661](christianhelle/refitter#661)
([christianhelle](https://github.com/christianhelle))
- Add support for 2XX and Default Response Objects
[\#​660](christianhelle/refitter#660)
([christianhelle](https://github.com/christianhelle))
- Add Header Parameters for Security Schemes
[\#​653](christianhelle/refitter#653)
([AragornHL](https://github.com/AragornHL))

## Merged Pull Requests:
* chore(deps): update dependency refitter.sourcegenerator to 1.5.3 by
@​renovate in christianhelle/refitter#645
* chore(deps): update dependency swashbuckle.aspnetcore to 8.1.0 by
@​renovate in christianhelle/refitter#646
* chore(deps): update dependency exceptionless to 6.1.0 by @​renovate in
christianhelle/refitter#647
* chore(deps): update dependency spectre.console.cli to 0.50.0 by
@​renovate in christianhelle/refitter#649
* chore(deps): update dotnet monorepo to 9.0.4 by @​renovate in
christianhelle/refitter#648
* chore(deps): update dependency microsoft.extensions.http.resilience to
9.4.0 by @​renovate in
christianhelle/refitter#650
* chore(deps): update dependency swashbuckle.aspnetcore to 8.1.1 by
@​renovate in christianhelle/refitter#651
* Add Header Parameters for Security Schemes by @​AragornHL in
christianhelle/refitter#653
* docs: add @​AragornHL as a contributor for code by @​allcontributors
in christianhelle/refitter#655
* docs: add @​kmfd3s as a contributor for code by @​allcontributors in
christianhelle/refitter#656
* Update smoke tests to generate authentication headers by
@​christianhelle in christianhelle/refitter#657
* docs: add @​pfeigl as a contributor for bug by @​allcontributors in
christianhelle/refitter#659
* Add support for 2XX and Default Response Objects by @​christianhelle
in christianhelle/refitter#660
* Response type handling to only use 2XX range by @​christianhelle in
christianhelle/refitter#661

## New Contributors
* @​AragornHL made their first contribution in
christianhelle/refitter#653

**Full Changelog**:
christianhelle/refitter@1.5.3...1.5.4

## 1.5.3

**Implemented enhancements:**

- Naming properties problem
[\#​641](christianhelle/refitter#641)
- Allow comments in .refitter Configuration
[\#​631](christianhelle/refitter#631)
- NSwag v14.3.0
[\#​644](christianhelle/refitter#644)
([renovate[bot]](https://github.com/apps/renovate))
- Convert properties with underscores to PascalCase
[\#​643](christianhelle/refitter#643)
([christianhelle](https://github.com/christianhelle))
- Add support for deserializing JSON with comments and update tests
[\#​637](christianhelle/refitter#637)
([sebastian-wachsmuth](https://github.com/sebastian-wachsmuth))
- Temporary fix for Source Generator when running in Visual Studio
[\#​634](christianhelle/refitter#634)
([christianhelle](https://github.com/christianhelle))
- JSON Schema generator for documentation
[\#​623](christianhelle/refitter#623)
([christianhelle](https://github.com/christianhelle))
- Fix missing Content-Type \[Headers\]
[\#​619](christianhelle/refitter#619)
([christianhelle](https://github.com/christianhelle))
- Fix invalid characters in generated XML docs
[\#​607](christianhelle/refitter#607)
([christianhelle](https://github.com/christianhelle))
- Add support for custom DateTimeFormat
[\#​604](christianhelle/refitter#604)
([christianhelle](https://github.com/christianhelle))
- Fix ISO date format handling when dateFormat is defined in settings
file [\#​603](christianhelle/refitter#603)
([christianhelle](https://github.com/christianhelle))

**Fixed bugs:**

- Doesn't add Content-Type request header when body is plain JSON string
[\#​617](christianhelle/refitter#617)
- Broken xml doc when swagger descriptions contains "\<" or "\>"
characters
[\#​605](christianhelle/refitter#605)
- date-time parameters are encoded as date when iso8601 is used
[\#​599](christianhelle/refitter#599)

**Closed issues:**

- OpenAPI Schema and Authorization Attributes
[\#​629](christianhelle/refitter#629)

**Merged pull requests:**

- docs: add @​lowern1ght as a contributor for bug
[\#​642](christianhelle/refitter#642)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- docs: add @​qrzychu as a contributor for bug
[\#​639](christianhelle/refitter#639)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- docs: add @​sebastian-wachsmuth as a contributor for code
[\#​638](christianhelle/refitter#638)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- Update dependency Swashbuckle.AspNetCore to v8
[\#​633](christianhelle/refitter#633)
([renovate[bot]](https://github.com/apps/renovate))
- Update dotnet monorepo
[\#​630](christianhelle/refitter#630)
([renovate[bot]](https://github.com/apps/renovate))
- Update dependency Atc.Test to 1.1.18
[\#​628](christianhelle/refitter#628)
([renovate[bot]](https://github.com/apps/renovate))
- Update dependency Swashbuckle.AspNetCore to 7.3.1
[\#​626](christianhelle/refitter#626)
([renovate[bot]](https://github.com/apps/renovate))
- Update dependency Swashbuckle.AspNetCore to 7.3.0
[\#​624](christianhelle/refitter#624)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency fluentassertions to 7.2.0
[\#​622](christianhelle/refitter#622)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency apizr.integrations.fusillade to 6.4.2
[\#​621](christianhelle/refitter#621)
([renovate[bot]](https://github.com/apps/renovate))
- docs: add @​Metziell as a contributor for bug
[\#​620](christianhelle/refitter#620)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- docs: add @​Fargekritt as a contributor for bug
[\#​618](christianhelle/refitter#618)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- chore\(deps\): update dependency apizr.integrations.automapper to
6.4.2 [\#​616](christianhelle/refitter#616)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency apizr.extensions.microsoft.caching to
6.4.2 [\#​615](christianhelle/refitter#615)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency
microsoft.applicationinsights.windowsserver to 2.23.0
[\#​614](christianhelle/refitter#614)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency microsoft.build.utilities.core to
17.13.9 [\#​612](christianhelle/refitter#612)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dotnet monorepo
[\#​611](christianhelle/refitter#611)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency microsoft.net.test.sdk to 17.13.0
[\#​610](christianhelle/refitter#610)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency xunit.runner.visualstudio to 3.0.2
[\#​609](christianhelle/refitter#609)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency polly to 8.5.2
[\#​608](christianhelle/refitter#608)
([renovate[bot]](https://github.com/apps/renovate))
- docs: add @​wocasella as a contributor for bug
[\#​606](christianhelle/refitter#606)
([allcontributors[bot]](https://github.com/apps/allcontributors))
- chore\(deps\): update dependency refitter.sourcegenerator to 1.5.2
[\#​602](christianhelle/refitter#602)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency atc.test to 1.1.17
[\#​592](christianhelle/refitter#592)
([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update dependency h.generators.extensions to 1.24.2
[\#​581](christianhelle/refitter#581)
([renovate[bot]](https://github.com/apps/renovate))
 ... (truncated)

## 1.5.2

## Implemented enhancements:

- Fix date formatting for date-time types
christianhelle/refitter#600
- Proper support for multipart form
christianhelle/refitter#595

## Fixed bugs:

- date-time parameters are encoded as date when iso8601 is used
christianhelle/refitter#599
- \[FromForm\] parameter on minimal api doesn't get generated on
Interface christianhelle/refitter#515

## Merged pull requests:
* chore(deps): update dependency coverlet.collector to 6.0.4 by
@​renovate in christianhelle/refitter#594
* Proper support for multipart form by @​jaroslaw-dutka in
christianhelle/refitter#595
* docs: add jaroslaw-dutka as a contributor for code by
@​allcontributors in christianhelle/refitter#596
* chore(deps): update dependency refitter.sourcegenerator to 1.5.0 by
@​renovate in christianhelle/refitter#593
* Remove dependency on System.Text.Json by @​christianhelle in
christianhelle/refitter#597
* chore(deps): update dependency refitter.sourcegenerator to 1.5.1 by
@​renovate in christianhelle/refitter#598
* docs: add maksionkin as a contributor for bug by @​allcontributors in
christianhelle/refitter#601
* Fix date formatting for date-time types by @​christianhelle in
christianhelle/refitter#600

## New Contributors
* @​jaroslaw-dutka made their first contribution in
christianhelle/refitter#595
* @​maksionkin reported their first issue in
christianhelle/refitter#599

**Full Changelog**:
christianhelle/refitter@1.5.0...1.5.2

## 1.5.0

## Implemented enhancements:

- Fix incorrect error message shown due to Spectre.Console parsing
[\#​585](christianhelle/refitter#585)
([christianhelle](https://github.com/christianhelle))
- Return null when object subtype is not found
[\#​577](christianhelle/refitter#577)
([velvolue](https://github.com/velvolue))
- Discard unused union types/inheritance types via config
[\#​575](christianhelle/refitter#575)
([kirides](https://github.com/kirides))
- Show Deserializaton Errors from Source Generator
[\#​572](christianhelle/refitter#572)
([christianhelle](https://github.com/christianhelle))
- Limit Exceptionless telemetry
[\#​564](christianhelle/refitter#564)
([christianhelle](https://github.com/christianhelle))
- Added simple logic to make most identifier strings valid
[\#​562](christianhelle/refitter#562)
([Fargekritt](https://github.com/Fargekritt))
- Fix -v|--version CLI tool argument
[\#​561](christianhelle/refitter#561)
([christianhelle](https://github.com/christianhelle))
- Less strict OpenAPI Validation rules
[\#​558](christianhelle/refitter#558)
([christianhelle](https://github.com/christianhelle))
- Added support for custom date format
[\#​554](christianhelle/refitter#554)
([Fargekritt](https://github.com/Fargekritt))
- Add support for disabling telemetry in MSBuild task
[\#​550](christianhelle/refitter#550)
([christianhelle](https://github.com/christianhelle))
- MSBuild Custom Task
[\#​548](christianhelle/refitter#548)
([christianhelle](https://github.com/christianhelle))
- Generate IDisposable Refit Interfaces
[\#​543](christianhelle/refitter#543)
([christianhelle](https://github.com/christianhelle))
- Clients implementing IDisposable interface
[\#​541](christianhelle/refitter#541)
([shubinp](https://github.com/shubinp))
- \[Apizr\] Deprecated Optional package removed from code & doc
[\#​539](christianhelle/refitter#539)
([JeremyBP](https://github.com/JeremyBP))
- Add PropertyNameGenerator as an optional Parameter
[\#​516](christianhelle/refitter#516)
- NSwag v14.2.0
[\#​532](christianhelle/refitter#532)
([renovate[bot]](https://github.com/apps/renovate))
- added options for a custom Name Generators
[\#​517](christianhelle/refitter#517)
([fsamiec](https://github.com/fsamiec))

## Fixed bugs:

- "Error: Could not find color or style 'System.String'."
[\#​583](christianhelle/refitter#583)
- Source generator errors are hidden
[\#​568](christianhelle/refitter#568)
- Refitter -v not showing version number
[\#​560](christianhelle/refitter#560)
- Not so nice behavior when generating client with trim-unused-schema
[\#​557](christianhelle/refitter#557)
- Two almost identical routes that fail at validation.
[\#​551](christianhelle/refitter#551)
- Code Generator creates unsafe interface method names
[\#​360](christianhelle/refitter#360)

## Closed issues:

- How to use in class library?
[\#​534](christianhelle/refitter#534)
- \[ISSUE\]\[1.2.1-preview.54\] Some impediments using CLI version. Is
not enough for my needs?
[\#​450](christianhelle/refitter#450)

## Merged Pull Requests
* chore(deps): update dependency refitter.sourcegenerator to 1.4.0 by
@​renovate in christianhelle/refitter#513
* chore(deps): update dependency swashbuckle.aspnetcore to 6.9.0 by
@​renovate in christianhelle/refitter#514
* added options for a custom Name Generators by @​fsamiec in
christianhelle/refitter#517
* docs: add fsamiec as a contributor for code by @​allcontributors in
christianhelle/refitter#518
* chore(deps): update refit monorepo to v8 (major) by @​renovate in
christianhelle/refitter#519
* docs: add fabioloreggian as a contributor for bug by @​allcontributors
in christianhelle/refitter#521
* chore(deps): update dependency fluentassertions to 6.12.2 by
@​renovate in christianhelle/refitter#523
* chore(deps): update dependency polly to 8.5.0 by @​renovate in
christianhelle/refitter#525
* chore(deps): update dependency swashbuckle.aspnetcore to v7 by
@​renovate in christianhelle/refitter#526
* chore(deps): update dependency h.generators.extensions to 1.24.0 by
@​renovate in christianhelle/refitter#528
* chore(deps): update dotnet monorepo to v9 (major) by @​renovate in
christianhelle/refitter#527
* NSwag v14.2.0 by @​renovate in
christianhelle/refitter#532
* chore(deps): update dependency microsoft.net.test.sdk to 17.12.0 by
@​renovate in christianhelle/refitter#531
* chore(deps): update dependency refitter.sourcegenerator to 1.4.1 by
@​renovate in christianhelle/refitter#533
* docs: add geometrikal as a contributor for bug by @​allcontributors in
christianhelle/refitter#535
 ... (truncated)

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

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=refitter&package-manager=nuget&previous-version=1.4.0&new-version=1.7.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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

enhancement New feature, bug fix, or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Using CollectionFormats other than Multi

2 participants