Repository navigation
Add Claude web SDK provisioning and earlier CodeQL feedback instructions #1087
ci.yml
on: push
Build
54s
Secret Scan
15s
Agent Instructions Sync Check
4s
Release Build Verification
3m 36s
Unit Tests
1m 2s
Integration Tests
36s
UX Screenshot Verification
57s
E2E Tests
1m 29s
Code Coverage
1m 42s
System Tests (Runner UI Automation)
2m 23s
Annotations
98 warnings and 2 notices
|
Agent Instructions Sync Check
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Secret Scan
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02, github/codeql-action/upload-sarif@ce64ddcb0d8d890d2df4a9d1c04ff297367dea2a. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Secret Scan
CodeQL Action v3 will be deprecated in December 2026. Please update all occurrences of the CodeQL Action in your workflow files to v4. For more information, see https://github.blog/changelog/2025-10-28-upcoming-deprecation-of-codeql-action-v3/
|
|
Build
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Build:
src/Arbor.HttpClient.Core.Tests/SseServiceTests.cs#L104
The behavior of 'StringBuilder.AppendLine(ref StringBuilder.AppendInterpolatedStringHandler)' could vary based on the current user's locale settings. Replace this call in 'SseServiceTests.ParseSseStreamAsync_ShouldRespectCancellationToken()' with a call to 'StringBuilder.AppendLine(IFormatProvider, ref StringBuilder.AppendInterpolatedStringHandler)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
|
|
Build:
src/Arbor.HttpClient.Core.Tests/ProcessEnvironmentCollection.cs#L10
Rename type name ProcessEnvironmentCollection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Build:
src/Arbor.HttpClient.Core.Integration.Tests/KestrelServerCollection.cs#L9
Rename type name KestrelServerCollection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Build:
src/Arbor.HttpClient.Storage.Sqlite/SqliteCollectionRepository.cs#L219
Change return type of method 'DeserializeHeaders' from 'System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' to 'System.Collections.Generic.List<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
Build:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L116
Change return type of method 'MergeParameters' from 'System.Collections.Generic.IReadOnlyList<Microsoft.OpenApi.Models.OpenApiParameter>' to 'System.Collections.Generic.List<Microsoft.OpenApi.Models.OpenApiParameter>' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
Build:
src/Arbor.HttpClient.Core/Sse/SseService.cs#L91
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865)
|
|
Build:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L15
Member 'Import' does not access instance data and can be marked as static (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822)
|
|
Build:
src/Arbor.HttpClient.Core/HttpRequest/CurlFormatter.cs#L68
'string.Replace(string, string?)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.HttpRequest.CurlFormatter.ShellEscape(string)' with a call to 'string.Replace(string, string?, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Build:
src/Arbor.HttpClient.Core/Variables/VariableResolver.cs#L74
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.Variables.VariableResolver.Resolve(string, System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.Environments.EnvironmentVariable>)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Build:
src/Arbor.HttpClient.Core/Collections/Collection.cs#L5
Rename type name Collection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Integration Tests
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Integration Tests:
src/Arbor.HttpClient.Core.Integration.Tests/KestrelServerCollection.cs#L9
Rename type name KestrelServerCollection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Integration Tests:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L116
Change return type of method 'MergeParameters' from 'System.Collections.Generic.IReadOnlyList<Microsoft.OpenApi.Models.OpenApiParameter>' to 'System.Collections.Generic.List<Microsoft.OpenApi.Models.OpenApiParameter>' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
Integration Tests:
src/Arbor.HttpClient.Core/Sse/SseService.cs#L91
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865)
|
|
Integration Tests:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L15
Member 'Import' does not access instance data and can be marked as static (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822)
|
|
Integration Tests:
src/Arbor.HttpClient.Core/Variables/VariableResolver.cs#L74
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.Variables.VariableResolver.Resolve(string, System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.Environments.EnvironmentVariable>)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Integration Tests:
src/Arbor.HttpClient.Core/HttpRequest/CurlFormatter.cs#L68
'string.Replace(string, string?)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.HttpRequest.CurlFormatter.ShellEscape(string)' with a call to 'string.Replace(string, string?, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Integration Tests:
src/Arbor.HttpClient.Core/Collections/Collection.cs#L5
Rename type name Collection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
UX Screenshot Verification
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Desktop/Shared/TextHelpers.cs#L15
'string.Contains(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Desktop.Shared.TextHelpers.StripNewlines(string)' with a call to 'string.Contains(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Desktop/Features/Scripting/RoslynScriptRunner.cs#L24
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Desktop/Shared/DisposableExtensions.cs#L3
Rename namespace Arbor.HttpClient.Desktop.Shared so that it no longer conflicts with the reserved language keyword 'Shared'. Using a reserved keyword as the name of a namespace makes it harder for consumers in other languages to use the namespace. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716)
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Storage.Sqlite/SqliteCollectionRepository.cs#L219
Change return type of method 'DeserializeHeaders' from 'System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' to 'System.Collections.Generic.List<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L116
Change return type of method 'MergeParameters' from 'System.Collections.Generic.IReadOnlyList<Microsoft.OpenApi.Models.OpenApiParameter>' to 'System.Collections.Generic.List<Microsoft.OpenApi.Models.OpenApiParameter>' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L15
Member 'Import' does not access instance data and can be marked as static (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822)
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Core/HttpRequest/CurlFormatter.cs#L68
'string.Replace(string, string?)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.HttpRequest.CurlFormatter.ShellEscape(string)' with a call to 'string.Replace(string, string?, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Core/Variables/VariableResolver.cs#L74
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.Variables.VariableResolver.Resolve(string, System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.Environments.EnvironmentVariable>)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Core/Sse/SseService.cs#L91
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865)
|
|
UX Screenshot Verification:
src/Arbor.HttpClient.Core/Collections/Collection.cs#L5
Rename type name Collection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Unit Tests
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit Tests:
src/Arbor.HttpClient.Core.Tests/SseServiceTests.cs#L104
The behavior of 'StringBuilder.AppendLine(ref StringBuilder.AppendInterpolatedStringHandler)' could vary based on the current user's locale settings. Replace this call in 'SseServiceTests.ParseSseStreamAsync_ShouldRespectCancellationToken()' with a call to 'StringBuilder.AppendLine(IFormatProvider, ref StringBuilder.AppendInterpolatedStringHandler)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
|
|
Unit Tests:
src/Arbor.HttpClient.Core.Tests/ProcessEnvironmentCollection.cs#L10
Rename type name ProcessEnvironmentCollection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Unit Tests:
src/Arbor.HttpClient.Core.Integration.Tests/KestrelServerCollection.cs#L9
Rename type name KestrelServerCollection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Unit Tests:
src/Arbor.HttpClient.Storage.Sqlite/SqliteCollectionRepository.cs#L219
Change return type of method 'DeserializeHeaders' from 'System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' to 'System.Collections.Generic.List<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
Unit Tests:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L116
Change return type of method 'MergeParameters' from 'System.Collections.Generic.IReadOnlyList<Microsoft.OpenApi.Models.OpenApiParameter>' to 'System.Collections.Generic.List<Microsoft.OpenApi.Models.OpenApiParameter>' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
Unit Tests:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L15
Member 'Import' does not access instance data and can be marked as static (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822)
|
|
Unit Tests:
src/Arbor.HttpClient.Core/Sse/SseService.cs#L91
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865)
|
|
Unit Tests:
src/Arbor.HttpClient.Core/Variables/VariableResolver.cs#L74
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.Variables.VariableResolver.Resolve(string, System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.Environments.EnvironmentVariable>)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Unit Tests:
src/Arbor.HttpClient.Core/HttpRequest/CurlFormatter.cs#L68
'string.Replace(string, string?)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.HttpRequest.CurlFormatter.ShellEscape(string)' with a call to 'string.Replace(string, string?, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Unit Tests:
src/Arbor.HttpClient.Core/Collections/Collection.cs#L5
Rename type name Collection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
E2E Tests
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
E2E Tests:
src/Arbor.HttpClient.Desktop/Shared/TextHelpers.cs#L15
'string.Contains(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Desktop.Shared.TextHelpers.StripNewlines(string)' with a call to 'string.Contains(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
E2E Tests:
src/Arbor.HttpClient.Desktop/Features/Scripting/RoslynScriptRunner.cs#L24
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
|
|
E2E Tests:
src/Arbor.HttpClient.Desktop/Shared/DisposableExtensions.cs#L3
Rename namespace Arbor.HttpClient.Desktop.Shared so that it no longer conflicts with the reserved language keyword 'Shared'. Using a reserved keyword as the name of a namespace makes it harder for consumers in other languages to use the namespace. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716)
|
|
E2E Tests:
src/Arbor.HttpClient.Storage.Sqlite/SqliteCollectionRepository.cs#L219
Change return type of method 'DeserializeHeaders' from 'System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' to 'System.Collections.Generic.List<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
E2E Tests:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L116
Change return type of method 'MergeParameters' from 'System.Collections.Generic.IReadOnlyList<Microsoft.OpenApi.Models.OpenApiParameter>' to 'System.Collections.Generic.List<Microsoft.OpenApi.Models.OpenApiParameter>' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
E2E Tests:
src/Arbor.HttpClient.Core/Sse/SseService.cs#L91
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865)
|
|
E2E Tests:
src/Arbor.HttpClient.Core/HttpRequest/CurlFormatter.cs#L68
'string.Replace(string, string?)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.HttpRequest.CurlFormatter.ShellEscape(string)' with a call to 'string.Replace(string, string?, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
E2E Tests:
src/Arbor.HttpClient.Core/Variables/VariableResolver.cs#L74
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.Variables.VariableResolver.Resolve(string, System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.Environments.EnvironmentVariable>)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
E2E Tests:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L15
Member 'Import' does not access instance data and can be marked as static (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822)
|
|
E2E Tests:
src/Arbor.HttpClient.Core/Collections/Collection.cs#L5
Rename type name Collection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Code Coverage
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Code Coverage:
src/Arbor.HttpClient.Core.Integration.Tests/KestrelServerCollection.cs#L9
Rename type name KestrelServerCollection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Code Coverage:
src/Arbor.HttpClient.Core.Tests/SseServiceTests.cs#L104
The behavior of 'StringBuilder.AppendLine(ref StringBuilder.AppendInterpolatedStringHandler)' could vary based on the current user's locale settings. Replace this call in 'SseServiceTests.ParseSseStreamAsync_ShouldRespectCancellationToken()' with a call to 'StringBuilder.AppendLine(IFormatProvider, ref StringBuilder.AppendInterpolatedStringHandler)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
|
|
Code Coverage:
src/Arbor.HttpClient.Core.Tests/ProcessEnvironmentCollection.cs#L10
Rename type name ProcessEnvironmentCollection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Code Coverage:
src/Arbor.HttpClient.Storage.Sqlite/SqliteCollectionRepository.cs#L219
Change return type of method 'DeserializeHeaders' from 'System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' to 'System.Collections.Generic.List<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
Code Coverage:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L116
Change return type of method 'MergeParameters' from 'System.Collections.Generic.IReadOnlyList<Microsoft.OpenApi.Models.OpenApiParameter>' to 'System.Collections.Generic.List<Microsoft.OpenApi.Models.OpenApiParameter>' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
Code Coverage:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L15
Member 'Import' does not access instance data and can be marked as static (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822)
|
|
Code Coverage:
src/Arbor.HttpClient.Core/Sse/SseService.cs#L91
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865)
|
|
Code Coverage:
src/Arbor.HttpClient.Core/HttpRequest/CurlFormatter.cs#L68
'string.Replace(string, string?)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.HttpRequest.CurlFormatter.ShellEscape(string)' with a call to 'string.Replace(string, string?, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Code Coverage:
src/Arbor.HttpClient.Core/Variables/VariableResolver.cs#L74
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.Variables.VariableResolver.Resolve(string, System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.Environments.EnvironmentVariable>)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Code Coverage:
src/Arbor.HttpClient.Core/Collections/Collection.cs#L5
Rename type name Collection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
System Tests (Runner UI Automation)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9, actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Desktop/Shared/TextHelpers.cs#L15
'string.Contains(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Desktop.Shared.TextHelpers.StripNewlines(string)' with a call to 'string.Contains(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Desktop/Features/Scripting/RoslynScriptRunner.cs#L24
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Desktop/Shared/DisposableExtensions.cs#L3
Rename namespace Arbor.HttpClient.Desktop.Shared so that it no longer conflicts with the reserved language keyword 'Shared'. Using a reserved keyword as the name of a namespace makes it harder for consumers in other languages to use the namespace. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716)
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Storage.Sqlite/SqliteCollectionRepository.cs#L219
Change return type of method 'DeserializeHeaders' from 'System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' to 'System.Collections.Generic.List<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L116
Change return type of method 'MergeParameters' from 'System.Collections.Generic.IReadOnlyList<Microsoft.OpenApi.Models.OpenApiParameter>' to 'System.Collections.Generic.List<Microsoft.OpenApi.Models.OpenApiParameter>' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L15
Member 'Import' does not access instance data and can be marked as static (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822)
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Core/Sse/SseService.cs#L91
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865)
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Core/HttpRequest/CurlFormatter.cs#L68
'string.Replace(string, string?)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.HttpRequest.CurlFormatter.ShellEscape(string)' with a call to 'string.Replace(string, string?, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Core/Variables/VariableResolver.cs#L74
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.Variables.VariableResolver.Resolve(string, System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.Environments.EnvironmentVariable>)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
System Tests (Runner UI Automation):
src/Arbor.HttpClient.Core/Collections/Collection.cs#L5
Rename type name Collection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Release Build Verification
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/App.axaml.cs#L325
Avoid hardcoding SslProtocols 'Tls13' to ensure your application remains secure in the future. Use 'None' to let the Operating System choose a version. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5398)
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/App.axaml.cs#L324
Avoid hardcoding SslProtocols 'Tls12' to ensure your application remains secure in the future. Use 'None' to let the Operating System choose a version. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5398)
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/App.axaml.cs#L322
Transport Layer Security protocol version 'Tls11' is deprecated. Use 'None' to let the Operating System choose a version. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5397)
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/App.axaml.cs#L321
Transport Layer Security protocol version 'Tls' is deprecated. Use 'None' to let the Operating System choose a version. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5397)
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/App.axaml.cs#L332
The ServerCertificateValidationCallback is set to a function that accepts any server certificate, by always returning true. Ensure that server certificates are validated to verify the identity of the server receiving requests. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca5359)
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/Shared/HttpContentTypeHelper.cs#L14
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Desktop.Shared.HttpContentTypeHelper.NormalizeMediaType(string)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/Shared/TextHelpers.cs#L15
'string.Contains(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Desktop.Shared.TextHelpers.StripNewlines(string)' with a call to 'string.Contains(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/Shared/TextHelpers.cs#L15
'string.Contains(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Desktop.Shared.TextHelpers.StripNewlines(string)' with a call to 'string.Contains(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/Features/Scripting/RoslynScriptRunner.cs#L24
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
|
|
Release Build Verification:
src/Arbor.HttpClient.Desktop/Shared/DisposableExtensions.cs#L3
Rename namespace Arbor.HttpClient.Desktop.Shared so that it no longer conflicts with the reserved language keyword 'Shared'. Using a reserved keyword as the name of a namespace makes it harder for consumers in other languages to use the namespace. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716)
|
|
Release Build Verification:
src/Arbor.HttpClient.Core.Tests/SseServiceTests.cs#L104
The behavior of 'StringBuilder.AppendLine(ref StringBuilder.AppendInterpolatedStringHandler)' could vary based on the current user's locale settings. Replace this call in 'SseServiceTests.ParseSseStreamAsync_ShouldRespectCancellationToken()' with a call to 'StringBuilder.AppendLine(IFormatProvider, ref StringBuilder.AppendInterpolatedStringHandler)'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1305)
|
|
Release Build Verification:
src/Arbor.HttpClient.Core.Tests/ProcessEnvironmentCollection.cs#L10
Rename type name ProcessEnvironmentCollection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Release Build Verification:
src/Arbor.HttpClient.Core.Integration.Tests/KestrelServerCollection.cs#L9
Rename type name KestrelServerCollection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
Release Build Verification:
src/Arbor.HttpClient.Storage.Sqlite/SqliteCollectionRepository.cs#L219
Change return type of method 'DeserializeHeaders' from 'System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' to 'System.Collections.Generic.List<Arbor.HttpClient.Core.HttpRequest.RequestHeader>?' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
Release Build Verification:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L116
Change return type of method 'MergeParameters' from 'System.Collections.Generic.IReadOnlyList<Microsoft.OpenApi.Models.OpenApiParameter>' to 'System.Collections.Generic.List<Microsoft.OpenApi.Models.OpenApiParameter>' for improved performance (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1859)
|
|
Release Build Verification:
src/Arbor.HttpClient.Core/Sse/SseService.cs#L91
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1865)
|
|
Release Build Verification:
src/Arbor.HttpClient.Core/OpenApiImport/OpenApiImportService.cs#L15
Member 'Import' does not access instance data and can be marked as static (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1822)
|
|
Release Build Verification:
src/Arbor.HttpClient.Core/Variables/VariableResolver.cs#L74
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.Variables.VariableResolver.Resolve(string, System.Collections.Generic.IReadOnlyList<Arbor.HttpClient.Core.Environments.EnvironmentVariable>)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Release Build Verification:
src/Arbor.HttpClient.Core/HttpRequest/CurlFormatter.cs#L68
'string.Replace(string, string?)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Arbor.HttpClient.Core.HttpRequest.CurlFormatter.ShellEscape(string)' with a call to 'string.Replace(string, string?, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
|
Release Build Verification:
src/Arbor.HttpClient.Core/Collections/Collection.cs#L5
Rename type name Collection so that it does not end in 'Collection' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
|
System Tests (Runner UI Automation)
NOTICE: windows-latest requests are being redirected to windows-2025-vs2026 by June 15, 2026
|
|
Release Build Verification
NOTICE: windows-latest requests are being redirected to windows-2025-vs2026 by June 15, 2026
|