diff --git a/.github/workflows/qodana_code_quality.yml b/.github/workflows/qodana_analysis.yml similarity index 93% rename from .github/workflows/qodana_code_quality.yml rename to .github/workflows/qodana_analysis.yml index 334f426c46..bb02b3e74d 100644 --- a/.github/workflows/qodana_code_quality.yml +++ b/.github/workflows/qodana_analysis.yml @@ -26,7 +26,7 @@ jobs: global-json-file: global.json - name: 'Qodana Scan' - uses: jetbrains/qodana-action@v2024.3.4 + uses: jetbrains/qodana-action@v2025.1.0 with: args: --baseline,qodana.sarif.json cache-default-branch-only: true diff --git a/build/CI.slnx b/build/CI.slnx index e1b7eeb285..4e7ad23da5 100644 --- a/build/CI.slnx +++ b/build/CI.slnx @@ -45,7 +45,7 @@ - + diff --git a/qodana.sarif.json b/qodana.sarif.json index 59395797a9..1f50cbde5f 100644 --- a/qodana.sarif.json +++ b/qodana.sarif.json @@ -14791,7 +14791,7 @@ "markdown": "Member can be made private [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBePrivate.Global.html)" }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { "suppressToolId": "MemberCanBePrivate.Global", @@ -17944,21 +17944,21 @@ ] }, { - "id": "CA3002", + "id": "RCS1099", "shortDescription": { - "text": "RoslynAnalyzers Review code for XSS vulnerabilities" + "text": "RoslynAnalyzers Default label should be the last label in a switch section" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA3002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "RCS1099", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -17978,21 +17978,21 @@ ] }, { - "id": "RCS1099", + "id": "CA3002", "shortDescription": { - "text": "RoslynAnalyzers Default label should be the last label in a switch section" + "text": "RoslynAnalyzers Review code for XSS vulnerabilities" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "RCS1099", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA3002", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -18148,21 +18148,21 @@ ] }, { - "id": "RCS1050", + "id": "CA3005", "shortDescription": { - "text": "RoslynAnalyzers Include/omit parentheses when creating new object" + "text": "RoslynAnalyzers Review code for LDAP injection vulnerabilities" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "RCS1050", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA3005", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -18182,21 +18182,21 @@ ] }, { - "id": "CA3005", + "id": "RCS1050", "shortDescription": { - "text": "RoslynAnalyzers Review code for LDAP injection vulnerabilities" + "text": "RoslynAnalyzers Include/omit parentheses when creating new object" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA3005", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "RCS1050", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -18284,21 +18284,21 @@ ] }, { - "id": "RCS1052", + "id": "CA3007", "shortDescription": { - "text": "RoslynAnalyzers Declare each attribute separately" + "text": "RoslynAnalyzers Review code for open redirect vulnerabilities" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "RCS1052", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA3007", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -18318,21 +18318,21 @@ ] }, { - "id": "CA3007", + "id": "RCS1052", "shortDescription": { - "text": "RoslynAnalyzers Review code for open redirect vulnerabilities" + "text": "RoslynAnalyzers Declare each attribute separately" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA3007", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "RCS1052", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -18692,21 +18692,21 @@ ] }, { - "id": "RCS1049", + "id": "CA3010", "shortDescription": { - "text": "RoslynAnalyzers Simplify boolean comparison" + "text": "RoslynAnalyzers Review code for XAML injection vulnerabilities" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "RCS1049", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA3010", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -18726,21 +18726,21 @@ ] }, { - "id": "CA3010", + "id": "RCS1049", "shortDescription": { - "text": "RoslynAnalyzers Review code for XAML injection vulnerabilities" + "text": "RoslynAnalyzers Simplify boolean comparison" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA3010", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "RCS1049", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -38038,21 +38038,21 @@ ] }, { - "id": "CA1510", + "id": "RCS1058FadeOut", "shortDescription": { - "text": "RoslynAnalyzers Use ArgumentNullException throw helper" + "text": "RoslynAnalyzers Use compound assignment" }, "fullDescription": { - "text": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance.", - "markdown": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CA1510", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "RCS1058FadeOut", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -38072,21 +38072,21 @@ ] }, { - "id": "RCS1058FadeOut", + "id": "CA1510", "shortDescription": { - "text": "RoslynAnalyzers Use compound assignment" + "text": "RoslynAnalyzers Use ArgumentNullException throw helper" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance.", + "markdown": "Throw helpers are simpler and more efficient than an if block constructing a new exception instance." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "RCS1058FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "CA1510", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -68434,21 +68434,21 @@ ] }, { - "id": "NUnit1010", + "id": "IDE0305", "shortDescription": { - "text": "RoslynAnalyzers One may not specify ParallelScope.Fixtures on a test method" + "text": "RoslynAnalyzers Simplify collection initialization" }, "fullDescription": { - "text": "One may not specify ParallelScope.Fixtures on a test method.", - "markdown": "One may not specify ParallelScope.Fixtures on a test method." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "error", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "NUnit1010", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", + "suppressToolId": "IDE0305", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -68468,21 +68468,21 @@ ] }, { - "id": "IDE0305", + "id": "NUnit1010", "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" + "text": "RoslynAnalyzers One may not specify ParallelScope.Fixtures on a test method" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "One may not specify ParallelScope.Fixtures on a test method.", + "markdown": "One may not specify ParallelScope.Fixtures on a test method." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "error", "parameters": { - "suppressToolId": "IDE0305", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "NUnit1010", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", "codeQualityCategory": "Unspecified" } }, @@ -68570,21 +68570,21 @@ ] }, { - "id": "NUnit1012", + "id": "IDE0303", "shortDescription": { - "text": "RoslynAnalyzers The async test method must have a non-void return type" + "text": "RoslynAnalyzers Simplify collection initialization" }, "fullDescription": { - "text": "The async test method must have a non-void return type.", - "markdown": "The async test method must have a non-void return type." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "error", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "NUnit1012", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", + "suppressToolId": "IDE0303", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -68604,21 +68604,21 @@ ] }, { - "id": "IDE0303", + "id": "NUnit1012", "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" + "text": "RoslynAnalyzers The async test method must have a non-void return type" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "The async test method must have a non-void return type.", + "markdown": "The async test method must have a non-void return type." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "error", "parameters": { - "suppressToolId": "IDE0303", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "NUnit1012", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", "codeQualityCategory": "Unspecified" } }, @@ -69249,6 +69249,40 @@ } ] }, + { + "id": "CA5378", + "shortDescription": { + "text": "RoslynAnalyzers Do not disable ServicePointManagerSecurityProtocols" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA5378", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "IDE0302", "shortDescription": { @@ -69284,19 +69318,19 @@ ] }, { - "id": "CA5378", + "id": "CA5377", "shortDescription": { - "text": "RoslynAnalyzers Do not disable ServicePointManagerSecurityProtocols" + "text": "RoslynAnalyzers Use Container Level Access Policy" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "No access policy identifier is specified, making tokens non-revocable.", + "markdown": "No access policy identifier is specified, making tokens non-revocable." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA5378", + "suppressToolId": "CA5377", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -69351,40 +69385,6 @@ } ] }, - { - "id": "CA5377", - "shortDescription": { - "text": "RoslynAnalyzers Use Container Level Access Policy" - }, - "fullDescription": { - "text": "No access policy identifier is specified, making tokens non-revocable.", - "markdown": "No access policy identifier is specified, making tokens non-revocable." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA5377", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "IDE0300", "shortDescription": { @@ -69463,7 +69463,7 @@ "markdown": "Member can be made protected [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBeProtected.Global.html)" }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { "suppressToolId": "MemberCanBeProtected.Global", @@ -73194,19 +73194,19 @@ ] }, { - "id": "RS1037", + "id": "CA1819", "shortDescription": { - "text": "RoslynAnalyzers Add \"CompilationEnd\" custom tag to compilation end diagnostic descriptor" + "text": "RoslynAnalyzers Properties should not return arrays" }, "fullDescription": { - "text": "'DiagnosticDescriptor' assigned to field is used to report a compilation end diagnostic, but the 'DiagnosticDescriptor' constructor used to initialize it does not pass in the required custom tag \"CompilationEnd\". See documentation for 'WellKnownDiagnosticTags.CompilationEnd' for details.", - "markdown": "'DiagnosticDescriptor' assigned to field is used to report a compilation end diagnostic, but the 'DiagnosticDescriptor' constructor used to initialize it does not pass in the required custom tag \"CompilationEnd\". See documentation for 'WellKnownDiagnosticTags.CompilationEnd' for details." + "text": "Arrays that are returned by properties are not write-protected, even when the property is read-only. To keep the array tamper-proof, the property must return a copy of the array. Typically, users will not understand the adverse performance implications of calling such a property.", + "markdown": "Arrays that are returned by properties are not write-protected, even when the property is read-only. To keep the array tamper-proof, the property must return a copy of the array. Typically, users will not understand the adverse performance implications of calling such a property." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "RS1037", + "suppressToolId": "CA1819", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -73228,19 +73228,19 @@ ] }, { - "id": "CA1819", + "id": "RS1037", "shortDescription": { - "text": "RoslynAnalyzers Properties should not return arrays" + "text": "RoslynAnalyzers Add \"CompilationEnd\" custom tag to compilation end diagnostic descriptor" }, "fullDescription": { - "text": "Arrays that are returned by properties are not write-protected, even when the property is read-only. To keep the array tamper-proof, the property must return a copy of the array. Typically, users will not understand the adverse performance implications of calling such a property.", - "markdown": "Arrays that are returned by properties are not write-protected, even when the property is read-only. To keep the array tamper-proof, the property must return a copy of the array. Typically, users will not understand the adverse performance implications of calling such a property." + "text": "'DiagnosticDescriptor' assigned to field is used to report a compilation end diagnostic, but the 'DiagnosticDescriptor' constructor used to initialize it does not pass in the required custom tag \"CompilationEnd\". See documentation for 'WellKnownDiagnosticTags.CompilationEnd' for details.", + "markdown": "'DiagnosticDescriptor' assigned to field is used to report a compilation end diagnostic, but the 'DiagnosticDescriptor' constructor used to initialize it does not pass in the required custom tag \"CompilationEnd\". See documentation for 'WellKnownDiagnosticTags.CompilationEnd' for details." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1819", + "suppressToolId": "RS1037", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -73364,21 +73364,21 @@ ] }, { - "id": "RS1036", + "id": "CA1816", "shortDescription": { - "text": "RoslynAnalyzers Specify analyzer banned API enforcement setting" + "text": "RoslynAnalyzers Dispose methods should call SuppressFinalize" }, "fullDescription": { - "text": "A project containing analyzers or source generators should specify the property 'true'.", - "markdown": "A project containing analyzers or source generators should specify the property 'true'." + "text": "A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual Basic).", + "markdown": "A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual Basic)." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "RS1036", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "CA1816", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -73398,21 +73398,21 @@ ] }, { - "id": "CA1816", + "id": "RS1036", "shortDescription": { - "text": "RoslynAnalyzers Dispose methods should call SuppressFinalize" + "text": "RoslynAnalyzers Specify analyzer banned API enforcement setting" }, "fullDescription": { - "text": "A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual Basic).", - "markdown": "A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual Basic)." + "text": "A project containing analyzers or source generators should specify the property 'true'.", + "markdown": "A project containing analyzers or source generators should specify the property 'true'." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "CA1816", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "RS1036", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -73500,19 +73500,19 @@ ] }, { - "id": "CA1814", + "id": "RS1034", "shortDescription": { - "text": "RoslynAnalyzers Prefer jagged arrays over multidimensional" + "text": "RoslynAnalyzers Prefer 'IsKind' for checking syntax kinds" }, "fullDescription": { - "text": "A jagged array is an array whose elements are arrays. The arrays that make up the elements can be of different sizes, leading to less wasted space for some sets of data.", - "markdown": "A jagged array is an array whose elements are arrays. The arrays that make up the elements can be of different sizes, leading to less wasted space for some sets of data." + "text": "Prefer 'syntax.IsKind(kind)' to 'syntax.Kind() == kind' when checking syntax kinds. Code using 'IsKind' is slightly more efficient at runtime, so consistent use of this form where applicable helps improve performance in complex analysis scenarios.", + "markdown": "Prefer 'syntax.IsKind(kind)' to 'syntax.Kind() == kind' when checking syntax kinds. Code using 'IsKind' is slightly more efficient at runtime, so consistent use of this form where applicable helps improve performance in complex analysis scenarios." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1814", + "suppressToolId": "RS1034", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -73534,19 +73534,19 @@ ] }, { - "id": "RS1034", + "id": "CA1814", "shortDescription": { - "text": "RoslynAnalyzers Prefer 'IsKind' for checking syntax kinds" + "text": "RoslynAnalyzers Prefer jagged arrays over multidimensional" }, "fullDescription": { - "text": "Prefer 'syntax.IsKind(kind)' to 'syntax.Kind() == kind' when checking syntax kinds. Code using 'IsKind' is slightly more efficient at runtime, so consistent use of this form where applicable helps improve performance in complex analysis scenarios.", - "markdown": "Prefer 'syntax.IsKind(kind)' to 'syntax.Kind() == kind' when checking syntax kinds. Code using 'IsKind' is slightly more efficient at runtime, so consistent use of this form where applicable helps improve performance in complex analysis scenarios." + "text": "A jagged array is an array whose elements are arrays. The arrays that make up the elements can be of different sizes, leading to less wasted space for some sets of data.", + "markdown": "A jagged array is an array whose elements are arrays. The arrays that make up the elements can be of different sizes, leading to less wasted space for some sets of data." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "RS1034", + "suppressToolId": "CA1814", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -80878,21 +80878,21 @@ ] }, { - "id": "RCS1073FadeOut", + "id": "CA2219", "shortDescription": { - "text": "RoslynAnalyzers Convert 'if' to 'return' statement" + "text": "RoslynAnalyzers Do not raise exceptions in finally clauses" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "When an exception is raised in a finally clause, the new exception hides the active exception. This makes the original error difficult to detect and debug.", + "markdown": "When an exception is raised in a finally clause, the new exception hides the active exception. This makes the original error difficult to detect and debug." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "RCS1073FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "CA2219", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -80912,21 +80912,21 @@ ] }, { - "id": "CA2219", + "id": "RCS1073FadeOut", "shortDescription": { - "text": "RoslynAnalyzers Do not raise exceptions in finally clauses" + "text": "RoslynAnalyzers Convert 'if' to 'return' statement" }, "fullDescription": { - "text": "When an exception is raised in a finally clause, the new exception hides the active exception. This makes the original error difficult to detect and debug.", - "markdown": "When an exception is raised in a finally clause, the new exception hides the active exception. This makes the original error difficult to detect and debug." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CA2219", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "RCS1073FadeOut", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -104075,7 +104075,7 @@ "markdown": "Auto-property has no write usages after initialization and can be made get-only [Learn more...](https://www.jetbrains.com/help/rider/AutoPropertyCanBeMadeGetOnly.Global.html)" }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { "suppressToolId": "AutoPropertyCanBeMadeGetOnly.Global", @@ -113382,21 +113382,21 @@ ] }, { - "id": "IDE0009", + "id": "CA2356", "shortDescription": { - "text": "RoslynAnalyzers Member access should be qualified." + "text": "RoslynAnalyzers Unsafe DataSet or DataTable type in web deserializable object graph" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "IDE0009", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "CA2356", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -113416,19 +113416,19 @@ ] }, { - "id": "CA2356", + "id": "CA1024", "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable type in web deserializable object graph" + "text": "RoslynAnalyzers Use properties where appropriate" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "A public or protected method has a name that starts with \"\"Get\"\", takes no parameters, and returns a value that is not an array. The method might be a good candidate to become a property.", + "markdown": "A public or protected method has a name that starts with \"\"Get\"\", takes no parameters, and returns a value that is not an array. The method might be a good candidate to become a property." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2356", + "suppressToolId": "CA1024", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -113484,21 +113484,21 @@ ] }, { - "id": "CA1024", + "id": "IDE0009", "shortDescription": { - "text": "RoslynAnalyzers Use properties where appropriate" + "text": "RoslynAnalyzers Member access should be qualified." }, "fullDescription": { - "text": "A public or protected method has a name that starts with \"\"Get\"\", takes no parameters, and returns a value that is not an array. The method might be a good candidate to become a property.", - "markdown": "A public or protected method has a name that starts with \"\"Get\"\", takes no parameters, and returns a value that is not an array. The method might be a good candidate to become a property." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA1024", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "IDE0009", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -113586,21 +113586,21 @@ ] }, { - "id": "IDE0007", + "id": "NUnit2044", "shortDescription": { - "text": "RoslynAnalyzers Use implicit type" + "text": "RoslynAnalyzers Non-delegate actual parameter" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "The actual argument needs to be evaluated by the Assert to catch any exceptions.", + "markdown": "The actual argument needs to be evaluated by the Assert to catch any exceptions." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "error", "parameters": { - "suppressToolId": "IDE0007", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "NUnit2044", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", "codeQualityCategory": "Unspecified" } }, @@ -113620,21 +113620,21 @@ ] }, { - "id": "NUnit2044", + "id": "IDE0007", "shortDescription": { - "text": "RoslynAnalyzers Non-delegate actual parameter" + "text": "RoslynAnalyzers Use implicit type" }, "fullDescription": { - "text": "The actual argument needs to be evaluated by the Assert to catch any exceptions.", - "markdown": "The actual argument needs to be evaluated by the Assert to catch any exceptions." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "error", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "NUnit2044", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", + "suppressToolId": "IDE0007", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -113722,21 +113722,21 @@ ] }, { - "id": "NUnit2045", + "id": "CA1021", "shortDescription": { - "text": "RoslynAnalyzers Use Assert.Multiple" + "text": "RoslynAnalyzers Avoid out parameters" }, "fullDescription": { - "text": "Hosting Asserts inside an Assert.Multiple allows detecting more than one failure.", - "markdown": "Hosting Asserts inside an Assert.Multiple allows detecting more than one failure." + "text": "Passing types by reference (using 'out' or 'ref') requires experience with pointers, understanding how value types and reference types differ, and handling methods with multiple return values. Also, the difference between 'out' and 'ref' parameters is not widely understood.", + "markdown": "Passing types by reference (using 'out' or 'ref') requires experience with pointers, understanding how value types and reference types differ, and handling methods with multiple return values. Also, the difference between 'out' and 'ref' parameters is not widely understood." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "NUnit2045", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA1021", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -113756,21 +113756,21 @@ ] }, { - "id": "CA1021", + "id": "NUnit2045", "shortDescription": { - "text": "RoslynAnalyzers Avoid out parameters" + "text": "RoslynAnalyzers Use Assert.Multiple" }, "fullDescription": { - "text": "Passing types by reference (using 'out' or 'ref') requires experience with pointers, understanding how value types and reference types differ, and handling methods with multiple return values. Also, the difference between 'out' and 'ref' parameters is not widely understood.", - "markdown": "Passing types by reference (using 'out' or 'ref') requires experience with pointers, understanding how value types and reference types differ, and handling methods with multiple return values. Also, the difference between 'out' and 'ref' parameters is not widely understood." + "text": "Hosting Asserts inside an Assert.Multiple allows detecting more than one failure.", + "markdown": "Hosting Asserts inside an Assert.Multiple allows detecting more than one failure." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA1021", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "NUnit2045", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -114232,9 +114232,9 @@ ] }, { - "id": "CA2361", + "id": "CA1019", "shortDescription": { - "text": "RoslynAnalyzers Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data" + "text": "RoslynAnalyzers Define accessors for attribute arguments" }, "fullDescription": { "text": "", @@ -114244,7 +114244,7 @@ "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2361", + "suppressToolId": "CA1019", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -114266,9 +114266,9 @@ ] }, { - "id": "CA1019", + "id": "CA2361", "shortDescription": { - "text": "RoslynAnalyzers Define accessors for attribute arguments" + "text": "RoslynAnalyzers Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data" }, "fullDescription": { "text": "", @@ -114278,7 +114278,7 @@ "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1019", + "suppressToolId": "CA2361", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -114300,21 +114300,21 @@ ] }, { - "id": "CA2362", + "id": "CA1018", "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks" + "text": "RoslynAnalyzers Mark attributes with AttributeUsageAttribute" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA2362", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "CA1018", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -114334,21 +114334,21 @@ ] }, { - "id": "CA1018", + "id": "CA2362", "shortDescription": { - "text": "RoslynAnalyzers Mark attributes with AttributeUsageAttribute" + "text": "RoslynAnalyzers Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "CA1018", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA2362", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -114402,21 +114402,21 @@ ] }, { - "id": "CA1017", + "id": "NUnit2042", "shortDescription": { - "text": "RoslynAnalyzers Mark assemblies with ComVisible" + "text": "RoslynAnalyzers Comparison constraint on object" }, "fullDescription": { - "text": "ComVisibleAttribute determines how COM clients access managed code. Good design dictates that assemblies explicitly indicate COM visibility. COM visibility can be set for the whole assembly and then overridden for individual types and type members. If this attribute is not present, the contents of the assembly are visible to COM clients.", - "markdown": "ComVisibleAttribute determines how COM clients access managed code. Good design dictates that assemblies explicitly indicate COM visibility. COM visibility can be set for the whole assembly and then overridden for individual types and type members. If this attribute is not present, the contents of the assembly are visible to COM clients." + "text": "The comparison constraint might fail as the actual and the expected value might not implement IComparable.", + "markdown": "The comparison constraint might fail as the actual and the expected value might not implement IComparable." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA1017", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "NUnit2042", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -114436,21 +114436,21 @@ ] }, { - "id": "NUnit2042", + "id": "CA1017", "shortDescription": { - "text": "RoslynAnalyzers Comparison constraint on object" + "text": "RoslynAnalyzers Mark assemblies with ComVisible" }, "fullDescription": { - "text": "The comparison constraint might fail as the actual and the expected value might not implement IComparable.", - "markdown": "The comparison constraint might fail as the actual and the expected value might not implement IComparable." + "text": "ComVisibleAttribute determines how COM clients access managed code. Good design dictates that assemblies explicitly indicate COM visibility. COM visibility can be set for the whole assembly and then overridden for individual types and type members. If this attribute is not present, the contents of the assembly are visible to COM clients.", + "markdown": "ComVisibleAttribute determines how COM clients access managed code. Good design dictates that assemblies explicitly indicate COM visibility. COM visibility can be set for the whole assembly and then overridden for individual types and type members. If this attribute is not present, the contents of the assembly are visible to COM clients." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "NUnit2042", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA1017", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -114504,21 +114504,21 @@ ] }, { - "id": "IDE0004", + "id": "NUnit2043", "shortDescription": { - "text": "RoslynAnalyzers Remove Unnecessary Cast" + "text": "RoslynAnalyzers Use ComparisonConstraint for better assertion messages in case of failure" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Using ComparisonConstraint will lead to better assertion messages in case of failure.", + "markdown": "Using ComparisonConstraint will lead to better assertion messages in case of failure." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "IDE0004", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "NUnit2043", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -114538,21 +114538,21 @@ ] }, { - "id": "NUnit2043", + "id": "IDE0004", "shortDescription": { - "text": "RoslynAnalyzers Use ComparisonConstraint for better assertion messages in case of failure" + "text": "RoslynAnalyzers Remove Unnecessary Cast" }, "fullDescription": { - "text": "Using ComparisonConstraint will lead to better assertion messages in case of failure.", - "markdown": "Using ComparisonConstraint will lead to better assertion messages in case of failure." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "NUnit2043", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "IDE0004", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -114708,21 +114708,21 @@ ] }, { - "id": "CA1014", + "id": "NUnit2041", "shortDescription": { - "text": "RoslynAnalyzers Mark assemblies with CLSCompliant" + "text": "RoslynAnalyzers Incompatible types for comparison constraint" }, "fullDescription": { - "text": "The Common Language Specification (CLS) defines naming restrictions, data types, and rules to which assemblies must conform if they will be used across programming languages. Good design dictates that all assemblies explicitly indicate CLS compliance by using CLSCompliantAttribute . If this attribute is not present on an assembly, the assembly is not compliant.", - "markdown": "The Common Language Specification (CLS) defines naming restrictions, data types, and rules to which assemblies must conform if they will be used across programming languages. Good design dictates that all assemblies explicitly indicate CLS compliance by using CLSCompliantAttribute . If this attribute is not present on an assembly, the assembly is not compliant." + "text": "The comparison constraint always fails as the actual and the expected value are not comparable.", + "markdown": "The comparison constraint always fails as the actual and the expected value are not comparable." }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "CA1014", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "NUnit2041", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", "codeQualityCategory": "Unspecified" } }, @@ -114742,21 +114742,21 @@ ] }, { - "id": "NUnit2041", + "id": "CA1014", "shortDescription": { - "text": "RoslynAnalyzers Incompatible types for comparison constraint" + "text": "RoslynAnalyzers Mark assemblies with CLSCompliant" }, "fullDescription": { - "text": "The comparison constraint always fails as the actual and the expected value are not comparable.", - "markdown": "The comparison constraint always fails as the actual and the expected value are not comparable." + "text": "The Common Language Specification (CLS) defines naming restrictions, data types, and rules to which assemblies must conform if they will be used across programming languages. Good design dictates that all assemblies explicitly indicate CLS compliance by using CLSCompliantAttribute . If this attribute is not present on an assembly, the assembly is not compliant.", + "markdown": "The Common Language Specification (CLS) defines naming restrictions, data types, and rules to which assemblies must conform if they will be used across programming languages. Good design dictates that all assemblies explicitly indicate CLS compliance by using CLSCompliantAttribute . If this attribute is not present on an assembly, the assembly is not compliant." }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "warning", "parameters": { - "suppressToolId": "NUnit2041", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", + "suppressToolId": "CA1014", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -114810,21 +114810,21 @@ ] }, { - "id": "IDE0019", + "id": "NUnit2036", "shortDescription": { - "text": "RoslynAnalyzers Use pattern matching" + "text": "RoslynAnalyzers Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, ClassicAssert.IsNotEmpty(collection).", + "markdown": "Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, ClassicAssert.IsNotEmpty(collection)." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "IDE0019", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "NUnit2036", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -114878,21 +114878,21 @@ ] }, { - "id": "NUnit2036", + "id": "IDE0019", "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)" + "text": "RoslynAnalyzers Use pattern matching" }, "fullDescription": { - "text": "Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, ClassicAssert.IsNotEmpty(collection).", - "markdown": "Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, ClassicAssert.IsNotEmpty(collection)." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "NUnit2036", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "IDE0019", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -115490,21 +115490,21 @@ ] }, { - "id": "IDE0010", + "id": "CA1008", "shortDescription": { - "text": "RoslynAnalyzers Add missing cases" + "text": "RoslynAnalyzers Enums should have zero value" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "The default value of an uninitialized enumeration, just as other value types, is zero. A nonflags-attributed enumeration should define a member by using the value of zero so that the default value is a valid value of the enumeration. If an enumeration that has the FlagsAttribute attribute applied defines a zero-valued member, its name should be \"\"None\"\" to indicate that no values have been set in the enumeration.", + "markdown": "The default value of an uninitialized enumeration, just as other value types, is zero. A nonflags-attributed enumeration should define a member by using the value of zero so that the default value is a valid value of the enumeration. If an enumeration that has the FlagsAttribute attribute applied defines a zero-valued member, its name should be \"\"None\"\" to indicate that no values have been set in the enumeration." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "IDE0010", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "CA1008", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -115524,21 +115524,21 @@ ] }, { - "id": "CA1008", + "id": "IDE0010", "shortDescription": { - "text": "RoslynAnalyzers Enums should have zero value" + "text": "RoslynAnalyzers Add missing cases" }, "fullDescription": { - "text": "The default value of an uninitialized enumeration, just as other value types, is zero. A nonflags-attributed enumeration should define a member by using the value of zero so that the default value is a valid value of the enumeration. If an enumeration that has the FlagsAttribute attribute applied defines a zero-valued member, its name should be \"\"None\"\" to indicate that no values have been set in the enumeration.", - "markdown": "The default value of an uninitialized enumeration, just as other value types, is zero. A nonflags-attributed enumeration should define a member by using the value of zero so that the default value is a valid value of the enumeration. If an enumeration that has the FlagsAttribute attribute applied defines a zero-valued member, its name should be \"\"None\"\" to indicate that no values have been set in the enumeration." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA1008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "IDE0010", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -115558,21 +115558,21 @@ ] }, { - "id": "IDE0016", + "id": "CA5400", "shortDescription": { - "text": "RoslynAnalyzers Use 'throw' expression" + "text": "RoslynAnalyzers Ensure HttpClient certificate revocation list check is not disabled" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Using HttpClient without providing a platform specific handler (WinHttpHandler or CurlHandler or HttpClientHandler) where the CheckCertificateRevocationList property is set to true, will allow revoked certificates to be accepted by the HttpClient as valid.", + "markdown": "Using HttpClient without providing a platform specific handler (WinHttpHandler or CurlHandler or HttpClientHandler) where the CheckCertificateRevocationList property is set to true, will allow revoked certificates to be accepted by the HttpClient as valid." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "IDE0016", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "CA5400", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -115592,21 +115592,21 @@ ] }, { - "id": "CA5400", + "id": "IDE0016", "shortDescription": { - "text": "RoslynAnalyzers Ensure HttpClient certificate revocation list check is not disabled" + "text": "RoslynAnalyzers Use 'throw' expression" }, "fullDescription": { - "text": "Using HttpClient without providing a platform specific handler (WinHttpHandler or CurlHandler or HttpClientHandler) where the CheckCertificateRevocationList property is set to true, will allow revoked certificates to be accepted by the HttpClient as valid.", - "markdown": "Using HttpClient without providing a platform specific handler (WinHttpHandler or CurlHandler or HttpClientHandler) where the CheckCertificateRevocationList property is set to true, will allow revoked certificates to be accepted by the HttpClient as valid." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA5400", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "IDE0016", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -115796,21 +115796,21 @@ ] }, { - "id": "CA1003", + "id": "NUnit2030", "shortDescription": { - "text": "RoslynAnalyzers Use generic event handler instances" + "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)" }, "fullDescription": { - "text": "A type contains a delegate that returns void, whose signature contains two parameters (the first an object and the second a type that is assignable to EventArgs), and the containing assembly targets Microsoft .NET Framework?2.0.", - "markdown": "A type contains a delegate that returns void, whose signature contains two parameters (the first an object and the second a type that is assignable to EventArgs), and the containing assembly targets Microsoft .NET Framework?2.0." + "text": "Consider using the constraint model, Assert.That(actual, Is.LessThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.LessOrEqual(actual, expected).", + "markdown": "Consider using the constraint model, Assert.That(actual, Is.LessThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.LessOrEqual(actual, expected)." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA1003", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "NUnit2030", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -115830,19 +115830,19 @@ ] }, { - "id": "CA5401", + "id": "CA1003", "shortDescription": { - "text": "RoslynAnalyzers Do not use CreateEncryptor with non-default IV" + "text": "RoslynAnalyzers Use generic event handler instances" }, "fullDescription": { - "text": "Symmetric encryption should always use a non-repeatable initialization vector to prevent dictionary attacks.", - "markdown": "Symmetric encryption should always use a non-repeatable initialization vector to prevent dictionary attacks." + "text": "A type contains a delegate that returns void, whose signature contains two parameters (the first an object and the second a type that is assignable to EventArgs), and the containing assembly targets Microsoft .NET Framework?2.0.", + "markdown": "A type contains a delegate that returns void, whose signature contains two parameters (the first an object and the second a type that is assignable to EventArgs), and the containing assembly targets Microsoft .NET Framework?2.0." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA5401", + "suppressToolId": "CA1003", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -115864,21 +115864,21 @@ ] }, { - "id": "NUnit2030", + "id": "CA5401", "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)" + "text": "RoslynAnalyzers Do not use CreateEncryptor with non-default IV" }, "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.LessThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.LessOrEqual(actual, expected).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.LessThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.LessOrEqual(actual, expected)." + "text": "Symmetric encryption should always use a non-repeatable initialization vector to prevent dictionary attacks.", + "markdown": "Symmetric encryption should always use a non-repeatable initialization vector to prevent dictionary attacks." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "NUnit2030", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA5401", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -116034,19 +116034,19 @@ ] }, { - "id": "IDE0029", + "id": "CA1000", "shortDescription": { - "text": "RoslynAnalyzers Use coalesce expression" + "text": "RoslynAnalyzers Do not declare static members on generic types" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "When a static member of a generic type is called, the type argument must be specified for the type. When a generic instance member that does not support inference is called, the type argument must be specified for the member. In these two cases, the syntax for specifying the type argument is different and easily confused.", + "markdown": "When a static member of a generic type is called, the type argument must be specified for the type. When a generic instance member that does not support inference is called, the type argument must be specified for the member. In these two cases, the syntax for specifying the type argument is different and easily confused." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "IDE0029", + "suppressToolId": "CA1000", "ideaSeverity": "INFORMATION", "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" @@ -116068,19 +116068,19 @@ ] }, { - "id": "CA1000", + "id": "IDE0029", "shortDescription": { - "text": "RoslynAnalyzers Do not declare static members on generic types" + "text": "RoslynAnalyzers Use coalesce expression" }, "fullDescription": { - "text": "When a static member of a generic type is called, the type argument must be specified for the type. When a generic instance member that does not support inference is called, the type argument must be specified for the member. In these two cases, the syntax for specifying the type argument is different and easily confused.", - "markdown": "When a static member of a generic type is called, the type argument must be specified for the type. When a generic instance member that does not support inference is called, the type argument must be specified for the member. In these two cases, the syntax for specifying the type argument is different and easily confused." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CA1000", + "suppressToolId": "IDE0029", "ideaSeverity": "INFORMATION", "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" @@ -116102,21 +116102,21 @@ ] }, { - "id": "IDE0028", + "id": "CA5405", "shortDescription": { - "text": "RoslynAnalyzers Simplify collection initialization" + "text": "RoslynAnalyzers Do not always skip token validation in delegates" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "By setting critical TokenValidationParameter validation delegates to true, important authentication safeguards are disabled which can lead to tokens from any issuer or expired tokens being wrongly validated.", + "markdown": "By setting critical TokenValidationParameter validation delegates to true, important authentication safeguards are disabled which can lead to tokens from any issuer or expired tokens being wrongly validated." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "IDE0028", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "CA5405", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -116136,21 +116136,21 @@ ] }, { - "id": "CA5405", + "id": "IDE0028", "shortDescription": { - "text": "RoslynAnalyzers Do not always skip token validation in delegates" + "text": "RoslynAnalyzers Simplify collection initialization" }, "fullDescription": { - "text": "By setting critical TokenValidationParameter validation delegates to true, important authentication safeguards are disabled which can lead to tokens from any issuer or expired tokens being wrongly validated.", - "markdown": "By setting critical TokenValidationParameter validation delegates to true, important authentication safeguards are disabled which can lead to tokens from any issuer or expired tokens being wrongly validated." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA5405", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "IDE0028", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -116481,8 +116481,8 @@ "text": "RoslynAnalyzers Add 'GeneratedComClassAttribute' to enable passing objects of this type to COM" }, "fullDescription": { - "text": "This type implements at least one type with the 'GeneratedComInterfaceAttribute' attribute or its base type has the 'GeneratedComClassAttribute' attribute. Add the 'GeneratedComClassAttribute' to enable passing this type to COM and exposing the COM interfaces for the types with the 'GeneratedComInterfaceAttribute' from objects of this type.", - "markdown": "This type implements at least one type with the 'GeneratedComInterfaceAttribute' attribute or its base type has the 'GeneratedComClassAttribute' attribute. Add the 'GeneratedComClassAttribute' to enable passing this type to COM and exposing the COM interfaces for the types with the 'GeneratedComInterfaceAttribute' from objects of this type." + "text": "This type implements at least one type with the 'GeneratedComInterfaceAttribute' attribute. Add the 'GeneratedComClassAttribute' to enable passing this type to COM and exposing the COM interfaces for the types with the 'GeneratedComInterfaceAttribute' from objects of this type.", + "markdown": "This type implements at least one type with the 'GeneratedComInterfaceAttribute' attribute. Add the 'GeneratedComClassAttribute' to enable passing this type to COM and exposing the COM interfaces for the types with the 'GeneratedComInterfaceAttribute' from objects of this type." }, "defaultConfiguration": { "enabled": false, @@ -117632,21 +117632,21 @@ ] }, { - "id": "IDE0033", + "id": "NUnit2050", "shortDescription": { - "text": "RoslynAnalyzers Use explicitly provided tuple name" + "text": "RoslynAnalyzers NUnit 4 no longer supports string.Format specification" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Replace format specification with interpolated string.", + "markdown": "Replace format specification with interpolated string." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "error", "parameters": { - "suppressToolId": "IDE0033", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "NUnit2050", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", "codeQualityCategory": "Unspecified" } }, @@ -117666,21 +117666,21 @@ ] }, { - "id": "NUnit2050", + "id": "IDE0033", "shortDescription": { - "text": "RoslynAnalyzers NUnit 4 no longer supports string.Format specification" + "text": "RoslynAnalyzers Use explicitly provided tuple name" }, "fullDescription": { - "text": "Replace format specification with interpolated string.", - "markdown": "Replace format specification with interpolated string." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "error", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "NUnit2050", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", + "suppressToolId": "IDE0033", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -117870,21 +117870,21 @@ ] }, { - "id": "IDE0037", + "id": "NUnit2054", "shortDescription": { - "text": "RoslynAnalyzers Use inferred member name" + "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.Not.AssignableFrom(expected)) instead of ClassicAssert.IsNotAssignableFrom(expected, actual)" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Consider using the constraint model, Assert.That(actual, Is.Not.AssignableFrom(expected)), instead of the classic model, ClassicAssert.IsNotAssignableFrom(expected, actual).", + "markdown": "Consider using the constraint model, Assert.That(actual, Is.Not.AssignableFrom(expected)), instead of the classic model, ClassicAssert.IsNotAssignableFrom(expected, actual)." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "IDE0037", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "NUnit2054", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -117904,21 +117904,21 @@ ] }, { - "id": "NUnit2054", + "id": "IDE0037", "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(actual, Is.Not.AssignableFrom(expected)) instead of ClassicAssert.IsNotAssignableFrom(expected, actual)" + "text": "RoslynAnalyzers Use inferred member name" }, "fullDescription": { - "text": "Consider using the constraint model, Assert.That(actual, Is.Not.AssignableFrom(expected)), instead of the classic model, ClassicAssert.IsNotAssignableFrom(expected, actual).", - "markdown": "Consider using the constraint model, Assert.That(actual, Is.Not.AssignableFrom(expected)), instead of the classic model, ClassicAssert.IsNotAssignableFrom(expected, actual)." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "NUnit2054", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "IDE0037", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -117938,21 +117938,21 @@ ] }, { - "id": "NUnit2051", + "id": "IDE0036", "shortDescription": { - "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Positive) instead of ClassicAssert.Positive(expr)" + "text": "RoslynAnalyzers Order modifiers" }, "fullDescription": { - "text": "Consider using the constraint model, Assert.That(expr, Is.Positive), instead of the classic model, ClassicAssert.Positive(expr).", - "markdown": "Consider using the constraint model, Assert.That(expr, Is.Positive), instead of the classic model, ClassicAssert.Positive(expr)." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "NUnit2051", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "IDE0036", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -117972,21 +117972,21 @@ ] }, { - "id": "IDE0036", + "id": "NUnit2051", "shortDescription": { - "text": "RoslynAnalyzers Order modifiers" + "text": "RoslynAnalyzers Consider using Assert.That(expr, Is.Positive) instead of ClassicAssert.Positive(expr)" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "Consider using the constraint model, Assert.That(expr, Is.Positive), instead of the classic model, ClassicAssert.Positive(expr).", + "markdown": "Consider using the constraint model, Assert.That(expr, Is.Positive), instead of the classic model, ClassicAssert.Positive(expr)." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "IDE0036", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "NUnit2051", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -124296,21 +124296,21 @@ ] }, { - "id": "CA1831", + "id": "NUnit2020", "shortDescription": { - "text": "RoslynAnalyzers Use AsSpan or AsMemory instead of Range-based indexers when appropriate" + "text": "RoslynAnalyzers Incompatible types for SameAs constraint" }, "fullDescription": { - "text": "The Range-based indexer on string values produces a copy of requested portion of the string. This copy is usually unnecessary when it is implicitly used as a ReadOnlySpan or ReadOnlyMemory value. Use the AsSpan method to avoid the unnecessary copy.", - "markdown": "The Range-based indexer on string values produces a copy of requested portion of the string. This copy is usually unnecessary when it is implicitly used as a ReadOnlySpan or ReadOnlyMemory value. Use the AsSpan method to avoid the unnecessary copy." + "text": "The SameAs constraint always fails because the actual and expected values have mutually exclusive types.", + "markdown": "The SameAs constraint always fails because the actual and expected values have mutually exclusive types." }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "CA1831", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "NUnit2020", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", "codeQualityCategory": "Unspecified" } }, @@ -124330,21 +124330,21 @@ ] }, { - "id": "NUnit2020", + "id": "CA1831", "shortDescription": { - "text": "RoslynAnalyzers Incompatible types for SameAs constraint" + "text": "RoslynAnalyzers Use AsSpan or AsMemory instead of Range-based indexers when appropriate" }, "fullDescription": { - "text": "The SameAs constraint always fails because the actual and expected values have mutually exclusive types.", - "markdown": "The SameAs constraint always fails because the actual and expected values have mutually exclusive types." + "text": "The Range-based indexer on string values produces a copy of requested portion of the string. This copy is usually unnecessary when it is implicitly used as a ReadOnlySpan or ReadOnlyMemory value. Use the AsSpan method to avoid the unnecessary copy.", + "markdown": "The Range-based indexer on string values produces a copy of requested portion of the string. This copy is usually unnecessary when it is implicitly used as a ReadOnlySpan or ReadOnlyMemory value. Use the AsSpan method to avoid the unnecessary copy." }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "warning", "parameters": { - "suppressToolId": "NUnit2020", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", + "suppressToolId": "CA1831", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -124397,40 +124397,6 @@ } ] }, - { - "id": "NUnit2021", - "shortDescription": { - "text": "RoslynAnalyzers Incompatible types for EqualTo constraint" - }, - "fullDescription": { - "text": "The EqualTo constraint always fails as the actual and the expected value cannot be equal.", - "markdown": "The EqualTo constraint always fails as the actual and the expected value cannot be equal." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "NUnit2021", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CA1830", "shortDescription": { @@ -124466,21 +124432,21 @@ ] }, { - "id": "NUnit2013", + "id": "NUnit2021", "shortDescription": { - "text": "RoslynAnalyzers Use EndsWithConstraint for better assertion messages in case of failure" + "text": "RoslynAnalyzers Incompatible types for EqualTo constraint" }, "fullDescription": { - "text": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure.", - "markdown": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure." + "text": "The EqualTo constraint always fails as the actual and the expected value cannot be equal.", + "markdown": "The EqualTo constraint always fails as the actual and the expected value cannot be equal." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "error", "parameters": { - "suppressToolId": "NUnit2013", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "NUnit2021", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", "codeQualityCategory": "Unspecified" } }, @@ -124500,19 +124466,53 @@ ] }, { - "id": "NUnit2014", + "id": "NUnit2013", "shortDescription": { - "text": "RoslynAnalyzers Use SomeItemsConstraint for better assertion messages in case of failure" + "text": "RoslynAnalyzers Use EndsWithConstraint for better assertion messages in case of failure" }, "fullDescription": { - "text": "Using SomeItemsConstraint will lead to better assertion messages in case of failure.", - "markdown": "Using SomeItemsConstraint will lead to better assertion messages in case of failure." + "text": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure.", + "markdown": "Using constraints instead of boolean methods will lead to better assertion messages in case of failure." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "NUnit2014", + "suppressToolId": "NUnit2013", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "NUnit2014", + "shortDescription": { + "text": "RoslynAnalyzers Use SomeItemsConstraint for better assertion messages in case of failure" + }, + "fullDescription": { + "text": "Using SomeItemsConstraint will lead to better assertion messages in case of failure.", + "markdown": "Using SomeItemsConstraint will lead to better assertion messages in case of failure." + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "NUnit2014", "ideaSeverity": "TYPO", "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" @@ -130178,19 +130178,19 @@ ] }, { - "id": "SYSLIB1045", + "id": "RCS0023", "shortDescription": { - "text": "RoslynAnalyzers Convert to 'GeneratedRegexAttribute'." + "text": "RoslynAnalyzers Format type declaration's braces" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { - "suppressToolId": "SYSLIB1045", + "suppressToolId": "RCS0023", "ideaSeverity": "TYPO", "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" @@ -130212,19 +130212,19 @@ ] }, { - "id": "RCS0023", + "id": "SYSLIB1045", "shortDescription": { - "text": "RoslynAnalyzers Format type declaration's braces" + "text": "RoslynAnalyzers Convert to 'GeneratedRegexAttribute'." }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "RCS0023", + "suppressToolId": "SYSLIB1045", "ideaSeverity": "TYPO", "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" @@ -131334,21 +131334,21 @@ ] }, { - "id": "CA2305", + "id": "RCS0052", "shortDescription": { - "text": "RoslynAnalyzers Do not use insecure deserializer LosFormatter" + "text": "RoslynAnalyzers Place new line after/before equals token" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA2305", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "RCS0052", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -131368,21 +131368,21 @@ ] }, { - "id": "RCS0052", + "id": "CA2305", "shortDescription": { - "text": "RoslynAnalyzers Place new line after/before equals token" + "text": "RoslynAnalyzers Do not use insecure deserializer LosFormatter" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "RCS0052", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA2305", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -132354,19 +132354,19 @@ ] }, { - "id": "CA2315", + "id": "CA1065", "shortDescription": { - "text": "RoslynAnalyzers Do not use insecure deserializer ObjectStateFormatter" + "text": "RoslynAnalyzers Do not raise exceptions in unexpected locations" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "A method that is not expected to throw exceptions throws an exception.", + "markdown": "A method that is not expected to throw exceptions throws an exception." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2315", + "suppressToolId": "CA1065", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -132388,19 +132388,19 @@ ] }, { - "id": "CA1065", + "id": "CA2315", "shortDescription": { - "text": "RoslynAnalyzers Do not raise exceptions in unexpected locations" + "text": "RoslynAnalyzers Do not use insecure deserializer ObjectStateFormatter" }, "fullDescription": { - "text": "A method that is not expected to throw exceptions throws an exception.", - "markdown": "A method that is not expected to throw exceptions throws an exception." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1065", + "suppressToolId": "CA2315", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -133306,21 +133306,21 @@ ] }, { - "id": "CA2321", + "id": "IDE0047", "shortDescription": { - "text": "RoslynAnalyzers Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver" + "text": "RoslynAnalyzers Remove unnecessary parentheses" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA2321", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "IDE0047", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -133340,21 +133340,21 @@ ] }, { - "id": "IDE0047", + "id": "CA2321", "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary parentheses" + "text": "RoslynAnalyzers Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "IDE0047", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "CA2321", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -133408,21 +133408,21 @@ ] }, { - "id": "IDE0046", + "id": "CA2322", "shortDescription": { - "text": "RoslynAnalyzers Convert to conditional expression" + "text": "RoslynAnalyzers Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing" }, "fullDescription": { "text": "", "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "IDE0046", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "CA2322", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -133442,21 +133442,21 @@ ] }, { - "id": "CA1058", + "id": "IDE0046", "shortDescription": { - "text": "RoslynAnalyzers Types should not extend certain base types" + "text": "RoslynAnalyzers Convert to conditional expression" }, "fullDescription": { - "text": "An externally visible type extends certain base types. Use one of the alternatives.", - "markdown": "An externally visible type extends certain base types. Use one of the alternatives." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA1058", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "IDE0046", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -133476,19 +133476,19 @@ ] }, { - "id": "CA2322", + "id": "CA1058", "shortDescription": { - "text": "RoslynAnalyzers Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing" + "text": "RoslynAnalyzers Types should not extend certain base types" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "An externally visible type extends certain base types. Use one of the alternatives.", + "markdown": "An externally visible type extends certain base types. Use one of the alternatives." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2322", + "suppressToolId": "CA1058", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -133748,9 +133748,9 @@ ] }, { - "id": "CA2328", + "id": "CA1052", "shortDescription": { - "text": "RoslynAnalyzers Ensure that JsonSerializerSettings are secure" + "text": "RoslynAnalyzers Static holder types should be Static or NotInheritable" }, "fullDescription": { "text": "", @@ -133760,7 +133760,7 @@ "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2328", + "suppressToolId": "CA1052", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -133782,9 +133782,9 @@ ] }, { - "id": "CA1052", + "id": "CA2328", "shortDescription": { - "text": "RoslynAnalyzers Static holder types should be Static or NotInheritable" + "text": "RoslynAnalyzers Ensure that JsonSerializerSettings are secure" }, "fullDescription": { "text": "", @@ -133794,7 +133794,7 @@ "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1052", + "suppressToolId": "CA2328", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -133816,21 +133816,21 @@ ] }, { - "id": "CA2329", + "id": "CA1051", "shortDescription": { - "text": "RoslynAnalyzers Do not deserialize with JsonSerializer using an insecure configuration" + "text": "RoslynAnalyzers Do not declare visible instance fields" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties.", + "markdown": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties." }, "defaultConfiguration": { - "enabled": true, - "level": "warning", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "CA2329", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "suppressToolId": "CA1051", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -133850,21 +133850,21 @@ ] }, { - "id": "CA1051", + "id": "CA2329", "shortDescription": { - "text": "RoslynAnalyzers Do not declare visible instance fields" + "text": "RoslynAnalyzers Do not deserialize with JsonSerializer using an insecure configuration" }, "fullDescription": { - "text": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties.", - "markdown": "The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "warning", "parameters": { - "suppressToolId": "CA1051", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "CA2329", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" } }, @@ -135652,21 +135652,21 @@ ] }, { - "id": "CA1036", + "id": "RCS0013", "shortDescription": { - "text": "RoslynAnalyzers Override methods on comparable types" + "text": "RoslynAnalyzers Add blank line between single-line declarations of different kind" }, "fullDescription": { - "text": "A public or protected type implements the System.IComparable interface. It does not override Object.Equals nor does it overload the language-specific operator for equality, inequality, less than, less than or equal, greater than or greater than or equal.", - "markdown": "A public or protected type implements the System.IComparable interface. It does not override Object.Equals nor does it overload the language-specific operator for equality, inequality, less than, less than or equal, greater than or greater than or equal." + "text": "", + "markdown": "" }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "CA1036", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "RCS0013", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -135686,21 +135686,21 @@ ] }, { - "id": "RCS0013", + "id": "CA1036", "shortDescription": { - "text": "RoslynAnalyzers Add blank line between single-line declarations of different kind" + "text": "RoslynAnalyzers Override methods on comparable types" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "A public or protected type implements the System.IComparable interface. It does not override Object.Equals nor does it overload the language-specific operator for equality, inequality, less than, less than or equal, greater than or greater than or equal.", + "markdown": "A public or protected type implements the System.IComparable interface. It does not override Object.Equals nor does it overload the language-specific operator for equality, inequality, less than, less than or equal, greater than or greater than or equal." }, "defaultConfiguration": { "enabled": false, "level": "note", "parameters": { - "suppressToolId": "RCS0013", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "CA1036", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -136162,9 +136162,9 @@ ] }, { - "id": "RCS0009", + "id": "IDE0070", "shortDescription": { - "text": "RoslynAnalyzers Add blank line between declaration and documentation comment" + "text": "RoslynAnalyzers Use 'System.HashCode'" }, "fullDescription": { "text": "", @@ -136174,9 +136174,9 @@ "enabled": false, "level": "note", "parameters": { - "suppressToolId": "RCS0009", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "IDE0070", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" } }, @@ -136196,9 +136196,9 @@ ] }, { - "id": "IDE0070", + "id": "RCS0009", "shortDescription": { - "text": "RoslynAnalyzers Use 'System.HashCode'" + "text": "RoslynAnalyzers Add blank line between declaration and documentation comment" }, "fullDescription": { "text": "", @@ -136208,9 +136208,9 @@ "enabled": false, "level": "note", "parameters": { - "suppressToolId": "IDE0070", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", + "suppressToolId": "RCS0009", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -136332,21 +136332,21 @@ ] }, { - "id": "SYSLIB1061", + "id": "RCS0007", "shortDescription": { - "text": "RoslynAnalyzers Marshaller type has incompatible method signatures" + "text": "RoslynAnalyzers Add blank line between accessors" }, "fullDescription": { - "text": "The return type of 'GetPinnableReference' (after accounting for 'ref') must be blittable.", - "markdown": "The return type of 'GetPinnableReference' (after accounting for 'ref') must be blittable." + "text": "", + "markdown": "" }, "defaultConfiguration": { - "enabled": true, - "level": "error", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "SYSLIB1061", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", + "suppressToolId": "RCS0007", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" } }, @@ -136366,21 +136366,21 @@ ] }, { - "id": "RCS0007", + "id": "SYSLIB1061", "shortDescription": { - "text": "RoslynAnalyzers Add blank line between accessors" + "text": "RoslynAnalyzers Marshaller type has incompatible method signatures" }, "fullDescription": { - "text": "", - "markdown": "" + "text": "The return type of 'GetPinnableReference' (after accounting for 'ref') must be blittable.", + "markdown": "The return type of 'GetPinnableReference' (after accounting for 'ref') must be blittable." }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "error", "parameters": { - "suppressToolId": "RCS0007", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", + "suppressToolId": "SYSLIB1061", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical", "codeQualityCategory": "Unspecified" } }, @@ -136807,6 +136807,40 @@ } ] }, + { + "id": "IDE0078", + "shortDescription": { + "text": "RoslynAnalyzers Use pattern matching" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "IDE0078", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "RCS0001", "shortDescription": { @@ -136842,9 +136876,9 @@ ] }, { - "id": "IDE0078", + "id": "IDE0077", "shortDescription": { - "text": "RoslynAnalyzers Use pattern matching" + "text": "RoslynAnalyzers Avoid legacy format target in 'SuppressMessageAttribute'" }, "fullDescription": { "text": "", @@ -136854,7 +136888,143 @@ "enabled": false, "level": "note", "parameters": { - "suppressToolId": "IDE0078", + "suppressToolId": "IDE0077", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IDE0076", + "shortDescription": { + "text": "RoslynAnalyzers Invalid global 'SuppressMessageAttribute'" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "IDE0076", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA2350", + "shortDescription": { + "text": "RoslynAnalyzers Do not use DataTable.ReadXml() with untrusted data" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA2350", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CppClangTidyCppcoreguidelinesProTypeConstCast", + "shortDescription": { + "text": "cppcoreguidelines-pro-type-const-cast clang-tidy check" + }, + "fullDescription": { + "text": "cppcoreguidelines-pro-type-const-cast clang-tidy check · Learn more", + "markdown": "cppcoreguidelines-pro-type-const-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-const-cast.html)" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeConstCast", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C_C++/Clang-Tidy Checks", + "index": 8, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "IDE0075", + "shortDescription": { + "text": "RoslynAnalyzers Simplify conditional expression" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": false, + "level": "note", + "parameters": { + "suppressToolId": "IDE0075", "ideaSeverity": "INFORMATION", "qodanaSeverity": "Info", "codeQualityCategory": "Unspecified" @@ -136876,9 +137046,77 @@ ] }, { - "id": "IDE0077", + "id": "CA2351", "shortDescription": { - "text": "RoslynAnalyzers Avoid legacy format target in 'SuppressMessageAttribute'" + "text": "RoslynAnalyzers Do not use DataSet.ReadXml() with untrusted data" + }, + "fullDescription": { + "text": "", + "markdown": "" + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA2351", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CA1028", + "shortDescription": { + "text": "RoslynAnalyzers Enum Storage should be Int32" + }, + "fullDescription": { + "text": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios.", + "markdown": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "CA1028", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", + "codeQualityCategory": "Unspecified" + } + }, + "relationships": [ + { + "target": { + "id": "C#/Roslyn Analyzers", + "index": 35, + "toolComponent": { + "name": "QDNET" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "RCS0005", + "shortDescription": { + "text": "RoslynAnalyzers Add blank line before #endregion" }, "fullDescription": { "text": "", @@ -136888,7 +137126,7 @@ "enabled": false, "level": "note", "parameters": { - "suppressToolId": "IDE0077", + "suppressToolId": "RCS0005", "ideaSeverity": "TYPO", "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" @@ -136910,111 +137148,9 @@ ] }, { - "id": "IDE0076", - "shortDescription": { - "text": "RoslynAnalyzers Invalid global 'SuppressMessageAttribute'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0076", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2350", - "shortDescription": { - "text": "RoslynAnalyzers Do not use DataTable.ReadXml() with untrusted data" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2350", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProTypeConstCast", - "shortDescription": { - "text": "cppcoreguidelines-pro-type-const-cast clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-type-const-cast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-const-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-const-cast.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeConstCast", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA2351", + "id": "CA2352", "shortDescription": { - "text": "RoslynAnalyzers Do not use DataSet.ReadXml() with untrusted data" + "text": "RoslynAnalyzers Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks" }, "fullDescription": { "text": "", @@ -137024,7 +137160,7 @@ "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2351", + "suppressToolId": "CA2352", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -137046,53 +137182,19 @@ ] }, { - "id": "IDE0075", - "shortDescription": { - "text": "RoslynAnalyzers Simplify conditional expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IDE0075", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1028", + "id": "CA1027", "shortDescription": { - "text": "RoslynAnalyzers Enum Storage should be Int32" + "text": "RoslynAnalyzers Mark enums with FlagsAttribute" }, "fullDescription": { - "text": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios.", - "markdown": "An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios." + "text": "An enumeration is a value type that defines a set of related named constants. Apply FlagsAttribute to an enumeration when its named constants can be meaningfully combined.", + "markdown": "An enumeration is a value type that defines a set of related named constants. Apply FlagsAttribute to an enumeration when its named constants can be meaningfully combined." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA1028", + "suppressToolId": "CA1027", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -137114,9 +137216,9 @@ ] }, { - "id": "CA2352", + "id": "CA2353", "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks" + "text": "RoslynAnalyzers Unsafe DataSet or DataTable in serializable type" }, "fullDescription": { "text": "", @@ -137126,7 +137228,7 @@ "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "CA2352", + "suppressToolId": "CA2353", "ideaSeverity": "WARNING", "qodanaSeverity": "High", "codeQualityCategory": "Unspecified" @@ -137148,9 +137250,9 @@ ] }, { - "id": "RCS0005", + "id": "RCS0003", "shortDescription": { - "text": "RoslynAnalyzers Add blank line before #endregion" + "text": "RoslynAnalyzers Add blank line after using directive list" }, "fullDescription": { "text": "", @@ -137160,7 +137262,7 @@ "enabled": false, "level": "note", "parameters": { - "suppressToolId": "RCS0005", + "suppressToolId": "RCS0003", "ideaSeverity": "TYPO", "qodanaSeverity": "Low", "codeQualityCategory": "Unspecified" @@ -137181,74 +137283,6 @@ } ] }, - { - "id": "CA2353", - "shortDescription": { - "text": "RoslynAnalyzers Unsafe DataSet or DataTable in serializable type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA2353", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1027", - "shortDescription": { - "text": "RoslynAnalyzers Mark enums with FlagsAttribute" - }, - "fullDescription": { - "text": "An enumeration is a value type that defines a set of related named constants. Apply FlagsAttribute to an enumeration when its named constants can be meaningfully combined.", - "markdown": "An enumeration is a value type that defines a set of related named constants. Apply FlagsAttribute to an enumeration when its named constants can be meaningfully combined." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1027", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "CA2354", "shortDescription": { @@ -137283,40 +137317,6 @@ } ] }, - { - "id": "RCS0003", - "shortDescription": { - "text": "RoslynAnalyzers Add blank line after using directive list" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS0003", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "RCS0002", "shortDescription": { @@ -156827,7 +156827,7 @@ }, "invocations": [ { - "startTimeUtc": "2025-04-24T08:21:45.936070851Z", + "startTimeUtc": "2025-04-24T18:33:18.94655429Z", "exitCode": 0, "executionSuccessful": true } @@ -156836,489 +156836,17 @@ "versionControlProvenance": [ { "repositoryUri": "https://github.com/GitTools/GitVersion.git", - "revisionId": "70c0d9afb93d581bb1613aeab42fc76f32e77cb7", - "branch": "main", + "revisionId": "552cd5839f9b4ff25dac4f1f549e77668fc417ef", + "branch": "feature/qodana-fixes", "properties": { "repoUrl": "https://github.com/GitTools/GitVersion.git", - "lastAuthorName": "Artur", + "lastAuthorName": "Artur Stolear", "vcsType": "Git", "lastAuthorEmail": "artur.stolear@gmail.com" } } ], "results": [ - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 17, - "startColumn": 31, - "charOffset": 633, - "charLength": 5, - "snippet": { - "text": "init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "charOffset": 561, - "charLength": 119, - "snippet": { - "text": " new(x => x.Name, x => x.Number);\n\n public string Name { get; init; }\n\n public long? Number { get; init; }" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "39b1096331f5a6c8", - "equalIndicator/v1": "07a7b31b43b99bfe0c26afff61e4b0f77109d932a5cdc8f28e9061154276c7b6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 14, - "startColumn": 44, - "charOffset": 335, - "charLength": 14, - "snippet": { - "text": "internal init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 12, - "startColumn": 1, - "charOffset": 276, - "charLength": 97, - "snippet": { - "text": "\n [Required]\n public ITaskItem[] CompileFiles { get; internal init; } = [];\n\n [Required]" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b9242d297fc3a345", - "equalIndicator/v1": "5ac45d68c9deae77a0676e6f36c18fe17b6d8a1261a8d8301018251345a9c3d7" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 43, - "charOffset": 894, - "charLength": 5, - "snippet": { - "text": "init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 794, - "charLength": 150, - "snippet": { - "text": " public long CommitsSinceVersionSource { get; init; }\n\n public long UncommittedChanges { get; init; }\n\n public SemanticVersionBuildMetaData()" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "945534524a3ecb00", - "equalIndicator/v1": "963653db6db79949c03af1d532a9e55bc25bff64c3ebae3928847676f6cbee01" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 52, - "charOffset": 733, - "charLength": 5, - "snippet": { - "text": "init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 642, - "charLength": 165, - "snippet": { - "text": " public long? Number { get; init; }\n\n public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b1e31eb5a46c5488", - "equalIndicator/v1": "f2380853e2e0a368b92041f47e42e69ff59b1ab8276af3e4c6d7876e721e903e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "CA1859", - "kind": "fail", - "level": "note", - "message": { - "text": "Change type of variable 'environment' from 'GitVersion.IEnvironment' to 'GitVersion.Core.Tests.Helpers.TestEnvironment' for improved performance", - "markdown": "Change type of variable 'environment' from 'GitVersion.IEnvironment' to 'GitVersion.Core.Tests.Helpers.TestEnvironment' for improved performance" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Output.Tests/Output/FormatArgumentTests.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 49, - "startColumn": 22, - "charOffset": 2086, - "charLength": 11, - "snippet": { - "text": "environment" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 47, - "startColumn": 1, - "charOffset": 1948, - "charLength": 239, - "snippet": { - "text": " var consoleBuilder = new StringBuilder();\n IConsole console = new TestConsoleAdapter(consoleBuilder);\n IEnvironment environment = new TestEnvironment();\n environment.SetEnvironmentVariable(\"CustomVar\", \"foo\");\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Output.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "798911f8163bb119", - "equalIndicator/v1": "13387ce1a0a2c97bdab9415ddfe044096d89d4eb5a12058b9486dfc451a7d7ba" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "CA1859", - "kind": "fail", - "level": "note", - "message": { - "text": "Change type of field 'environment' from 'GitVersion.IEnvironment' to 'GitVersion.Core.Tests.Helpers.TestEnvironment' for improved performance", - "markdown": "Change type of field 'environment' from 'GitVersion.IEnvironment' to 'GitVersion.Core.Tests.Helpers.TestEnvironment' for improved performance" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.App.Tests/Helpers/ProgramFixture.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 35, - "charOffset": 245, - "charLength": 11, - "snippet": { - "text": "environment" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 174, - "charLength": 195, - "snippet": { - "text": "public sealed class ProgramFixture\n{\n private readonly IEnvironment environment;\n private List> Overrides { get; } = [];\n private readonly Lazy logger;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.App.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "72d06e5a2b480dfd", - "equalIndicator/v1": "4d79e2de04432e508415de341d54cdb6267a0c69e28a1a34b6d680863a6d983d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "CA1859", - "kind": "fail", - "level": "note", - "message": { - "text": "Change type of variable 'ignoreConfig' from 'GitVersion.Configuration.IIgnoreConfiguration' to 'GitVersion.Configuration.IgnoreConfiguration' for improved performance", - "markdown": "Change type of variable 'ignoreConfig' from 'GitVersion.Configuration.IIgnoreConfiguration' to 'GitVersion.Configuration.IgnoreConfiguration' for improved performance" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 78, - "startColumn": 30, - "charOffset": 2314, - "charLength": 12, - "snippet": { - "text": "ignoreConfig" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 76, - "startColumn": 1, - "charOffset": 2236, - "charLength": 165, - "snippet": { - "text": " public void NewInstanceShouldBeEmpty()\n {\n IIgnoreConfiguration ignoreConfig = new IgnoreConfiguration();\n\n ignoreConfig.IsEmpty.ShouldBeTrue();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "252c4e1844a8f3e4", - "equalIndicator/v1": "4dafc8d23d3af70888bfc929ea4086e1c7b238b2912b0f4f1bdd9a5cf28b7e1b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "CA1859", - "kind": "fail", - "level": "note", - "message": { - "text": "Change type of field 'environment' from 'GitVersion.IEnvironment' to 'GitVersion.Core.Tests.Helpers.TestEnvironment' for improved performance", - "markdown": "Change type of field 'environment' from 'GitVersion.IEnvironment' to 'GitVersion.Core.Tests.Helpers.TestEnvironment' for improved performance" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 9, - "startColumn": 26, - "charOffset": 183, - "charLength": 11, - "snippet": { - "text": "environment" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 7, - "startColumn": 1, - "charOffset": 112, - "charLength": 96, - "snippet": { - "text": "public class StringFormatWithExtensionTests\n{\n private IEnvironment environment;\n\n [SetUp]" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1ec852c0a17be112", - "equalIndicator/v1": "76837070d072d19b7b9f22ead9adfc33ff47308c1a23d43ab8bab6ef8d7e8eac" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, { "ruleId": "ChangeFieldTypeToSystemThreadingLock", "kind": "fail", @@ -157335,9 +156863,9 @@ "uriBaseId": "SRCROOT" }, "region": { - "startLine": 8, + "startLine": 9, "startColumn": 29, - "charOffset": 171, + "charOffset": 210, "charLength": 6, "snippet": { "text": "object" @@ -157345,9 +156873,9 @@ "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 6, + "startLine": 7, "startColumn": 1, - "charOffset": 99, + "charOffset": 138, "charLength": 202, "snippet": { "text": "public static partial class ProcessHelper\n{\n private static readonly object LockObject = new();\n\n // http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/f6069441-4ab1-4299-ad6a-b8bb9ed36be3" @@ -157364,8 +156892,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "b1a3df2c79801d80", - "equalIndicator/v1": "05a56829e3cd54fe95e457f2799a2f78e4c61947baeebe13405f223b40eaea54" + "equalIndicator/v2": "243d981fb6eb8384", + "equalIndicator/v1": "9ce8c7e55a736d0868c40b5038a5e84f48bbfca14180ebd2b27ecc4545156d01" }, "baselineState": "unchanged", "properties": { @@ -157437,465 +156965,451 @@ } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "EditorConfigKeyCorrectness", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Method 'GetBranchSpecificLabel' can be made private", - "markdown": "Method 'GetBranchSpecificLabel' can be made private" + "text": "The property is not supported", + "markdown": "The property is not supported" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Core/Extensions/ConfigurationExtensions.cs", + "uri": "../.editorconfig", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 80, - "startColumn": 5, - "charOffset": 3601, - "charLength": 6, + "startLine": 173, + "startColumn": 1, + "charOffset": 6763, + "charLength": 56, "snippet": { - "text": "public" + "text": "resharper_unused_method_return_value_global_highlighting" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" }, "contextRegion": { - "startLine": 78, + "startLine": 171, "startColumn": 1, - "charOffset": 3500, - "charLength": 251, + "charOffset": 6695, + "charLength": 131, "snippet": { - "text": " => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride);\n\n public static string? GetBranchSpecificLabel(\n this EffectiveConfiguration configuration, string? branchName, string? branchNameOverride)\n {" + "text": "resharper_unused_auto_property_accessor_global_highlighting = none\n\nresharper_unused_method_return_value_global_highlighting = none" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.Core", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "3fa24d0f0642f9f7", - "equalIndicator/v1": "07f27f91c4ae9f1e135bc1acf3fdc7a6e27e5cc17691d895c26651ee7919b5ac" + "equalIndicator/v2": "f6fe51c359b54477", + "equalIndicator/v1": "8551ac8f1f5694db3b26e53bd40fcd09a79b4bbd2f22850569575210dd66333d" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" + "EditorConfig" ] } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "EditorConfigKeyCorrectness", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Method 'WithUpdateBuildNumber' can be made private", - "markdown": "Method 'WithUpdateBuildNumber' can be made private" + "text": "The property is not supported", + "markdown": "The property is not supported" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uri": "../.editorconfig", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 193, - "startColumn": 5, - "charOffset": 6597, - "charLength": 6, + "startLine": 162, + "startColumn": 1, + "charOffset": 6452, + "charLength": 34, "snippet": { - "text": "public" + "text": "dotnet_diagnostic.RCS1037.severity" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" }, "contextRegion": { - "startLine": 191, + "startLine": 160, "startColumn": 1, - "charOffset": 6586, - "charLength": 119, + "charOffset": 6411, + "charLength": 124, "snippet": { - "text": " }\n\n public TConfigurationBuilder WithUpdateBuildNumber(bool value)\n {\n this.updateBuildNumber = value;" + "text": "\n# RCS1037: Remove trailing white-space.\ndotnet_diagnostic.RCS1037.severity = error\n\n# RCS1036: Remove redundant empty line." }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.Configuration", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "f4cdb250e446d78c", - "equalIndicator/v1": "162dc3f8ebaf56ace070dc004cdb6c7aef4f713e104e8acf36ec6d4840918519" + "equalIndicator/v2": "002dbf3d5be336ee", + "equalIndicator/v1": "88845b091d5e4987ce1aec8a2d940e7d27f9a2464a89ccaca2d0af10b55bfb0c" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" + "EditorConfig" ] } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "EditorConfigKeyCorrectness", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Method 'WithPreventIncrementOfMergedBranch' can be made private", - "markdown": "Method 'WithPreventIncrementOfMergedBranch' can be made private" + "text": "The property is not supported", + "markdown": "The property is not supported" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uri": "../.editorconfig", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 260, - "startColumn": 5, - "charOffset": 8891, - "charLength": 6, + "startLine": 167, + "startColumn": 1, + "charOffset": 6580, + "charLength": 29, "snippet": { - "text": "public" + "text": "xml_space_before_self_closing" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" }, "contextRegion": { - "startLine": 258, + "startLine": 165, "startColumn": 1, - "charOffset": 8880, - "charLength": 146, + "charOffset": 6536, + "charLength": 157, "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreventIncrementOfMergedBranch(bool? value)\n {\n this.preventIncrementOfMergedBranch = value;" + "text": "dotnet_diagnostic.RCS1036.severity = error\n\nxml_space_before_self_closing = true\n\nresharper_arrange_object_creation_when_type_not_evident_highlighting = none" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.Configuration", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "a438203fe493332f", - "equalIndicator/v1": "17501f1b3cb4687f5bf4871cd3cee6f28a0fb9277cee5c439001d9f564e3a130" + "equalIndicator/v2": "1d2dff93b57079ac", + "equalIndicator/v1": "98c80a441f9ef5edf0b3cce3fe31ba0fca1fee2378ffe4035a40c1a7b30c70c5" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" + "EditorConfig" ] } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "EditorConfigKeyCorrectness", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Method 'IsLabeledWith' can be made private", - "markdown": "Method 'IsLabeledWith' can be made private" + "text": "The property is not supported", + "markdown": "The property is not supported" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersion.cs", + "uri": "../.editorconfig", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 24, - "startColumn": 5, - "charOffset": 623, - "charLength": 6, + "startLine": 159, + "startColumn": 1, + "charOffset": 6366, + "charLength": 34, "snippet": { - "text": "public" + "text": "dotnet_diagnostic.IDE0005.severity" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" }, "contextRegion": { - "startLine": 22, + "startLine": 157, "startColumn": 1, - "charOffset": 549, - "charLength": 246, + "charOffset": 6322, + "charLength": 129, "snippet": { - "text": " public SemanticVersionBuildMetaData BuildMetaData { get; init; }\n\n public bool IsLabeledWith(string value) => PreReleaseTag.HasTag() && PreReleaseTag.Name.IsEquivalentTo(value);\n\n public bool IsMatchForBranchSpecificLabel(string? value)" + "text": "\n# IDE0005: Using directive is unnecessary.\ndotnet_diagnostic.IDE0005.severity = warning\n\n# RCS1037: Remove trailing white-space." }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.Core", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "a204ee13475fb9ad", - "equalIndicator/v1": "1a1388cf56fd9986badb2156d80a3858fa545384a3e7b13b71eeb4519ebcdb4a" + "equalIndicator/v2": "e19c8ddf75f7decc", + "equalIndicator/v1": "b44a286683a4904208a57ff03b1e0ab0f822c6daab929bdf2994a42050a7f98d" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" + "EditorConfig" ] } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "EditorConfigKeyCorrectness", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Method 'WithNoBumpMessage' can be made private", - "markdown": "Method 'WithNoBumpMessage' can be made private" + "text": "The property is not supported", + "markdown": "The property is not supported" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uri": "../.editorconfig", "uriBaseId": "SRCROOT" }, "region": { "startLine": 169, - "startColumn": 5, - "charOffset": 5913, - "charLength": 6, + "startColumn": 1, + "charOffset": 6618, + "charLength": 68, "snippet": { - "text": "public" + "text": "resharper_arrange_object_creation_when_type_not_evident_highlighting" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" }, "contextRegion": { "startLine": 167, "startColumn": 1, - "charOffset": 5902, - "charLength": 114, + "charOffset": 6580, + "charLength": 181, "snippet": { - "text": " }\n\n public TConfigurationBuilder WithNoBumpMessage(string? value)\n {\n this.noBumpMessage = value;" + "text": "xml_space_before_self_closing = true\n\nresharper_arrange_object_creation_when_type_not_evident_highlighting = none\n\nresharper_unused_auto_property_accessor_global_highlighting = none" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.Configuration", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "53f8f91c63188b63", - "equalIndicator/v1": "1d04599576977cee54240cb129d4b3b7e3d60d038e1e913fa0b7fe1e6e3d9409" + "equalIndicator/v2": "777afc2fdb959232", + "equalIndicator/v1": "baef58ab287e0df1579468dec06220869bb62969dad314e065aeb1d8b865605e" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" + "EditorConfig" ] } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "EditorConfigKeyCorrectness", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Method 'ToString' can be made private", - "markdown": "Method 'ToString' can be made private" + "text": "The property is not supported", + "markdown": "The property is not supported" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", + "uri": "../.editorconfig", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 105, - "startColumn": 5, - "charOffset": 4019, - "charLength": 6, + "startLine": 165, + "startColumn": 1, + "charOffset": 6536, + "charLength": 34, "snippet": { - "text": "public" + "text": "dotnet_diagnostic.RCS1036.severity" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" }, "contextRegion": { - "startLine": 103, + "startLine": 163, "startColumn": 1, - "charOffset": 3958, - "charLength": 166, + "charOffset": 6495, + "charLength": 121, "snippet": { - "text": " public override string ToString() => ToString(\"t\");\n\n public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture);\n\n /// " + "text": "\n# RCS1036: Remove redundant empty line.\ndotnet_diagnostic.RCS1036.severity = error\n\nxml_space_before_self_closing = true" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.Core", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "306f43e59749c8c7", - "equalIndicator/v1": "1e655491f52cd8d75af8440cfe48b2d777ca6fa88da809b6ea67c61e8bad258c" + "equalIndicator/v2": "36e32bd3acbfb8d3", + "equalIndicator/v1": "df48f45afbdbddbe9a7a8de2fa6dc2a40f9932e4ed4d629f5dfb15e4c353c702" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" + "EditorConfig" ] } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "EditorConfigKeyCorrectness", "kind": "fail", - "level": "note", + "level": "warning", "message": { - "text": "Property 'Context' can be made private", - "markdown": "Property 'Context' can be made private" + "text": "The property is not supported", + "markdown": "The property is not supported" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs", + "uri": "../.editorconfig", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 15, - "startColumn": 5, - "charOffset": 509, - "charLength": 9, + "startLine": 171, + "startColumn": 1, + "charOffset": 6695, + "charLength": 59, "snippet": { - "text": "protected" + "text": "resharper_unused_auto_property_accessor_global_highlighting" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" }, "contextRegion": { - "startLine": 13, + "startLine": 169, "startColumn": 1, - "charOffset": 416, - "charLength": 257, + "charOffset": 6618, + "charLength": 208, "snippet": { - "text": " private readonly Lazy versionContext = versionContext.NotNull();\n\n protected GitVersionContext Context => this.versionContext.Value;\n\n protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(ICommit? baseVersionSource)" + "text": "resharper_arrange_object_creation_when_type_not_evident_highlighting = none\n\nresharper_unused_auto_property_accessor_global_highlighting = none\n\nresharper_unused_method_return_value_global_highlighting = none" }, - "sourceLanguage": "C#" + "sourceLanguage": "EditorConfig" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.Core", + "fullyQualifiedName": "rider.module", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "edfbdbeba3db16ef", - "equalIndicator/v1": "25413b6464d5050748f884f073d7dd63c750b68d47aba1fb4936a3946f013179" + "equalIndicator/v2": "1b9f756ea618b3a1", + "equalIndicator/v1": "f4dedbf8e985341cdfaa2ad6304d0d02419a65ce14c2ad3426df8c33dee1d38d" }, "baselineState": "unchanged", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High", "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" + "EditorConfig" ] } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "UnusedType.Global", "kind": "fail", "level": "note", "message": { - "text": "Method 'DumpGraph' can be made private", - "markdown": "Method 'DumpGraph' can be made private" + "text": "Class 'IgnoreConfigurationBuilder' is never used (except inside its declaration)", + "markdown": "Class 'IgnoreConfigurationBuilder' is never used (except inside its declaration)" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", + "uri": "GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 65, - "startColumn": 5, - "charOffset": 2479, - "charLength": 6, + "startLine": 3, + "startColumn": 23, + "charOffset": 59, + "charLength": 26, "snippet": { - "text": "public" + "text": "IgnoreConfigurationBuilder" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 63, + "startLine": 1, "startColumn": 1, - "charOffset": 2415, - "charLength": 254, + "charOffset": 0, + "charLength": 146, "snippet": { - "text": " => DumpGraph(repository.Path, writer, maxCommits);\n\n public static void DumpGraph(this IRepository repository, Action? writer = null, int? maxCommits = null)\n => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits);\n" + "text": "namespace GitVersion.Configuration;\n\ninternal sealed class IgnoreConfigurationBuilder\n{\n public static IgnoreConfigurationBuilder New => new();" }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", + "fullyQualifiedName": "GitVersion.Configuration", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "f66041ca3f62af8b", - "equalIndicator/v1": "3cec01000c68144291c9e0f834ba4490e64a85767ef5b82b2fdc29cdf41f8406" + "equalIndicator/v2": "25a2ace762dfb00f", + "equalIndicator/v1": "15d42fca64552bc8aff310e634bee6a2b9146fc9dfb8eb5f3b15593287d2233b" }, "baselineState": "unchanged", "properties": { @@ -157909,37 +157423,37 @@ } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "UnusedType.Global", "kind": "fail", "level": "note", "message": { - "text": "Method 'CompareTo' can be made private", - "markdown": "Method 'CompareTo' can be made private" + "text": "Class 'TaggedCommitVersionStrategy' is never used", + "markdown": "Class 'TaggedCommitVersionStrategy' is never used" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersion.cs", + "uri": "GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 221, - "startColumn": 5, - "charOffset": 7523, - "charLength": 6, + "startLine": 13, + "startColumn": 23, + "charOffset": 409, + "charLength": 27, "snippet": { - "text": "public" + "text": "TaggedCommitVersionStrategy" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 219, + "startLine": 11, "startColumn": 1, - "charOffset": 7423, - "charLength": 201, + "charOffset": 319, + "charLength": 173, "snippet": { - "text": " public int CompareTo(SemanticVersion? value) => CompareTo(value, includePreRelease: true);\n\n public int CompareTo(SemanticVersion? value, bool includePreRelease)\n {\n if (value == null)" + "text": "/// Increments if the tag is not the current commit.\n/// \ninternal sealed class TaggedCommitVersionStrategy(\n ILog log,\n Lazy contextLazy," }, "sourceLanguage": "C#" } @@ -157953,8 +157467,8 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "dc198b8584f3d313", - "equalIndicator/v1": "59ffba36bf2f386e1e0d7b4bc0aaab48fabaa6d4afb5965b1cb95fef23992adc" + "equalIndicator/v2": "d967b3fae2f6c018", + "equalIndicator/v1": "2df185ac94ad6c05efc2fb1b76cd20af362ffd450a47b703bb7dc4d31038aecf" }, "baselineState": "unchanged", "properties": { @@ -157968,52 +157482,52 @@ } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "UnusedType.Global", "kind": "fail", "level": "note", "message": { - "text": "Method 'GetCurrentDirectory' can be made private", - "markdown": "Method 'GetCurrentDirectory' can be made private" + "text": "Class 'TrackReleaseBranchesVersionStrategy' is never used", + "markdown": "Class 'TrackReleaseBranchesVersionStrategy' is never used" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", + "uri": "GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 74, - "startColumn": 9, - "charOffset": 3205, - "charLength": 6, + "startLine": 10, + "startColumn": 23, + "charOffset": 235, + "charLength": 35, "snippet": { - "text": "public" + "text": "TrackReleaseBranchesVersionStrategy" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 72, + "startLine": 8, "startColumn": 1, - "charOffset": 3142, - "charLength": 291, + "charOffset": 171, + "charLength": 179, "snippet": { - "text": " : StringComparison.OrdinalIgnoreCase;\n\n public static string GetCurrentDirectory() => AppContext.BaseDirectory ?? throw new InvalidOperationException();\n\n public static string GetTempPathLegacy() => fileSystem.Path.GetTempPath().TrimEnd(DirectorySeparatorChar);" + "text": "namespace GitVersion.VersionCalculation;\n\ninternal sealed class TrackReleaseBranchesVersionStrategy(\n Lazy contextLazy,\n IRepositoryStore repositoryStore," }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.Testing", + "fullyQualifiedName": "GitVersion.Core", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "54963d95d4a2b1c2", - "equalIndicator/v1": "6732e23188eba6b8c688b733a53c5a6787409739d46b248f42458ac8e747df96" + "equalIndicator/v2": "b4f244eb64615685", + "equalIndicator/v1": "b63af6c15c019a9c52843e65463894bda0c76e2ebfb309105acccc5db97bedb4" }, "baselineState": "unchanged", "properties": { @@ -158027,2885 +157541,2686 @@ } }, { - "ruleId": "MemberCanBePrivate.Global", + "ruleId": "SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault", "kind": "fail", "level": "note", "message": { - "text": "Method 'GetFullPath' can be made private", - "markdown": "Method 'GetFullPath' can be made private" + "text": "Some values of the enum are not processed inside switch: Inherit", + "markdown": "Some values of the enum are not processed inside switch: Inherit" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", + "uri": "GitVersion.Core/Extensions/IncrementStrategyExtensions.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 108, - "startColumn": 9, - "charOffset": 4537, + "startLine": 5, + "startColumn": 92, + "charOffset": 175, "charLength": 6, "snippet": { - "text": "public" + "text": "switch" }, "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 106, + "startLine": 3, "startColumn": 1, - "charOffset": 4432, - "charLength": 258, + "charOffset": 34, + "charLength": 206, "snippet": { - "text": " public static string? GetExtension(string? path) => fileSystem.Path.GetExtension(path);\n\n public static string GetFullPath(string? path) => fileSystem.Path.GetFullPath(path!);\n\n public static string Combine(string? path1, string? path2)" + "text": "public static class IncrementStrategyExtensions\n{\n public static VersionField ToVersionField(this IncrementStrategy strategy) => strategy switch\n {\n IncrementStrategy.None => VersionField.None," }, "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "GitVersion.Testing", + "fullyQualifiedName": "GitVersion.Core", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "9a5d1a2ad5c4e5b8", - "equalIndicator/v1": "7bd476cf03181321fa398a10395699e96bf050ce5a5ec1162fe7964d43feacb1" + "equalIndicator/v2": "1ac30133f4a78181", + "equalIndicator/v1": "9be1d124e5d238645ce52708262f518ad3f9f4177c6a2da2044e3143590df0db" }, - "baselineState": "unchanged", + "baselineState": "new", "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", "tags": [ "C#", ".NET 8.0", ".NET 9.0" ] } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithIsReleaseBranch' can be made private", - "markdown": "Method 'WithIsReleaseBranch' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 308, - "startColumn": 5, - "charOffset": 10357, - "charLength": 6, - "snippet": { - "text": "public" + } + ], + "automationDetails": { + "id": "GitVersion/qodana/2025-04-24", + "guid": "cc99868b-5843-4366-856f-fdd3074dad26", + "properties": { + "jobUrl": "https://github.com/GitTools/GitVersion/actions/runs/14649015427", + "analysisKind": "regular" + } + }, + "newlineSequences": [ + "\r\n", + "\n" + ], + "properties": { + "qodana.promo.results": [ + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Auto-property can be made get-only", + "markdown": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 306, - "startColumn": 1, - "charOffset": 10346, - "charLength": 116, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithIsReleaseBranch(bool? value)\n {\n this.isReleaseBranch = value;" + "region": { + "startLine": 17, + "startColumn": 31, + "charOffset": 633, + "charLength": 5, + "snippet": { + "text": "init;" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 15, + "startColumn": 1, + "charOffset": 561, + "charLength": 119, + "snippet": { + "text": " new(x => x.Name, x => x.Number);\n\n public string Name { get; init; }\n\n public long? Number { get; init; }" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "39b1096331f5a6c8", + "equalIndicator/v1": "07a7b31b43b99bfe0c26afff61e4b0f77109d932a5cdc8f28e9061154276c7b6" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "d841d600090e0246", - "equalIndicator/v1": "7c856ca43421ba359bbd8a46382b230df0b206e8b49a4c467035ef80c298b36a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetTempPath' can be made private", - "markdown": "Method 'GetTempPath' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 77, - "startColumn": 9, - "charOffset": 3442, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Auto-property can be made get-only", + "markdown": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "charOffset": 3318, - "charLength": 218, - "snippet": { - "text": "\n public static string GetTempPathLegacy() => fileSystem.Path.GetTempPath().TrimEnd(DirectorySeparatorChar);\n public static string GetTempPath()\n {\n var tempPath = GetCurrentDirectory();" + "region": { + "startLine": 14, + "startColumn": 44, + "charOffset": 335, + "charLength": 14, + "snippet": { + "text": "internal init;" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } + "contextRegion": { + "startLine": 12, + "startColumn": 1, + "charOffset": 276, + "charLength": 97, + "snippet": { + "text": "\n [Required]\n public ITaskItem[] CompileFiles { get; internal init; } = [];\n\n [Required]" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.MsBuild", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b9242d297fc3a345", + "equalIndicator/v1": "5ac45d68c9deae77a0676e6f36c18fe17b6d8a1261a8d8301018251345a9c3d7" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "e9bbe0a232d1f2bb", - "equalIndicator/v1": "81aff2ce6987502feac67c101fd449948663144ad455a51e46285cd218675829" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithRegularExpression' can be made private", - "markdown": "Method 'WithRegularExpression' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 296, - "startColumn": 5, - "charOffset": 10017, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Auto-property can be made get-only", + "markdown": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 294, - "startColumn": 1, - "charOffset": 10006, - "charLength": 122, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithRegularExpression(string? value)\n {\n this.regularExpression = value;" + "region": { + "startLine": 31, + "startColumn": 43, + "charOffset": 894, + "charLength": 5, + "snippet": { + "text": "init;" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 29, + "startColumn": 1, + "charOffset": 794, + "charLength": 150, + "snippet": { + "text": " public long CommitsSinceVersionSource { get; init; }\n\n public long UncommittedChanges { get; init; }\n\n public SemanticVersionBuildMetaData()" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "945534524a3ecb00", + "equalIndicator/v1": "963653db6db79949c03af1d532a9e55bc25bff64c3ebae3928847676f6cbee01" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "70211adbe88a21f9", - "equalIndicator/v1": "8697076173547d2573eff685a6e8048b90a53a6f77cb7f4fe749f7533fa3dc72" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementWhenCurrentCommitTagged' can be made private", - "markdown": "Method 'WithPreventIncrementWhenCurrentCommitTagged' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 272, - "startColumn": 5, - "charOffset": 9277, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Auto-property can be made get-only", + "markdown": "Auto-property can be made get-only" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 270, - "startColumn": 1, - "charOffset": 9266, - "charLength": 164, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreventIncrementWhenCurrentCommitTagged(bool? value)\n {\n this.preventIncrementWhenCurrentCommitTagged = value;" + "region": { + "startLine": 21, + "startColumn": 52, + "charOffset": 733, + "charLength": 5, + "snippet": { + "text": "init;" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 642, + "charLength": 165, + "snippet": { + "text": " public long? Number { get; init; }\n\n public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b1e31eb5a46c5488", + "equalIndicator/v1": "f2380853e2e0a368b92041f47e42e69ff59b1ab8276af3e4c6d7876e721e903e" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "9fcdeb835eacbafa", - "equalIndicator/v1": "8bed8fd8ed8cd10ae282611bde7cf3db2b2429b2c2094767b8869c59be508a56" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreReleaseWeight' can be made private", - "markdown": "Method 'WithPreReleaseWeight' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 320, - "startColumn": 5, - "charOffset": 10673, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "CA1822", + "kind": "fail", + "level": "note", + "message": { + "text": "Member 'FromJson' does not access instance data and can be marked as static", + "markdown": "Member 'FromJson' does not access instance data and can be marked as static" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Output/Serializer/VersionVariableSerializer.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 318, - "startColumn": 1, - "charOffset": 10662, - "charLength": 117, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreReleaseWeight(int? value)\n {\n this.preReleaseWeight = value;" + "region": { + "startLine": 10, + "startColumn": 32, + "charOffset": 285, + "charLength": 8, + "snippet": { + "text": "FromJson" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 8, + "startColumn": 1, + "charOffset": 158, + "charLength": 210, + "snippet": { + "text": "internal class VersionVariableSerializer(IFileSystem fileSystem) : IVersionVariableSerializer\n{\n public GitVersionVariables FromJson(string json)\n {\n var serializeOptions = JsonSerializerOptions();" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Output", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f5b3f2f4c3239efc", + "equalIndicator/v1": "1200334ba035fbe3aa0c822c791d74b4c1ba606802c21aca6551b04f37a0d2a9" + }, + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "fa34c0dd386ebf63", - "equalIndicator/v1": "8dd744fa23bef7b300485157af43879871db8b2ee29201d3fc0e7ea51081448f" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithTracksReleaseBranches' can be made private", - "markdown": "Method 'WithTracksReleaseBranches' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 302, - "startColumn": 5, - "charOffset": 10184, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 300, - "startColumn": 1, - "charOffset": 10173, - "charLength": 128, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithTracksReleaseBranches(bool? value)\n {\n this.tracksReleaseBranches = value;" + { + "ruleId": "MemberCanBeMadeStatic.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'FromJson' can be made static", + "markdown": "Method 'FromJson' can be made static" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Output/Serializer/VersionVariableSerializer.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "72e585b50d1d68cd", - "equalIndicator/v1": "8edc4dd166cb4befd91c6b9c0352e5ba4e08dee7b4c14811073693f08fd5c1b3" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithShas' can be made private", - "markdown": "Method 'WithShas' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 5, - "charOffset": 672, - "charLength": 6, - "snippet": { - "text": "public" + "region": { + "startLine": 10, + "startColumn": 32, + "charOffset": 285, + "charLength": 8, + "snippet": { + "text": "FromJson" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" + "contextRegion": { + "startLine": 8, + "startColumn": 1, + "charOffset": 158, + "charLength": 210, + "snippet": { + "text": "internal class VersionVariableSerializer(IFileSystem fileSystem) : IVersionVariableSerializer\n{\n public GitVersionVariables FromJson(string json)\n {\n var serializeOptions = JsonSerializerOptions();" + }, + "sourceLanguage": "C#" + } }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 661, - "charLength": 109, - "snippet": { - "text": " }\n\n public IgnoreConfigurationBuilder WithShas(HashSet value)\n {\n this.shas = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Output", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d0162cfd80034eca", + "equalIndicator/v1": "73e075508fa3cbc3c31932c3d8f6071e21c10a5115a1398bb75174d763537d46" + }, + "properties": { + "ideaSeverity": "TYPO", + "qodanaSeverity": "Low", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "79d7694be7303156", - "equalIndicator/v1": "9191b831b7a6c97d7f2befa29faf57850e20a6e19d4825d9a7f969ed27bfc28a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithTrackMergeTarget' can be made private", - "markdown": "Method 'WithTrackMergeTarget' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 278, - "startColumn": 5, - "charOffset": 9486, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 276, - "startColumn": 1, - "charOffset": 9475, - "charLength": 118, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithTrackMergeTarget(bool? value)\n {\n this.trackMergeTarget = value;" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'GetBranchSpecificLabel' can be made private", + "markdown": "Method 'GetBranchSpecificLabel' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/Extensions/ConfigurationExtensions.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "07c819bfc6ae3ff8", - "equalIndicator/v1": "932a115609e38ccdc5b15021ffd491e1dc5465c72c341bd300126021849a5403" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementWhenBranchMerged' can be made private", - "markdown": "Method 'WithPreventIncrementWhenBranchMerged' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 266, - "startColumn": 5, - "charOffset": 9082, - "charLength": 6, - "snippet": { - "text": "public" + "region": { + "startLine": 80, + "startColumn": 5, + "charOffset": 3601, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" + "contextRegion": { + "startLine": 78, + "startColumn": 1, + "charOffset": 3500, + "charLength": 251, + "snippet": { + "text": " => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride);\n\n public static string? GetBranchSpecificLabel(\n this EffectiveConfiguration configuration, string? branchName, string? branchNameOverride)\n {" + }, + "sourceLanguage": "C#" + } }, - "contextRegion": { - "startLine": 264, - "startColumn": 1, - "charOffset": 9071, - "charLength": 150, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreventIncrementWhenBranchMerged(bool? value)\n {\n this.preventIncrementWhenBranchMerged = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3fa24d0f0642f9f7", + "equalIndicator/v1": "07f27f91c4ae9f1e135bc1acf3fdc7a6e27e5cc17691d895c26651ee7919b5ac" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "f8c7df635da2b8ad", - "equalIndicator/v1": "9d1091b9ff2d424c0812ed314a87cfd29c7f6eeecf559efc306e108cc1c4a2ab" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'DiscoverRepository' can be made private", - "markdown": "Method 'DiscoverRepository' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 5, - "charOffset": 1734, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1723, - "charLength": 149, - "snippet": { - "text": " }\n\n public static void DiscoverRepository(this IServiceProvider sp)\n {\n var gitRepository = sp.GetRequiredService();" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithUpdateBuildNumber' can be made private", + "markdown": "Method 'WithUpdateBuildNumber' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3b81dbc907dc82f9", - "equalIndicator/v1": "a4265a9c06bacc2838ccd8059ca6d68eacce0b3e23d5fd78b54e6a812bca24b2" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetVersion' can be made private", - "markdown": "Method 'GetVersion' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 5, - "charOffset": 2674, - "charLength": 6, - "snippet": { - "text": "public" + "region": { + "startLine": 193, + "startColumn": 5, + "charOffset": 6597, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" + "contextRegion": { + "startLine": 191, + "startColumn": 1, + "charOffset": 6586, + "charLength": 119, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithUpdateBuildNumber(bool value)\n {\n this.updateBuildNumber = value;" + }, + "sourceLanguage": "C#" + } }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 2592, - "charLength": 343, - "snippet": { - "text": " => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits);\n\n public static GitVersionVariables GetVersion(this RepositoryFixtureBase fixture, IGitVersionConfiguration? configuration = null,\n IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null)\n {" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f4cdb250e446d78c", + "equalIndicator/v1": "162dc3f8ebaf56ace070dc004cdb6c7aef4f713e104e8acf36ec6d4840918519" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "318ac156b1657713", - "equalIndicator/v1": "a4afd1b08385395f0807fd8f3fc04f39d8fc8314a24009a2342a71b99c37769a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'DirectorySeparatorChar' can be made private", - "markdown": "Property 'DirectorySeparatorChar' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 9, - "charOffset": 2878, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithPreventIncrementOfMergedBranch' can be made private", + "markdown": "Method 'WithPreventIncrementOfMergedBranch' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2808, - "charLength": 228, - "snippet": { - "text": " {\n public static string NewLine => SysEnv.NewLine;\n public static char DirectorySeparatorChar => fileSystem.Path.DirectorySeparatorChar;\n\n private static readonly StringComparison OsDependentComparison =" + "region": { + "startLine": 260, + "startColumn": 5, + "charOffset": 8891, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } + "contextRegion": { + "startLine": 258, + "startColumn": 1, + "charOffset": 8880, + "charLength": 146, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithPreventIncrementOfMergedBranch(bool? value)\n {\n this.preventIncrementOfMergedBranch = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a438203fe493332f", + "equalIndicator/v1": "17501f1b3cb4687f5bf4871cd3cee6f28a0fb9277cee5c439001d9f564e3a130" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "47e20dd81572c251", - "equalIndicator/v1": "a4f011d97b4f80ac560ed9ef839d4f3c53a31f9e284590ecb9000c1363ff5b8e" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithAssemblyVersioningFormat' can be made private", - "markdown": "Method 'WithAssemblyVersioningFormat' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 121, - "startColumn": 5, - "charOffset": 4516, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'IsLabeledWith' can be made private", + "markdown": "Method 'IsLabeledWith' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/SemVer/SemanticVersion.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 119, - "startColumn": 1, - "charOffset": 4505, - "charLength": 136, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithAssemblyVersioningFormat(string? value)\n {\n this.assemblyVersioningFormat = value;" + "region": { + "startLine": 24, + "startColumn": 5, + "charOffset": 623, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 22, + "startColumn": 1, + "charOffset": 549, + "charLength": 246, + "snippet": { + "text": " public SemanticVersionBuildMetaData BuildMetaData { get; init; }\n\n public bool IsLabeledWith(string value) => PreReleaseTag.HasTag() && PreReleaseTag.Name.IsEquivalentTo(value);\n\n public bool IsMatchForBranchSpecificLabel(string? value)" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a204ee13475fb9ad", + "equalIndicator/v1": "1a1388cf56fd9986badb2156d80a3858fa545384a3e7b13b71eeb4519ebcdb4a" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "65ec659931f70250", - "equalIndicator/v1": "a9ff1f6afad5baa1879308d0688fc50f93231148751f22ab0382a727857f2c0c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Constructor 'SemanticVersionPreReleaseTag' can be made private", - "markdown": "Constructor 'SemanticVersionPreReleaseTag' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 5, - "charOffset": 746, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithNoBumpMessage' can be made private", + "markdown": "Method 'WithNoBumpMessage' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 682, - "charLength": 227, - "snippet": { - "text": " public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;\n\n public SemanticVersionPreReleaseTag(string name, long? number, bool promoteTagEvenIfNameIsEmpty)" + "region": { + "startLine": 169, + "startColumn": 5, + "charOffset": 5913, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } + "contextRegion": { + "startLine": 167, + "startColumn": 1, + "charOffset": 5902, + "charLength": 114, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithNoBumpMessage(string? value)\n {\n this.noBumpMessage = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "53f8f91c63188b63", + "equalIndicator/v1": "1d04599576977cee54240cb129d4b3b7e3d60d038e1e913fa0b7fe1e6e3d9409" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "4a42a72507675ee0", - "equalIndicator/v1": "cda0e8d0b89f3b9e17c4a83e1e9316a95447c3eb3c58bef1794d599c5bb8d116" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'PromoteTagEvenIfNameIsEmpty' can be made private", - "markdown": "Property 'PromoteTagEvenIfNameIsEmpty' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 5, - "charOffset": 686, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'ToString' can be made private", + "markdown": "Method 'ToString' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 642, - "charLength": 165, - "snippet": { - "text": " public long? Number { get; init; }\n\n public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;" + "region": { + "startLine": 105, + "startColumn": 5, + "charOffset": 4019, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } + "contextRegion": { + "startLine": 103, + "startColumn": 1, + "charOffset": 3958, + "charLength": 166, + "snippet": { + "text": " public override string ToString() => ToString(\"t\");\n\n public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture);\n\n /// " + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "306f43e59749c8c7", + "equalIndicator/v1": "1e655491f52cd8d75af8440cfe48b2d777ca6fa88da809b6ea67c61e8bad258c" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "304d08da85634319", - "equalIndicator/v1": "ce384c072aedd7cfb73948dda11dcd04749e99d41826a45d7df82e6ad841b651" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'RefSpecs' can be made private", - "markdown": "Property 'RefSpecs' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.LibGit2Sharp/Git/Remote.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 20, - "startColumn": 5, - "charOffset": 720, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Property 'Context' can be made private", + "markdown": "Property 'Context' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "charOffset": 668, - "charLength": 107, - "snippet": { - "text": " public string Url => this.innerRemote.Url;\n\n public IEnumerable RefSpecs\n {\n get" + "region": { + "startLine": 15, + "startColumn": 5, + "charOffset": 509, + "charLength": 9, + "snippet": { + "text": "protected" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.LibGit2Sharp", - "kind": "module" - } + "contextRegion": { + "startLine": 13, + "startColumn": 1, + "charOffset": 416, + "charLength": 257, + "snippet": { + "text": " private readonly Lazy versionContext = versionContext.NotNull();\n\n protected GitVersionContext Context => this.versionContext.Value;\n\n protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(ICommit? baseVersionSource)" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "edfbdbeba3db16ef", + "equalIndicator/v1": "25413b6464d5050748f884f073d7dd63c750b68d47aba1fb4936a3946f013179" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "0b42b6fe81d50fee", - "equalIndicator/v1": "d9b036319212323201c50ca1c4b114e7cfd397a81f5cadd17e9763b36e145fec" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithVersionInBranchPattern' can be made private", - "markdown": "Method 'WithVersionInBranchPattern' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 5, - "charOffset": 5044, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'DumpGraph' can be made private", + "markdown": "Method 'DumpGraph' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 5033, - "charLength": 132, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithVersionInBranchPattern(string? value)\n {\n this.versionInBranchPattern = value;" + "region": { + "startLine": 65, + "startColumn": 5, + "charOffset": 2479, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 63, + "startColumn": 1, + "charOffset": 2415, + "charLength": 254, + "snippet": { + "text": " => DumpGraph(repository.Path, writer, maxCommits);\n\n public static void DumpGraph(this IRepository repository, Action? writer = null, int? maxCommits = null)\n => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits);\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.MsBuild.Tests", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f66041ca3f62af8b", + "equalIndicator/v1": "3cec01000c68144291c9e0f834ba4490e64a85767ef5b82b2fdc29cdf41f8406" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "8348fe093daaf082", - "equalIndicator/v1": "da3a2b7bb813af9c8beb4477fcf5c07fc1e5fc4e6d6eeccd8de2e690e3fdeaa7" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'ToGitRepository' can be made private", - "markdown": "Method 'ToGitRepository' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 161, - "startColumn": 5, - "charOffset": 6451, - "charLength": 8, - "snippet": { - "text": "internal" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'CompareTo' can be made private", + "markdown": "Method 'CompareTo' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/SemVer/SemanticVersion.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 159, - "startColumn": 1, - "charOffset": 6440, - "charLength": 154, - "snippet": { - "text": " }\n\n internal static IGitRepository ToGitRepository(this IRepository repository)\n {\n var gitRepository = new GitRepository(new NullLog());" + "region": { + "startLine": 221, + "startColumn": 5, + "charOffset": 7523, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } + "contextRegion": { + "startLine": 219, + "startColumn": 1, + "charOffset": 7423, + "charLength": 201, + "snippet": { + "text": " public int CompareTo(SemanticVersion? value) => CompareTo(value, includePreRelease: true);\n\n public int CompareTo(SemanticVersion? value, bool includePreRelease)\n {\n if (value == null)" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dc198b8584f3d313", + "equalIndicator/v1": "59ffba36bf2f386e1e0d7b4bc0aaab48fabaa6d4afb5965b1cb95fef23992adc" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "aa5d8e1a3910919c", - "equalIndicator/v1": "de8f75ffee4f641447c9483347e33e7705e4b9ef7d5131112ae2cdd416322ab0" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithIsMainBranch' can be made private", - "markdown": "Method 'WithIsMainBranch' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 314, - "startColumn": 5, - "charOffset": 10518, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'GetCurrentDirectory' can be made private", + "markdown": "Method 'GetCurrentDirectory' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 312, - "startColumn": 1, - "charOffset": 10507, - "charLength": 110, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithIsMainBranch(bool? value)\n {\n this.isMainBranch = value;" + "region": { + "startLine": 74, + "startColumn": 9, + "charOffset": 3205, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 72, + "startColumn": 1, + "charOffset": 3142, + "charLength": 291, + "snippet": { + "text": " : StringComparison.OrdinalIgnoreCase;\n\n public static string GetCurrentDirectory() => AppContext.BaseDirectory ?? throw new InvalidOperationException();\n\n public static string GetTempPathLegacy() => fileSystem.Path.GetTempPath().TrimEnd(DirectorySeparatorChar);" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Testing", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "54963d95d4a2b1c2", + "equalIndicator/v1": "6732e23188eba6b8c688b733a53c5a6787409739d46b248f42458ac8e747df96" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "0625bb954b3755eb", - "equalIndicator/v1": "e1537a990b34403b4d0d5046b725d803e2a199c4fba0bf04dd25e4ce99f3002b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'Combine' can be made private", - "markdown": "Method 'Combine' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 125, - "startColumn": 9, - "charOffset": 5097, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'GetFullPath' can be made private", + "markdown": "Method 'GetFullPath' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 123, - "startColumn": 1, - "charOffset": 5078, - "charLength": 164, - "snippet": { - "text": " }\n\n public static string Combine(string? path1, string? path2, string? path3)\n {\n ArgumentException.ThrowIfNullOrWhiteSpace(path1);" + "region": { + "startLine": 108, + "startColumn": 9, + "charOffset": 4537, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } + "contextRegion": { + "startLine": 106, + "startColumn": 1, + "charOffset": 4432, + "charLength": 258, + "snippet": { + "text": " public static string? GetExtension(string? path) => fileSystem.Path.GetExtension(path);\n\n public static string GetFullPath(string? path) => fileSystem.Path.GetFullPath(path!);\n\n public static string Combine(string? path1, string? path2)" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Testing", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9a5d1a2ad5c4e5b8", + "equalIndicator/v1": "7bd476cf03181321fa398a10395699e96bf050ce5a5ec1162fe7964d43feacb1" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "9efd3542863b65cb", - "equalIndicator/v1": "e8a2e96804c2dd49761635866a90126621007fc0bc2e3d505ebc6fef0f03383c" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithTrackMergeMessage' can be made private", - "markdown": "Method 'WithTrackMergeMessage' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 284, - "startColumn": 5, - "charOffset": 9649, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithIsReleaseBranch' can be made private", + "markdown": "Method 'WithIsReleaseBranch' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 282, - "startColumn": 1, - "charOffset": 9638, - "charLength": 120, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithTrackMergeMessage(bool? value)\n {\n this.trackMergeMessage = value;" + "region": { + "startLine": 308, + "startColumn": 5, + "charOffset": 10357, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 306, + "startColumn": 1, + "charOffset": 10346, + "charLength": 116, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithIsReleaseBranch(bool? value)\n {\n this.isReleaseBranch = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d841d600090e0246", + "equalIndicator/v1": "7c856ca43421ba359bbd8a46382b230df0b206e8b49a4c467035ef80c298b36a" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "c12445c5a92fea37", - "equalIndicator/v1": "fb7a2ab2c07c95d3f2a1c47d6f74f1cc0e45c77007c49f7ea9e387cc7b4ffb8d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Field 'repositoryStore' can be made private", - "markdown": "Field 'repositoryStore' can be made private" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 12, - "startColumn": 5, - "charOffset": 335, - "charLength": 9, - "snippet": { - "text": "protected" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'GetTempPath' can be made private", + "markdown": "Method 'GetTempPath' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 10, - "startColumn": 1, - "charOffset": 280, - "charLength": 224, - "snippet": { - "text": "{\n protected readonly ILog log = log.NotNull();\n protected readonly IRepositoryStore repositoryStore = repositoryStore.NotNull();\n private readonly Lazy versionContext = versionContext.NotNull();\n" + "region": { + "startLine": 77, + "startColumn": 9, + "charOffset": 3442, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } + "contextRegion": { + "startLine": 75, + "startColumn": 1, + "charOffset": 3318, + "charLength": 218, + "snippet": { + "text": "\n public static string GetTempPathLegacy() => fileSystem.Path.GetTempPath().TrimEnd(DirectorySeparatorChar);\n public static string GetTempPath()\n {\n var tempPath = GetCurrentDirectory();" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Testing", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "e9bbe0a232d1f2bb", + "equalIndicator/v1": "81aff2ce6987502feac67c101fd449948663144ad455a51e46285cd218675829" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "d774cc88ea0885cc", - "equalIndicator/v1": "fc453f975365798d2caf47bd8a217f79da184734fe3652e261743ccf2cb2fb7c" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithIsSourceBranchFor' can be made protected", - "markdown": "Method 'WithIsSourceBranchFor' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 102, - "startColumn": 5, - "charOffset": 2934, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithRegularExpression' can be made private", + "markdown": "Method 'WithRegularExpression' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 100, - "startColumn": 1, - "charOffset": 2923, - "charLength": 152, - "snippet": { - "text": " }\n\n public virtual BranchConfigurationBuilder WithIsSourceBranchFor(IEnumerable values)\n {\n WithIsSourceBranchFor([.. values]);" + "region": { + "startLine": 296, + "startColumn": 5, + "charOffset": 10017, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 294, + "startColumn": 1, + "charOffset": 10006, + "charLength": 122, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithRegularExpression(string? value)\n {\n this.regularExpression = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "70211adbe88a21f9", + "equalIndicator/v1": "8697076173547d2573eff685a6e8048b90a53a6f77cb7f4fe749f7533fa3dc72" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "907339a47a48aba5", - "equalIndicator/v1": "26daf9e7e80d3d2b5b915dd59c36b06265526229dc1ce38f2c3d1c54476f930d" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Constant 'MainBranch' can be made protected", - "markdown": "Constant 'MainBranch' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Helpers/TestBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 5, - "charOffset": 206, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithPreventIncrementWhenCurrentCommitTagged' can be made private", + "markdown": "Method 'WithPreventIncrementWhenCurrentCommitTagged' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 178, - "charLength": 178, - "snippet": { - "text": "public class TestBase\n{\n public const string MainBranch = \"main\";\n\n protected static IServiceProvider ConfigureServices(Action? overrideServices = null)" + "region": { + "startLine": 272, + "startColumn": 5, + "charOffset": 9277, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } + "contextRegion": { + "startLine": 270, + "startColumn": 1, + "charOffset": 9266, + "charLength": 164, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithPreventIncrementWhenCurrentCommitTagged(bool? value)\n {\n this.preventIncrementWhenCurrentCommitTagged = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9fcdeb835eacbafa", + "equalIndicator/v1": "8bed8fd8ed8cd10ae282611bde7cf3db2b2429b2c2094767b8869c59be508a56" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "d8605a834ce1f2ec", - "equalIndicator/v1": "36bec50ba3e6870ccade82084537061038c70a64dee81529a4d3f0e1a0f37a8a" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithConfiguration' can be made protected", - "markdown": "Method 'WithConfiguration' can be made protected" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 326, - "startColumn": 5, - "charOffset": 10835, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithPreReleaseWeight' can be made private", + "markdown": "Method 'WithPreReleaseWeight' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 324, - "startColumn": 1, - "charOffset": 10824, - "charLength": 165, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithConfiguration(IGitVersionConfiguration value)\n {\n WithAssemblyVersioningScheme(value.AssemblyVersioningScheme);" + "region": { + "startLine": 320, + "startColumn": 5, + "charOffset": 10673, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 318, + "startColumn": 1, + "charOffset": 10662, + "charLength": 117, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithPreReleaseWeight(int? value)\n {\n this.preReleaseWeight = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "fa34c0dd386ebf63", + "equalIndicator/v1": "8dd744fa23bef7b300485157af43879871db8b2ee29201d3fc0e7ea51081448f" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "50524bf965a4b8da", - "equalIndicator/v1": "60b9a3ae23943157b539c2d72261df7557fb4ac690984f6a78a697bc179c1db9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithSourceBranches' can be made protected", - "markdown": "Method 'WithSourceBranches' can be made protected" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 90, - "startColumn": 5, - "charOffset": 2600, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithTracksReleaseBranches' can be made private", + "markdown": "Method 'WithTracksReleaseBranches' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 88, - "startColumn": 1, - "charOffset": 2589, - "charLength": 146, - "snippet": { - "text": " }\n\n public virtual BranchConfigurationBuilder WithSourceBranches(IEnumerable values)\n {\n WithSourceBranches([.. values]);" + "region": { + "startLine": 302, + "startColumn": 5, + "charOffset": 10184, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 300, + "startColumn": 1, + "charOffset": 10173, + "charLength": 128, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithTracksReleaseBranches(bool? value)\n {\n this.tracksReleaseBranches = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "72e585b50d1d68cd", + "equalIndicator/v1": "8edc4dd166cb4befd91c6b9c0352e5ba4e08dee7b4c14811073693f08fd5c1b3" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "99829247586fa2d8", - "equalIndicator/v1": "9b5933600024cb61754ddb6cf50acd68e820744494fc03e9df4381f5fb2c5dcc" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementWhenBranchMerged' can be made protected", - "markdown": "Method 'WithPreventIncrementWhenBranchMerged' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 54, - "startColumn": 5, - "charOffset": 1558, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithShas' can be made private", + "markdown": "Method 'WithShas' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "charOffset": 1547, - "charLength": 163, - "snippet": { - "text": " }\n\n public virtual BranchConfigurationBuilder WithPreventIncrementWhenBranchMerged(bool? value)\n {\n this.preventIncrementWhenBranchMerged = value;" + "region": { + "startLine": 29, + "startColumn": 5, + "charOffset": 672, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 661, + "charLength": 109, + "snippet": { + "text": " }\n\n public IgnoreConfigurationBuilder WithShas(HashSet value)\n {\n this.shas = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "79d7694be7303156", + "equalIndicator/v1": "9191b831b7a6c97d7f2befa29faf57850e20a6e19d4825d9a7f969ed27bfc28a" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "71e7d9b29242c60a", - "equalIndicator/v1": "b858e2f3b626a01e808428a2774ff97c1b17fcb757f23f4f64398e392b81dd3e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithBranch' can be made protected", - "markdown": "Method 'WithBranch' can be made protected" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 229, - "startColumn": 5, - "charOffset": 7788, - "charLength": 6, - "snippet": { - "text": "public" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithTrackMergeTarget' can be made private", + "markdown": "Method 'WithTrackMergeTarget' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 227, - "startColumn": 1, - "charOffset": 7777, - "charLength": 169, - "snippet": { - "text": " }\n\n public BranchConfigurationBuilder WithBranch(string value)\n => this.branchConfigurationBuilders.GetOrAdd(value, () => BranchConfigurationBuilder.New);\n" + "region": { + "startLine": 278, + "startColumn": 5, + "charOffset": 9486, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 276, + "startColumn": 1, + "charOffset": 9475, + "charLength": 118, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithTrackMergeTarget(bool? value)\n {\n this.trackMergeTarget = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "07c819bfc6ae3ff8", + "equalIndicator/v1": "932a115609e38ccdc5b15021ffd491e1dc5465c72c341bd300126021849a5403" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "fbde394b0bdaac89", - "equalIndicator/v1": "e8d7c2d9d95e73a87b377c0050c29d16bfae58ce8c8bb67b334a49da873d4650" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: Inherit", - "markdown": "Some values of the enum are not processed inside switch: Inherit" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Extensions/IncrementStrategyExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 5, - "startColumn": 92, - "charOffset": 175, - "charLength": 6, - "snippet": { - "text": "switch" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithPreventIncrementWhenBranchMerged' can be made private", + "markdown": "Method 'WithPreventIncrementWhenBranchMerged' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 3, - "startColumn": 1, - "charOffset": 34, - "charLength": 206, - "snippet": { - "text": "public static class IncrementStrategyExtensions\n{\n public static VersionField ToVersionField(this IncrementStrategy strategy) => strategy switch\n {\n IncrementStrategy.None => VersionField.None," + "region": { + "startLine": 266, + "startColumn": 5, + "charOffset": 9082, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } + "contextRegion": { + "startLine": 264, + "startColumn": 1, + "charOffset": 9071, + "charLength": 150, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithPreventIncrementWhenBranchMerged(bool? value)\n {\n this.preventIncrementWhenBranchMerged = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f8c7df635da2b8ad", + "equalIndicator/v1": "9d1091b9ff2d424c0812ed314a87cfd29c7f6eeecf559efc306e108cc1c4a2ab" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "1ac30133f4a78181", - "equalIndicator/v1": "9be1d124e5d238645ce52708262f518ad3f9f4177c6a2da2044e3143590df0db" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedMember.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Enum member 'NoOpenFileErrorBox' is never used", - "markdown": "Enum member 'NoOpenFileErrorBox' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Testing/Helpers/ProcessHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 174, - "startColumn": 9, - "charOffset": 6303, - "charLength": 18, - "snippet": { - "text": "NoOpenFileErrorBox" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'DiscoverRepository' can be made private", + "markdown": "Method 'DiscoverRepository' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 172, - "startColumn": 1, - "charOffset": 6224, - "charLength": 113, - "snippet": { - "text": " NoGpFaultErrorBox = 0x2,\n NoAlignmentFaultExcept = 0x4,\n NoOpenFileErrorBox = 0x8000\n }\n" + "region": { + "startLine": 51, + "startColumn": 5, + "charOffset": 1734, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1723, + "charLength": 149, + "snippet": { + "text": " }\n\n public static void DiscoverRepository(this IServiceProvider sp)\n {\n var gitRepository = sp.GetRequiredService();" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.MsBuild.Tests", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "3b81dbc907dc82f9", + "equalIndicator/v1": "a4265a9c06bacc2838ccd8059ca6d68eacce0b3e23d5fd78b54e6a812bca24b2" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "79fefe9f9fe4faa3", - "equalIndicator/v1": "4fe5ef4b9b99a40a741be590e83d775cc3ee39dd4a8267caf4947e171b3a45fe" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedMember.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Enum member 'NoAlignmentFaultExcept' is never used", - "markdown": "Enum member 'NoAlignmentFaultExcept' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Testing/Helpers/ProcessHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 173, - "startColumn": 9, - "charOffset": 6265, - "charLength": 22, - "snippet": { - "text": "NoAlignmentFaultExcept" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'GetVersion' can be made private", + "markdown": "Method 'GetVersion' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 171, - "startColumn": 1, - "charOffset": 6190, - "charLength": 146, - "snippet": { - "text": " FailCriticalErrors = 0x1,\n NoGpFaultErrorBox = 0x2,\n NoAlignmentFaultExcept = 0x4,\n NoOpenFileErrorBox = 0x8000\n }" + "region": { + "startLine": 68, + "startColumn": 5, + "charOffset": 2674, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } + "contextRegion": { + "startLine": 66, + "startColumn": 1, + "charOffset": 2592, + "charLength": 343, + "snippet": { + "text": " => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits);\n\n public static GitVersionVariables GetVersion(this RepositoryFixtureBase fixture, IGitVersionConfiguration? configuration = null,\n IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null)\n {" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.MsBuild.Tests", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "318ac156b1657713", + "equalIndicator/v1": "a4afd1b08385395f0807fd8f3fc04f39d8fc8314a24009a2342a71b99c37769a" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "753a240dc52182f5", - "equalIndicator/v1": "c0b2552a70635e20a2355a2e69d9c35ebd2e3b080cd74f85d0dbec85084b567e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedMember.Local", - "kind": "fail", - "level": "note", - "message": { - "text": "Enum member 'Default' is never used", - "markdown": "Enum member 'Default' is never used" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Testing/Helpers/ProcessHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 170, - "startColumn": 9, - "charOffset": 6175, - "charLength": 7, - "snippet": { - "text": "Default" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Property 'DirectorySeparatorChar' can be made private", + "markdown": "Property 'DirectorySeparatorChar' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 168, - "startColumn": 1, - "charOffset": 6133, - "charLength": 123, - "snippet": { - "text": " private enum ErrorModes\n {\n Default = 0x0,\n FailCriticalErrors = 0x1,\n NoGpFaultErrorBox = 0x2," + "region": { + "startLine": 67, + "startColumn": 9, + "charOffset": 2878, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } + "contextRegion": { + "startLine": 65, + "startColumn": 1, + "charOffset": 2808, + "charLength": 228, + "snippet": { + "text": " {\n public static string NewLine => SysEnv.NewLine;\n public static char DirectorySeparatorChar => fileSystem.Path.DirectorySeparatorChar;\n\n private static readonly StringComparison OsDependentComparison =" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Testing", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "47e20dd81572c251", + "equalIndicator/v1": "a4f011d97b4f80ac560ed9ef839d4f3c53a31f9e284590ecb9000c1363ff5b8e" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "e57abe62354da987", - "equalIndicator/v1": "e5a0e1e0f5c4041d9a86121940ebd766fa5e46f2ce286a45e83ee2fdf95edabf" }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedMemberInSuper.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Only implementations of method 'FromJson' are used", - "markdown": "Only implementations of method 'FromJson' are used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 5, - "startColumn": 25, - "charOffset": 109, - "charLength": 8, - "snippet": { - "text": "FromJson" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithAssemblyVersioningFormat' can be made private", + "markdown": "Method 'WithAssemblyVersioningFormat' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 3, - "startColumn": 1, - "charOffset": 39, - "charLength": 203, - "snippet": { - "text": "public interface IVersionVariableSerializer\n{\n GitVersionVariables FromJson(string json);\n string ToJson(GitVersionVariables gitVersionVariables);\n GitVersionVariables FromFile(string filePath);" + "region": { + "startLine": 121, + "startColumn": 5, + "charOffset": 4516, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } + "contextRegion": { + "startLine": 119, + "startColumn": 1, + "charOffset": 4505, + "charLength": 136, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithAssemblyVersioningFormat(string? value)\n {\n this.assemblyVersioningFormat = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "65ec659931f70250", + "equalIndicator/v1": "a9ff1f6afad5baa1879308d0688fc50f93231148751f22ab0382a727857f2c0c" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "9c14d2762c92e19e", - "equalIndicator/v1": "5c1cb130ad5e53dc7120d8aeb6ef8f237824c9eaf90a4e3f0573d2e7f9cfe8c9" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedMemberInSuper.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Only implementations of property 'WorkingDirectory' are used", - "markdown": "Only implementations of property 'WorkingDirectory' are used" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Output/IConverterContext.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 5, - "startColumn": 12, - "charOffset": 71, - "charLength": 16, - "snippet": { - "text": "WorkingDirectory" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Constructor 'SemanticVersionPreReleaseTag' can be made private", + "markdown": "Constructor 'SemanticVersionPreReleaseTag' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 3, - "startColumn": 1, - "charOffset": 23, - "charLength": 76, - "snippet": { - "text": "public interface IConverterContext\n{\n string WorkingDirectory { get; }\n}\n" + "region": { + "startLine": 23, + "startColumn": 5, + "charOffset": 746, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } + "contextRegion": { + "startLine": 21, + "startColumn": 1, + "charOffset": 682, + "charLength": 227, + "snippet": { + "text": " public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;\n\n public SemanticVersionPreReleaseTag(string name, long? number, bool promoteTagEvenIfNameIsEmpty)" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4a42a72507675ee0", + "equalIndicator/v1": "cda0e8d0b89f3b9e17c4a83e1e9316a95447c3eb3c58bef1794d599c5bb8d116" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "60b1554fa4bd5dc2", - "equalIndicator/v1": "9d63774df9d7e05463e205630f117f973cc659d7fa5926a7e0f8aaaf2304b1c6" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'IgnoreConfigurationBuilder' is never used (except inside its declaration)", - "markdown": "Class 'IgnoreConfigurationBuilder' is never used (except inside its declaration)" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 3, - "startColumn": 23, - "charOffset": 59, - "charLength": 26, - "snippet": { - "text": "IgnoreConfigurationBuilder" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Property 'PromoteTagEvenIfNameIsEmpty' can be made private", + "markdown": "Property 'PromoteTagEvenIfNameIsEmpty' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 1, - "startColumn": 1, - "charOffset": 0, - "charLength": 146, - "snippet": { - "text": "namespace GitVersion.Configuration;\n\ninternal sealed class IgnoreConfigurationBuilder\n{\n public static IgnoreConfigurationBuilder New => new();" + "region": { + "startLine": 21, + "startColumn": 5, + "charOffset": 686, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } + "contextRegion": { + "startLine": 19, + "startColumn": 1, + "charOffset": 642, + "charLength": 165, + "snippet": { + "text": " public long? Number { get; init; }\n\n public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "304d08da85634319", + "equalIndicator/v1": "ce384c072aedd7cfb73948dda11dcd04749e99d41826a45d7df82e6ad841b651" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "25a2ace762dfb00f", - "equalIndicator/v1": "15d42fca64552bc8aff310e634bee6a2b9146fc9dfb8eb5f3b15593287d2233b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'TaggedCommitVersionStrategy' is never used", - "markdown": "Class 'TaggedCommitVersionStrategy' is never used" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 13, - "startColumn": 23, - "charOffset": 409, - "charLength": 27, - "snippet": { - "text": "TaggedCommitVersionStrategy" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Property 'RefSpecs' can be made private", + "markdown": "Property 'RefSpecs' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.LibGit2Sharp/Git/Remote.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 11, - "startColumn": 1, - "charOffset": 319, - "charLength": 173, - "snippet": { - "text": "/// Increments if the tag is not the current commit.\n/// \ninternal sealed class TaggedCommitVersionStrategy(\n ILog log,\n Lazy contextLazy," + "region": { + "startLine": 20, + "startColumn": 5, + "charOffset": 720, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } + "contextRegion": { + "startLine": 18, + "startColumn": 1, + "charOffset": 668, + "charLength": 107, + "snippet": { + "text": " public string Url => this.innerRemote.Url;\n\n public IEnumerable RefSpecs\n {\n get" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.LibGit2Sharp", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0b42b6fe81d50fee", + "equalIndicator/v1": "d9b036319212323201c50ca1c4b114e7cfd397a81f5cadd17e9763b36e145fec" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "d967b3fae2f6c018", - "equalIndicator/v1": "2df185ac94ad6c05efc2fb1b76cd20af362ffd450a47b703bb7dc4d31038aecf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'ExecutableHelper' is never used", - "markdown": "Class 'ExecutableHelper' is never used" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Helpers/ExecutableHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 5, - "startColumn": 21, - "charOffset": 89, - "charLength": 16, - "snippet": { - "text": "ExecutableHelper" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithVersionInBranchPattern' can be made private", + "markdown": "Method 'WithVersionInBranchPattern' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 3, - "startColumn": 1, - "charOffset": 27, - "charLength": 140, - "snippet": { - "text": "namespace GitVersion.Core.Tests.Helpers;\n\npublic static class ExecutableHelper\n{\n public static string GetDotNetExecutable() => \"dotnet\";" + "region": { + "startLine": 139, + "startColumn": 5, + "charOffset": 5044, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core.Tests", - "kind": "module" - } + "contextRegion": { + "startLine": 137, + "startColumn": 1, + "charOffset": 5033, + "charLength": 132, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithVersionInBranchPattern(string? value)\n {\n this.versionInBranchPattern = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "8348fe093daaf082", + "equalIndicator/v1": "da3a2b7bb813af9c8beb4477fcf5c07fc1e5fc4e6d6eeccd8de2e690e3fdeaa7" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "465f8011cb1f23ff", - "equalIndicator/v1": "5bb3dd2a0977188b991b9ed3965969b28c4b5411bf5729e98ff7520bedc05e41" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'TrackReleaseBranchesVersionStrategy' is never used", - "markdown": "Class 'TrackReleaseBranchesVersionStrategy' is never used" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 23, - "charOffset": 235, - "charLength": 35, - "snippet": { - "text": "TrackReleaseBranchesVersionStrategy" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'ToGitRepository' can be made private", + "markdown": "Method 'ToGitRepository' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 171, - "charLength": 179, - "snippet": { - "text": "namespace GitVersion.VersionCalculation;\n\ninternal sealed class TrackReleaseBranchesVersionStrategy(\n Lazy contextLazy,\n IRepositoryStore repositoryStore," + "region": { + "startLine": 161, + "startColumn": 5, + "charOffset": 6451, + "charLength": 8, + "snippet": { + "text": "internal" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } + "contextRegion": { + "startLine": 159, + "startColumn": 1, + "charOffset": 6440, + "charLength": 154, + "snippet": { + "text": " }\n\n internal static IGitRepository ToGitRepository(this IRepository repository)\n {\n var gitRepository = new GitRepository(new NullLog());" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.MsBuild.Tests", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "aa5d8e1a3910919c", + "equalIndicator/v1": "de8f75ffee4f641447c9483347e33e7705e4b9ef7d5131112ae2cdd416322ab0" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "b4f244eb64615685", - "equalIndicator/v1": "b63af6c15c019a9c52843e65463894bda0c76e2ebfb309105acccc5db97bedb4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 173, - "startColumn": 1, - "charOffset": 6763, - "charLength": 56, - "snippet": { - "text": "resharper_unused_method_return_value_global_highlighting" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithIsMainBranch' can be made private", + "markdown": "Method 'WithIsMainBranch' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 171, - "startColumn": 1, - "charOffset": 6695, - "charLength": 131, - "snippet": { - "text": "resharper_unused_auto_property_accessor_global_highlighting = none\n\nresharper_unused_method_return_value_global_highlighting = none" + "region": { + "startLine": 314, + "startColumn": 5, + "charOffset": 10518, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } + "contextRegion": { + "startLine": 312, + "startColumn": 1, + "charOffset": 10507, + "charLength": 110, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithIsMainBranch(bool? value)\n {\n this.isMainBranch = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0625bb954b3755eb", + "equalIndicator/v1": "e1537a990b34403b4d0d5046b725d803e2a199c4fba0bf04dd25e4ce99f3002b" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "f6fe51c359b54477", - "equalIndicator/v1": "8551ac8f1f5694db3b26e53bd40fcd09a79b4bbd2f22850569575210dd66333d" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 162, - "startColumn": 1, - "charOffset": 6452, - "charLength": 34, - "snippet": { - "text": "dotnet_diagnostic.RCS1037.severity" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'Combine' can be made private", + "markdown": "Method 'Combine' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 160, - "startColumn": 1, - "charOffset": 6411, - "charLength": 124, - "snippet": { - "text": "\n# RCS1037: Remove trailing white-space.\ndotnet_diagnostic.RCS1037.severity = error\n\n# RCS1036: Remove redundant empty line." + "region": { + "startLine": 125, + "startColumn": 9, + "charOffset": 5097, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } + "contextRegion": { + "startLine": 123, + "startColumn": 1, + "charOffset": 5078, + "charLength": 164, + "snippet": { + "text": " }\n\n public static string Combine(string? path1, string? path2, string? path3)\n {\n ArgumentException.ThrowIfNullOrWhiteSpace(path1);" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Testing", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9efd3542863b65cb", + "equalIndicator/v1": "e8a2e96804c2dd49761635866a90126621007fc0bc2e3d505ebc6fef0f03383c" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "002dbf3d5be336ee", - "equalIndicator/v1": "88845b091d5e4987ce1aec8a2d940e7d27f9a2464a89ccaca2d0af10b55bfb0c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 167, - "startColumn": 1, - "charOffset": 6580, - "charLength": 29, - "snippet": { - "text": "xml_space_before_self_closing" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithTrackMergeMessage' can be made private", + "markdown": "Method 'WithTrackMergeMessage' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 165, - "startColumn": 1, - "charOffset": 6536, - "charLength": 157, - "snippet": { - "text": "dotnet_diagnostic.RCS1036.severity = error\n\nxml_space_before_self_closing = true\n\nresharper_arrange_object_creation_when_type_not_evident_highlighting = none" + "region": { + "startLine": 284, + "startColumn": 5, + "charOffset": 9649, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } + "contextRegion": { + "startLine": 282, + "startColumn": 1, + "charOffset": 9638, + "charLength": 120, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithTrackMergeMessage(bool? value)\n {\n this.trackMergeMessage = value;" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c12445c5a92fea37", + "equalIndicator/v1": "fb7a2ab2c07c95d3f2a1c47d6f74f1cc0e45c77007c49f7ea9e387cc7b4ffb8d" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "1d2dff93b57079ac", - "equalIndicator/v1": "98c80a441f9ef5edf0b3cce3fe31ba0fca1fee2378ffe4035a40c1a7b30c70c5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 159, - "startColumn": 1, - "charOffset": 6366, - "charLength": 34, - "snippet": { - "text": "dotnet_diagnostic.IDE0005.severity" + { + "ruleId": "MemberCanBePrivate.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Field 'repositoryStore' can be made private", + "markdown": "Field 'repositoryStore' can be made private" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "charOffset": 6322, - "charLength": 129, - "snippet": { - "text": "\n# IDE0005: Using directive is unnecessary.\ndotnet_diagnostic.IDE0005.severity = warning\n\n# RCS1037: Remove trailing white-space." + "region": { + "startLine": 12, + "startColumn": 5, + "charOffset": 335, + "charLength": 9, + "snippet": { + "text": "protected" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } + "contextRegion": { + "startLine": 10, + "startColumn": 1, + "charOffset": 280, + "charLength": 224, + "snippet": { + "text": "{\n protected readonly ILog log = log.NotNull();\n protected readonly IRepositoryStore repositoryStore = repositoryStore.NotNull();\n private readonly Lazy versionContext = versionContext.NotNull();\n" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Core", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d774cc88ea0885cc", + "equalIndicator/v1": "fc453f975365798d2caf47bd8a217f79da184734fe3652e261743ccf2cb2fb7c" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "e19c8ddf75f7decc", - "equalIndicator/v1": "b44a286683a4904208a57ff03b1e0ab0f822c6daab929bdf2994a42050a7f98d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 169, - "startColumn": 1, - "charOffset": 6618, - "charLength": 68, - "snippet": { - "text": "resharper_arrange_object_creation_when_type_not_evident_highlighting" + { + "ruleId": "MemberCanBeProtected.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithIsSourceBranchFor' can be made protected", + "markdown": "Method 'WithIsSourceBranchFor' can be made protected" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 167, - "startColumn": 1, - "charOffset": 6580, - "charLength": 181, - "snippet": { - "text": "xml_space_before_self_closing = true\n\nresharper_arrange_object_creation_when_type_not_evident_highlighting = none\n\nresharper_unused_auto_property_accessor_global_highlighting = none" + "region": { + "startLine": 102, + "startColumn": 5, + "charOffset": 2934, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } + "contextRegion": { + "startLine": 100, + "startColumn": 1, + "charOffset": 2923, + "charLength": 152, + "snippet": { + "text": " }\n\n public virtual BranchConfigurationBuilder WithIsSourceBranchFor(IEnumerable values)\n {\n WithIsSourceBranchFor([.. values]);" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "907339a47a48aba5", + "equalIndicator/v1": "26daf9e7e80d3d2b5b915dd59c36b06265526229dc1ce38f2c3d1c54476f930d" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "777afc2fdb959232", - "equalIndicator/v1": "baef58ab287e0df1579468dec06220869bb62969dad314e065aeb1d8b865605e" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 165, - "startColumn": 1, - "charOffset": 6536, - "charLength": 34, - "snippet": { - "text": "dotnet_diagnostic.RCS1036.severity" + { + "ruleId": "MemberCanBeProtected.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Constant 'MainBranch' can be made protected", + "markdown": "Constant 'MainBranch' can be made protected" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Core.Tests/Helpers/TestBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 163, - "startColumn": 1, - "charOffset": 6495, - "charLength": 121, - "snippet": { - "text": "\n# RCS1036: Remove redundant empty line.\ndotnet_diagnostic.RCS1036.severity = error\n\nxml_space_before_self_closing = true" + "region": { + "startLine": 10, + "startColumn": 5, + "charOffset": 206, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } + "contextRegion": { + "startLine": 8, + "startColumn": 1, + "charOffset": 178, + "charLength": 178, + "snippet": { + "text": "public class TestBase\n{\n public const string MainBranch = \"main\";\n\n protected static IServiceProvider ConfigureServices(Action? overrideServices = null)" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.MsBuild.Tests", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "d8605a834ce1f2ec", + "equalIndicator/v1": "36bec50ba3e6870ccade82084537061038c70a64dee81529a4d3f0e1a0f37a8a" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "36e32bd3acbfb8d3", - "equalIndicator/v1": "df48f45afbdbddbe9a7a8de2fa6dc2a40f9932e4ed4d629f5dfb15e4c353c702" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 171, - "startColumn": 1, - "charOffset": 6695, - "charLength": 59, - "snippet": { - "text": "resharper_unused_auto_property_accessor_global_highlighting" + { + "ruleId": "MemberCanBeProtected.Global", + "kind": "fail", + "level": "note", + "message": { + "text": "Method 'WithConfiguration' can be made protected", + "markdown": "Method 'WithConfiguration' can be made protected" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", + "uriBaseId": "SRCROOT" }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 169, - "startColumn": 1, - "charOffset": 6618, - "charLength": 208, - "snippet": { - "text": "resharper_arrange_object_creation_when_type_not_evident_highlighting = none\n\nresharper_unused_auto_property_accessor_global_highlighting = none\n\nresharper_unused_method_return_value_global_highlighting = none" + "region": { + "startLine": 326, + "startColumn": 5, + "charOffset": 10835, + "charLength": 6, + "snippet": { + "text": "public" + }, + "sourceLanguage": "C#" }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } + "contextRegion": { + "startLine": 324, + "startColumn": 1, + "charOffset": 10824, + "charLength": 165, + "snippet": { + "text": " }\n\n public TConfigurationBuilder WithConfiguration(IGitVersionConfiguration value)\n {\n WithAssemblyVersioningScheme(value.AssemblyVersioningScheme);" + }, + "sourceLanguage": "C#" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "GitVersion.Configuration", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "50524bf965a4b8da", + "equalIndicator/v1": "60b9a3ae23943157b539c2d72261df7557fb4ac690984f6a78a697bc179c1db9" + }, + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "C#", + ".NET 8.0", + ".NET 9.0" ] } - ], - "partialFingerprints": { - "equalIndicator/v2": "1b9f756ea618b3a1", - "equalIndicator/v1": "f4dedbf8e985341cdfaa2ad6304d0d02419a65ce14c2ad3426df8c33dee1d38d" }, - "baselineState": "new", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - } - ], - "automationDetails": { - "id": "GitVersion/qodana/2025-04-24", - "guid": "7f6e787e-895a-41ae-870a-87ed20f9b2b7", - "properties": { - "jobUrl": "https://github.com/GitTools/GitVersion/actions/runs/14636844048", - "analysisKind": "regular" - } - }, - "newlineSequences": [ - "\r\n", - "\n" - ], - "properties": { - "qodana.promo.results": [ { - "ruleId": "MarkdownUnresolvedFileReference", + "ruleId": "MemberCanBeProtected.Global", "kind": "fail", - "level": "warning", + "level": "note", "message": { - "text": "Cannot resolve directory 'docs'", - "markdown": "Cannot resolve directory 'docs'" + "text": "Method 'WithSourceBranches' can be made protected", + "markdown": "Method 'WithSourceBranches' can be made protected" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "../docs/input/docs/usage/cli/arguments.md", + "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 130, - "startColumn": 34, - "charOffset": 5717, - "charLength": 4, + "startLine": 90, + "startColumn": 5, + "charOffset": 2600, + "charLength": 6, "snippet": { - "text": "docs" + "text": "public" }, - "sourceLanguage": "Markdown" + "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 128, + "startLine": 88, "startColumn": 1, - "charOffset": 5657, - "charLength": 261, + "charOffset": 2589, + "charLength": 146, "snippet": { - "text": "18. `update-build-number`\n\nRead more about [Configuration](/docs/reference/configuration).\n\nUsing `override-config` on the command line will not change the contents of the config file `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml` or `.GitVersion.yaml`." + "text": " }\n\n public virtual BranchConfigurationBuilder WithSourceBranches(IEnumerable values)\n {\n WithSourceBranches([.. values]);" }, - "sourceLanguage": "Markdown" + "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "rider.module", + "fullyQualifiedName": "GitVersion.Configuration", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "9643b0394420be16", - "equalIndicator/v1": "6b510b8a48dec9b75c0b13c790b4b98866ebe3f75fb167e51676a29f425c4a37" + "equalIndicator/v2": "99829247586fa2d8", + "equalIndicator/v1": "9b5933600024cb61754ddb6cf50acd68e820744494fc03e9df4381f5fb2c5dcc" }, "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", "tags": [ - "Markdown" + "C#", + ".NET 8.0", + ".NET 9.0" ] } }, { - "ruleId": "MarkdownUnresolvedFileReference", + "ruleId": "MemberCanBeProtected.Global", "kind": "fail", - "level": "warning", + "level": "note", "message": { - "text": "Cannot resolve symbol 'configuration'", - "markdown": "Cannot resolve symbol 'configuration'" + "text": "Method 'WithPreventIncrementWhenBranchMerged' can be made protected", + "markdown": "Method 'WithPreventIncrementWhenBranchMerged' can be made protected" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "../docs/input/docs/usage/cli/arguments.md", + "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 130, - "startColumn": 49, - "charOffset": 5732, - "charLength": 13, + "startLine": 54, + "startColumn": 5, + "charOffset": 1558, + "charLength": 6, "snippet": { - "text": "configuration" + "text": "public" }, - "sourceLanguage": "Markdown" + "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 128, + "startLine": 52, "startColumn": 1, - "charOffset": 5657, - "charLength": 261, + "charOffset": 1547, + "charLength": 163, "snippet": { - "text": "18. `update-build-number`\n\nRead more about [Configuration](/docs/reference/configuration).\n\nUsing `override-config` on the command line will not change the contents of the config file `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml` or `.GitVersion.yaml`." + "text": " }\n\n public virtual BranchConfigurationBuilder WithPreventIncrementWhenBranchMerged(bool? value)\n {\n this.preventIncrementWhenBranchMerged = value;" }, - "sourceLanguage": "Markdown" + "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "rider.module", + "fullyQualifiedName": "GitVersion.Configuration", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "0083bdf8adad6b9a", - "equalIndicator/v1": "9419591614d1b66f12c6392c26afa945c81a2ef01f10943cc08c353e49e3e659" + "equalIndicator/v2": "71e7d9b29242c60a", + "equalIndicator/v1": "b858e2f3b626a01e808428a2774ff97c1b17fcb757f23f4f64398e392b81dd3e" }, "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", "tags": [ - "Markdown" + "C#", + ".NET 8.0", + ".NET 9.0" ] } }, { - "ruleId": "MarkdownUnresolvedFileReference", + "ruleId": "MemberCanBeProtected.Global", "kind": "fail", - "level": "warning", + "level": "note", "message": { - "text": "Cannot resolve directory 'reference'", - "markdown": "Cannot resolve directory 'reference'" + "text": "Method 'WithBranch' can be made protected", + "markdown": "Method 'WithBranch' can be made protected" }, "locations": [ { "physicalLocation": { "artifactLocation": { - "uri": "../docs/input/docs/usage/cli/arguments.md", + "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", "uriBaseId": "SRCROOT" }, "region": { - "startLine": 130, - "startColumn": 39, - "charOffset": 5722, - "charLength": 9, + "startLine": 229, + "startColumn": 5, + "charOffset": 7788, + "charLength": 6, "snippet": { - "text": "reference" + "text": "public" }, - "sourceLanguage": "Markdown" + "sourceLanguage": "C#" }, "contextRegion": { - "startLine": 128, + "startLine": 227, "startColumn": 1, - "charOffset": 5657, - "charLength": 261, + "charOffset": 7777, + "charLength": 169, "snippet": { - "text": "18. `update-build-number`\n\nRead more about [Configuration](/docs/reference/configuration).\n\nUsing `override-config` on the command line will not change the contents of the config file `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml` or `.GitVersion.yaml`." + "text": " }\n\n public BranchConfigurationBuilder WithBranch(string value)\n => this.branchConfigurationBuilders.GetOrAdd(value, () => BranchConfigurationBuilder.New);\n" }, - "sourceLanguage": "Markdown" + "sourceLanguage": "C#" } }, "logicalLocations": [ { - "fullyQualifiedName": "rider.module", + "fullyQualifiedName": "GitVersion.Configuration", "kind": "module" } ] } ], "partialFingerprints": { - "equalIndicator/v2": "650688edb0a7015d", - "equalIndicator/v1": "bd452496a3cfc8b290c002e00c60c673313c538878196f0c1815854859bb740f" + "equalIndicator/v2": "fbde394b0bdaac89", + "equalIndicator/v1": "e8d7c2d9d95e73a87b377c0050c29d16bfae58ce8c8bb67b334a49da873d4650" }, "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", "tags": [ - "Markdown" + "C#", + ".NET 8.0", + ".NET 9.0" ] } } @@ -160913,8 +160228,8 @@ "configProfile": "starter", "deviceId": "200820300000000-3e47-7fab-260c-3266c4769609", "qodanaNewResultSummary": { - "high": 3, - "total": 3 + "low": 1, + "total": 1 } } } diff --git a/qodana.yaml b/qodana.yaml index 7ebeb09341..775baac1bd 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -7,86 +7,115 @@ version: "1.0" ide: QDNET #Specify inspection profile for code analysis profile: - name: qodana.starter + name: qodana.starter include: - - name: ConvertIfStatementToReturnStatement - - name: ConvertIfStatementToConditionalTernaryExpression - - name: AutoPropertyCanBeMadeGetOnly.Global - - name: CanReplaceCastWithLambdaReturnType - - name: ChangeFieldTypeToSystemThreadingLock - - name: ConvertIfStatementToSwitchStatement - - name: ConvertToConstant.Local - - name: DuplicatedSequentialIfBodies - - name: InlineTemporaryVariable - - name: InvertIf - - name: UseVerbatimString - - name: MemberCanBePrivate.Global - - name: MemberCanBeProtected.Global - - name: MergeIntoPattern - - name: UnusedMethodReturnValue.Global - - name: EditorConfigNoMatchingFiles - - name: PreferConcreteValueOverDefault - - name: PropertyCanBeMadeInitOnly.Global - - name: MoveLocalFunctionAfterJumpStatement - - name: RedundantExplicitParamsArrayCreation - - name: RedundantOverload.Global - - name: RedundantStringInterpolation - - name: RedundantVerbatimStringPrefix - - name: ReplaceSubstringWithRangeIndexer - - name: RCS1001 - - name: RCS1003 - - name: RCS1123 - - name: SYSLIB1045 - - name: CA1826 - - name: RCS1256 - - name: RCS1118 - - name: RCS1077 - - name: RCS1205 - - name: RCS1214 - - name: RCS1249 - - name: RCS1192 - - name: SYSLIB1054 - - name: CA1512 - - name: CA1866 - - name: CA1859 - - name: RCS1246 - - name: CA1829 - - name: RCS1266 - - name: RCS1267 - - name: RCS1227 - - name: SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault - - name: SwitchStatementHandlesSomeKnownEnumValuesWithDefault - - name: RedundantAlwaysMatchSubpattern - - name: UnusedType.Global - - name: UnusedMemberInSuper.Global - - name: UnusedMember.Local - - name: EditorConfigKeyCorrectness - - name: UseCollectionCountProperty - - name: UseDiscardAssignment - - name: ArrangeNamespaceBody - - name: SuggestDiscardDeclarationVarStyle - - name: ArrangeTrailingCommaInMultilineLists - - name: ArrangeObjectCreationWhenTypeNotEvident - - name: UseRawString - - name: VirtualMemberNeverOverridden.Global - - name: ArrangeVarKeywordsInDeconstructingDeclaration - - name: SuggestVarOrType_BuiltInTypes + - name: ConvertIfStatementToReturnStatement + - name: ConvertIfStatementToConditionalTernaryExpression + - name: AutoPropertyCanBeMadeGetOnly + - name: CanReplaceCastWithLambdaReturnType + - name: ChangeFieldTypeToSystemThreadingLock + - name: ConvertIfStatementToSwitchStatement + - name: ConvertToConstant.Local + - name: DuplicatedSequentialIfBodies + - name: InlineTemporaryVariable + - name: InvertIf + - name: UseVerbatimString + - name: MemberCanBePrivate + - name: MemberCanBeProtected + - name: MergeIntoPattern + - name: UnusedMethodReturnValue.Global + - name: EditorConfigNoMatchingFiles + - name: PreferConcreteValueOverDefault + - name: PropertyCanBeMadeInitOnly.Global + - name: MoveLocalFunctionAfterJumpStatement + - name: RedundantExplicitParamsArrayCreation + - name: RedundantOverload.Global + - name: RedundantStringInterpolation + - name: RedundantVerbatimStringPrefix + - name: ReplaceSubstringWithRangeIndexer + - name: RCS1001 + - name: RCS1003 + - name: RCS1123 + - name: SYSLIB1045 + - name: CA1826 + - name: RCS1256 + - name: RCS1118 + - name: RCS1077 + - name: RCS1205 + - name: RCS1214 + - name: RCS1249 + - name: RCS1192 + - name: SYSLIB1054 + - name: CA1512 + - name: CA1866 + - name: CA1859 + - name: RCS1246 + - name: CA1829 + - name: RCS1266 + - name: RCS1267 + - name: RCS1227 + - name: SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault + - name: SwitchStatementHandlesSomeKnownEnumValuesWithDefault + - name: RedundantAlwaysMatchSubpattern + - name: UnusedType.Global + - name: UnusedMemberInSuper.Global + - name: UnusedMember.Local + - name: EditorConfigKeyCorrectness + - name: UseCollectionCountProperty + - name: UseDiscardAssignment + - name: ArrangeNamespaceBody + - name: SuggestDiscardDeclarationVarStyle + - name: ArrangeTrailingCommaInMultilineLists + - name: ArrangeObjectCreationWhenTypeNotEvident + - name: UseRawString + - name: VirtualMemberNeverOverridden.Global + - name: ArrangeVarKeywordsInDeconstructingDeclaration + - name: SuggestVarOrType_BuiltInTypes + #Enable inspections #include: # - name: + #Disable inspections exclude: - - name: LoopCanBeConvertedToQuery - - name: ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator - - name: ConvertIfStatementToConditionalTernaryExpression - paths: - - GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs - - GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs + - name: LoopCanBeConvertedToQuery + - name: ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator + - name: ConvertIfStatementToConditionalTernaryExpression + paths: + - GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs + - GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs + - name: MemberCanBeProtected + paths: + - GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs + - GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs + - GitVersion.Core.Tests/Helpers/TestBase.cs + - name: MemberCanBePrivate + paths: + - GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs + - GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs + - GitVersion.Core/Helpers/FileSystemHelper.cs + - GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs + - GitVersion.Core/SemVer/SemanticVersion.cs + - GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs + - GitVersion.Core/Extensions/ConfigurationExtensions.cs + - GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs + - GitVersion.LibGit2Sharp/Git/Remote.cs + - name: AutoPropertyCanBeMadeGetOnly + paths: + - GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs + - GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs + - GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs + - name: UnusedType + paths: + - GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs + - GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs + - GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs #Execute shell command before Qodana execution (Applied in CI/CD pipeline) bootstrap: dotnet build src/GitVersion.slnx dotnet: - frameworks: net8.0;net9.0 - solution: src/GitVersion.slnx + frameworks: net8.0;net9.0 + solution: src/GitVersion.slnx + #Install IDE plugins before Qodana execution (Applied in CI/CD pipeline) #plugins: # - id: #(plugin id can be found at https://plugins.jetbrains.com) diff --git a/src/GitVersion.App.Tests/ExecCmdLineArgumentTest.cs b/src/GitVersion.App.Tests/ExecCmdLineArgumentTest.cs index b722f0a6ff..7b992bca38 100644 --- a/src/GitVersion.App.Tests/ExecCmdLineArgumentTest.cs +++ b/src/GitVersion.App.Tests/ExecCmdLineArgumentTest.cs @@ -1,4 +1,4 @@ -using GitVersion.Core.Tests.Helpers; +using GitVersion.App.Tests.Helpers; using GitVersion.Helpers; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj b/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj index b5afc842c8..a6e5694b9a 100644 --- a/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj +++ b/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj @@ -16,7 +16,6 @@ - diff --git a/src/GitVersion.Core.Tests/Helpers/ExecutableHelper.cs b/src/GitVersion.App.Tests/Helpers/ExecutableHelper.cs similarity index 90% rename from src/GitVersion.Core.Tests/Helpers/ExecutableHelper.cs rename to src/GitVersion.App.Tests/Helpers/ExecutableHelper.cs index 0918b3a9dd..f2a25a29b2 100644 --- a/src/GitVersion.Core.Tests/Helpers/ExecutableHelper.cs +++ b/src/GitVersion.App.Tests/Helpers/ExecutableHelper.cs @@ -1,6 +1,6 @@ using GitVersion.Helpers; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.App.Tests.Helpers; public static class ExecutableHelper { diff --git a/src/GitVersion.App.Tests/Helpers/GitVersionHelper.cs b/src/GitVersion.App.Tests/Helpers/GitVersionHelper.cs index fb92374e31..dda67328cd 100644 --- a/src/GitVersion.App.Tests/Helpers/GitVersionHelper.cs +++ b/src/GitVersion.App.Tests/Helpers/GitVersionHelper.cs @@ -1,5 +1,5 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; +using GitVersion.App.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Helpers; diff --git a/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs b/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs index 6485ce3e8f..b1dcf431b3 100644 --- a/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs +++ b/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs @@ -7,7 +7,7 @@ namespace GitVersion.App.Tests; public sealed class ProgramFixture { - private readonly IEnvironment environment; + private readonly TestEnvironment environment; private List> Overrides { get; } = []; private readonly Lazy logger; private readonly Lazy output; @@ -30,7 +30,7 @@ public ProgramFixture(string workingDirectory = "") { services.AddSingleton(log); services.AddSingleton(consoleAdapter); - services.AddSingleton(this.environment); + services.AddSingleton(this.environment); }); this.logger = new(() => logBuilder.ToString()); diff --git a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs index 3cc5e9d43c..7d16ba2289 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs @@ -75,7 +75,7 @@ public void WhenBadDateFormatShouldFail() [Test] public void NewInstanceShouldBeEmpty() { - IIgnoreConfiguration ignoreConfig = new IgnoreConfiguration(); + var ignoreConfig = new IgnoreConfiguration(); ignoreConfig.IsEmpty.ShouldBeTrue(); } diff --git a/src/GitVersion.Configuration/IgnoreConfiguration.cs b/src/GitVersion.Configuration/IgnoreConfiguration.cs index 9ec97e2b0a..cb1e81e679 100644 --- a/src/GitVersion.Configuration/IgnoreConfiguration.cs +++ b/src/GitVersion.Configuration/IgnoreConfiguration.cs @@ -22,4 +22,7 @@ public string? BeforeString [JsonPropertyName("sha")] [JsonPropertyDescription("A sequence of SHAs to be excluded from the version calculations.")] public HashSet Shas { get; init; } = []; + + [JsonIgnore] + public bool IsEmpty => Before == null && Shas.Count == 0; } diff --git a/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs b/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs index 6d0ae5575e..b47e24d0c8 100644 --- a/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs @@ -12,8 +12,5 @@ public static string ToJson(this GitVersionVariables gitVersionVariables) } public static GitVersionVariables ToGitVersionVariables(this string json) - { - var serializer = new VersionVariableSerializer(new FileSystem()); - return serializer.FromJson(json); - } + => VersionVariableSerializer.FromJson(json); } diff --git a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs index 3d2499f1d0..791625aeaa 100644 --- a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs +++ b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs @@ -6,7 +6,7 @@ namespace GitVersion.Core.Tests; [TestFixture] public class StringFormatWithExtensionTests { - private IEnvironment environment; + private TestEnvironment environment; [SetUp] public void Setup() => this.environment = new TestEnvironment(); diff --git a/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs b/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs index f836d52915..482b6a6c5f 100644 --- a/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs @@ -6,5 +6,5 @@ public interface IIgnoreConfiguration IReadOnlySet Shas { get; } - bool IsEmpty => Before == null && Shas.Count == 0; + bool IsEmpty { get; } } diff --git a/src/GitVersion.Core/Output/IConverterContext.cs b/src/GitVersion.Core/Output/IConverterContext.cs index eb8d0a4d32..94283ad5e6 100644 --- a/src/GitVersion.Core/Output/IConverterContext.cs +++ b/src/GitVersion.Core/Output/IConverterContext.cs @@ -1,6 +1,3 @@ namespace GitVersion; -public interface IConverterContext -{ - string WorkingDirectory { get; } -} +public interface IConverterContext; diff --git a/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs b/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs index af0bd89ad7..2d20579bb9 100644 --- a/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs +++ b/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs @@ -2,7 +2,6 @@ namespace GitVersion.OutputVariables; public interface IVersionVariableSerializer { - GitVersionVariables FromJson(string json); string ToJson(GitVersionVariables gitVersionVariables); GitVersionVariables FromFile(string filePath); void ToFile(GitVersionVariables gitVersionVariables, string filePath); diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index 930aa4530f..38ca63906a 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -346,7 +346,6 @@ GitVersion.Helpers.RetryAction.Execute(System.Action! operation) -> void GitVersion.Helpers.RetryAction.RetryAction(int maxRetries = 5) -> void GitVersion.Helpers.ServiceMessageEscapeHelper GitVersion.IConverterContext -GitVersion.IConverterContext.WorkingDirectory.get -> string! GitVersion.IEnvironment GitVersion.IEnvironment.GetEnvironmentVariable(string! variableName) -> string? GitVersion.IEnvironment.SetEnvironmentVariable(string! variableName, string? value) -> void @@ -472,7 +471,6 @@ GitVersion.OutputVariables.GitVersionVariables.WeightedPreReleaseNumber.get -> s GitVersion.OutputVariables.GitVersionVariables.WeightedPreReleaseNumber.init -> void GitVersion.OutputVariables.IVersionVariableSerializer GitVersion.OutputVariables.IVersionVariableSerializer.FromFile(string! filePath) -> GitVersion.OutputVariables.GitVersionVariables! -GitVersion.OutputVariables.IVersionVariableSerializer.FromJson(string! json) -> GitVersion.OutputVariables.GitVersionVariables! GitVersion.OutputVariables.IVersionVariableSerializer.ToFile(GitVersion.OutputVariables.GitVersionVariables! gitVersionVariables, string! filePath) -> void GitVersion.OutputVariables.IVersionVariableSerializer.ToJson(GitVersion.OutputVariables.GitVersionVariables! gitVersionVariables) -> string! GitVersion.RepositoryInfo diff --git a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs index 3bcec4b95c..b93fdec479 100644 --- a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs +++ b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs @@ -46,7 +46,7 @@ public void ShouldOutputFormatWithEnvironmentVariablesTests(string format, strin var fixture = CreateTestRepository(); var consoleBuilder = new StringBuilder(); IConsole console = new TestConsoleAdapter(consoleBuilder); - IEnvironment environment = new TestEnvironment(); + var environment = new TestEnvironment(); environment.SetEnvironmentVariable("CustomVar", "foo"); var sp = ConfigureServices(services => @@ -57,7 +57,7 @@ public void ShouldOutputFormatWithEnvironmentVariablesTests(string format, strin services.AddSingleton(options); services.AddSingleton(repository); services.AddSingleton(console); - services.AddSingleton(environment); + services.AddSingleton(environment); }); var versionVariables = sp.GetRequiredService().CalculateVersionVariables(); diff --git a/src/GitVersion.Output/GitVersionOutputTool.cs b/src/GitVersion.Output/GitVersionOutputTool.cs index af0b4bb144..76dac75b27 100644 --- a/src/GitVersion.Output/GitVersionOutputTool.cs +++ b/src/GitVersion.Output/GitVersionOutputTool.cs @@ -28,7 +28,7 @@ public void OutputVariables(GitVersionVariables variables, bool updateBuildNumbe { using (this.outputGenerator) { - this.outputGenerator.Execute(variables, new OutputContext(gitVersionOptions.WorkingDirectory, gitVersionOptions.OutputFile, updateBuildNumber)); + this.outputGenerator.Execute(variables, new OutputContext(gitVersionOptions.OutputFile, updateBuildNumber)); } } diff --git a/src/GitVersion.Output/OutputGenerator/OutputContext.cs b/src/GitVersion.Output/OutputGenerator/OutputContext.cs index 98ad1474ff..25791385b5 100644 --- a/src/GitVersion.Output/OutputGenerator/OutputContext.cs +++ b/src/GitVersion.Output/OutputGenerator/OutputContext.cs @@ -1,3 +1,3 @@ namespace GitVersion.Output.OutputGenerator; -internal readonly record struct OutputContext(string WorkingDirectory, string? OutputFile, bool? UpdateBuildNumber) : IConverterContext; +internal readonly record struct OutputContext(string? OutputFile, bool? UpdateBuildNumber) : IConverterContext; diff --git a/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs b/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs index 8293f0a7e4..eb5c7fc536 100644 --- a/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs +++ b/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs @@ -7,7 +7,7 @@ namespace GitVersion.OutputVariables; internal class VersionVariableSerializer(IFileSystem fileSystem) : IVersionVariableSerializer { - public GitVersionVariables FromJson(string json) + public static GitVersionVariables FromJson(string json) { var serializeOptions = JsonSerializerOptions(); var variablePairs = JsonSerializer.Deserialize>(json, serializeOptions); diff --git a/src/GitVersion.Testing/Helpers/ProcessHelper.cs b/src/GitVersion.Testing/Helpers/ProcessHelper.cs index 14d46657d0..e37c74e534 100644 --- a/src/GitVersion.Testing/Helpers/ProcessHelper.cs +++ b/src/GitVersion.Testing/Helpers/ProcessHelper.cs @@ -1,4 +1,5 @@ using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; namespace GitVersion.Testing; @@ -165,6 +166,7 @@ private enum NativeErrorCode } [Flags] + [SuppressMessage("ReSharper", "UnusedMember.Local")] private enum ErrorModes { Default = 0x0,