Skip to content

fix: shorten oversized namespace segments and class names for Java, Python, PHP#7714

Merged
baywet merged 9 commits into
mainfrom
fix/shorten-oversized-namespace-segments
May 22, 2026
Merged

fix: shorten oversized namespace segments and class names for Java, Python, PHP#7714
baywet merged 9 commits into
mainfrom
fix/shorten-oversized-namespace-segments

Conversation

@gavinbarron
Copy link
Copy Markdown
Contributor

@gavinbarron gavinbarron commented May 20, 2026

Summary

Fixes #7713

OData functions with many parameters (e.g., deviceReport with 7+ parameters) generate namespace segments and class names exceeding 268 characters, causing Windows MAX_PATH violations for Java, Python, and PHP.

This PR shortens oversized names at the CodeDOM level (refiner phase) using truncation + 8-char SHA256 hash suffix, capping segments at 64 characters while preserving human readability and uniqueness.

Changes

Core shortening logic

  • StringExtensions.ShortenNameSegment() — Truncates names exceeding the limit by keeping the first 55 chars + _ + 8-char lowercase hex hash of the full original name. Deterministic and collision-resistant.
  • CommonLanguageRefiner.ShortenOversizedNamespaceSegments() — Walks all CodeNamespace nodes, shortening any segment exceeding 64 chars. Also shortens CodeClass, CodeEnum, and CodeInterface names, enriching their doc comments with the original name for disambiguation.
  • CommonLanguageRefiner.ShortenCodeElementNameIfOversized() — Helper that renames a code element and annotates its documentation. Handles null documentation defensively.

Language refiner integration

Why no fix needed for C#/Go/TypeScript

  • C# already uses ShortenFileName() in its path segmenter
  • Go uses flat file layout with ShortenFileName(100)
  • TypeScript uses flat index.ts files

Type reference integrity

CodeType.Name has a custom getter that delegates to TypeDefinition.Name when set (CodeType.cs:12). When we rename a CodeClass, all CodeType instances pointing to it automatically return the new name — no manual update of return types or property types needed.

Tests

  • 9 new unit tests for ShortenNameSegment and HashString
  • 5 new integration tests for Java refiner (shortening, determinism, return type reflection, null documentation)
  • All 1994 tests pass

Example

Before (268 chars):

microsoftgraphnetworkaccessdevicereportwithstartdatetimewithenddatetimediscoveredapplicationsegmentiddiscoveredapplicationsegmentidapplicationidapplicationidaiagentidaiagentidaiagentnameaiagentnamecloudapplicationnamecloudapplicationname

After (64 chars):

microsoftgraphnetworkaccessdevicereportwithstartdat_a1b2c3d4

@gavinbarron gavinbarron requested a review from a team as a code owner May 20, 2026 23:02
@msgraph-bot msgraph-bot Bot added this to Kiota May 20, 2026
Comment thread tests/Kiota.Builder.Tests/Export/PublicAPIExportServiceTests.cs Outdated
…ython, PHP

Adds ShortenNameSegment() extension method that truncates names exceeding
64 characters by keeping the first 55 chars + underscore + 8-char SHA256
hash suffix. This preserves human readability while ensuring uniqueness.

Adds ShortenOversizedNamespaceSegments() in CommonLanguageRefiner that
walks all CodeNamespace nodes and CodeClass instances, shortening any
segment or class name exceeding the threshold. When a class is shortened,
its doc comment is enriched with the original name for disambiguation.

Called from JavaRefiner, PythonRefiner, and PhpRefiner after other naming
transforms. This fixes Windows path limit violations caused by OData
functions with many parameters (e.g., deviceReport with 7+ parameters
generating 268+ char namespace segments).

C#, Go, and TypeScript already avoid this via their own mechanisms
(ShortenFileName in path segmenters, flat file layouts).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@baywet
Copy link
Copy Markdown
Member

baywet commented May 21, 2026

@gavinbarron great on the general approach, it seems we've had a regression for PHP though (see integration tests).
Also you might want to revert #7710 while at it.

Reverts #7710 so the integration tests exercise the long-name
patterns (deviceReport, userReport) that triggered path-length
failures. Our shortening fix should now handle these correctly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@gavinbarron
Copy link
Copy Markdown
Contributor Author

Integration tests doing their jobs nicely here. Good call on reverting that omission from the integration tests

…ners

ShortenOversizedNamespaceSegments must run BEFORE AddPropertiesAndMethodTypesImports
so that CodeUsing.Name values reflect the shortened namespace paths. Otherwise,
PHP 'use' statements contain stale pre-shortened namespace paths combined with
shortened class names, causing PHPStan class.notFound errors.

Java already had the correct order (shorten then imports). This aligns PHP and
Python to match.

Adds PHP refiner integration tests for shortening and import consistency.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
baywet
baywet previously approved these changes May 21, 2026
@github-project-automation github-project-automation Bot moved this to In Progress 🚧 in Kiota May 21, 2026
…rtening

Directly setting codeElement.Name left stale keys in the parent's
InnerChildElements dictionary. Later refiner steps (e.g.,
MoveClassesWithNamespaceNamesUnderNamespace, RemoveChildElement)
that look up elements by Name failed with 'element to rename was
not found'.

Now uses parentNamespace.RenameChildElement(oldName, newName) which
properly removes the old key and re-adds with the new shortened name.
Iteration is materialized with .ToList() to avoid modifying the
dictionary during enumeration.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread src/Kiota.Builder/Refiners/CommonLanguageRefiner.cs Outdated
Comment thread src/Kiota.Builder/Refiners/CommonLanguageRefiner.cs Outdated
Comment thread src/Kiota.Builder/Refiners/CommonLanguageRefiner.cs Outdated
gavinbarron and others added 3 commits May 22, 2026 11:17
ToArray() is more memory-efficient (no over-allocation) and aligns
with the existing refiner convention in this codebase.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@baywet baywet enabled auto-merge (squash) May 22, 2026 21:57
@github-actions
Copy link
Copy Markdown
Contributor

Summary

Summary
Generated on: 05/22/2026 - 22:04:56
Coverage date: 05/22/2026 - 22:04:44 - 05/22/2026 - 22:04:50
Parser: MultiReport (3x Cobertura)
Assemblies: 2
Classes: 438
Files: 482
Line coverage: 71.1% (29908 of 42029)
Covered lines: 29908
Uncovered lines: 12121
Coverable lines: 42029
Total lines: 57692
Branch coverage: 67.2% (13710 of 20399)
Covered branches: 13710
Total branches: 20399
Method coverage: Feature is only available for sponsors

Coverage

kiota - 12.3%
Name Line Branch
kiota 12.3% 3.8%
kiota.Authentication.GitHub.DeviceCode.AccessCodeResponseJsonContext 0% 0%
kiota.Authentication.GitHub.DeviceCode.AccessTokenProvider 0% 0%
kiota.Authentication.GitHub.DeviceCode.DeviceCodeAuthenticationProvider 0%
kiota.Authentication.GitHub.DeviceCode.GitHubDeviceCodeResponse 0%
kiota.Authentication.GitHub.DeviceCode.GitHubDeviceCodeResponseJsonContext 0% 0%
kiota.Extension.CollectionExtensions 0% 0%
kiota.Extension.EnumerableExtensions 0% 0%
kiota.Extension.KiotaHostExtensions 27.2% 38%
kiota.Extension.StringExtensions 0% 0%
Kiota.Generated.KiotaAppSettings 0%
kiota.Handlers.BaseKiotaCommandHandler 4.1% 0%
kiota.Handlers.Client.AddHandler 0% 0%
kiota.Handlers.Client.EditHandler 0% 0%
kiota.Handlers.Client.GenerateHandler 0% 0%
kiota.Handlers.Client.RemoveHandler 0% 0%
kiota.Handlers.KiotaDownloadCommandHandler 7.9% 0%
kiota.Handlers.KiotaGenerateCommandHandler 15.7% 0%
kiota.Handlers.KiotaGitHubDeviceLoginCommandHandler 6% 0%
kiota.Handlers.KiotaGitHubLogoutCommandHandler 10.2% 0%
kiota.Handlers.KiotaGitHubPatLoginCommandHandler 10.5% 0%
kiota.Handlers.KiotaInfoCommandHandler 9.2% 0%
kiota.Handlers.KiotaRpcCommandHandler 8.3% 0%
kiota.Handlers.KiotaSearchBasedCommandHandler 0% 0%
kiota.Handlers.KiotaSearchCommandHandler 8.9% 0%
kiota.Handlers.KiotaShowCommandHandler 10.6% 0%
kiota.Handlers.KiotaUpdateCommandHandler 8.2% 0%
kiota.Handlers.Plugin.AddHandler 0% 0%
kiota.Handlers.Plugin.EditHandler 0% 0%
kiota.Handlers.Plugin.GenerateHandler 0% 0%
kiota.Handlers.Plugin.RemoveHandler 0% 0%
kiota.Handlers.Workspace.InitHandler 0% 0%
kiota.Handlers.Workspace.MigrateHandler 0% 0%
kiota.ILoggerExtensions 0% 0%
kiota.KiotaClientCommands 0%
kiota.KiotaConfigurationExtensions 0% 0%
kiota.KiotaConfigurationJsonContext 0% 0%
kiota.KiotaHost 90.6% 50%
kiota.KiotaPluginCommands 0% 0%
kiota.KiotaWorkspaceCommands 0%
kiota.Program 0% 0%
kiota.Rpc.AdaptiveCardInfo 0%
kiota.Rpc.AdaptiveCardMapper 0% 0%
kiota.Rpc.ForwardedLogger`1 0%
kiota.Rpc.LogEntry 0%
kiota.Rpc.ManifestResult 0%
kiota.Rpc.NoopLogger`1 0%
kiota.Rpc.OAuthFlow 0%
kiota.Rpc.OAuthFlows 0%
kiota.Rpc.OpenApiSpecVersionMapper 0% 0%
kiota.Rpc.PathItem 0%
kiota.Rpc.PluginAuth 0%
kiota.Rpc.PluginFunction 0%
kiota.Rpc.PluginResultMapper 0% 0%
kiota.Rpc.PluginRuntime 0%
kiota.Rpc.SearchOperationResult 0%
kiota.Rpc.SecurityRequirement 0%
kiota.Rpc.SecurityRequirementMapper 0% 0%
kiota.Rpc.SecuritySchemeInfo 0%
kiota.Rpc.SecuritySchemeMapper 0% 0%
kiota.Rpc.Server 0% 0%
kiota.Rpc.ServersMapper 0% 0%
kiota.Rpc.ShowPluginResult 0%
kiota.Rpc.ShowResult 0%
kiota.Telemetry.Config.AppInsightsConfig 0%
kiota.Telemetry.Config.OpenTelemetryConfig 0%
kiota.Telemetry.Config.TelemetryConfig 0%
kiota.Telemetry.Instrumentation 0%
kiota.Telemetry.Telemetry 0% 0%
Microsoft.Extensions.Configuration.Binder.SourceGeneration 0% 0%
System.Runtime.CompilerServices 0%
System.Text.RegularExpressions.Generated 52.6% 37.5%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F575C2A87E552CB2
99BDAB3FB0738A2D49AFE89CAF0EC7B9225D9B641CE772D5E__classNameRegex_0
90% 72.2%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F575C2A87E552CB2
99BDAB3FB0738A2D49AFE89CAF0EC7B9225D9B641CE772D5E__indexingNormalizationReg
ex_2
0% 0%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F575C2A87E552CB2
99BDAB3FB0738A2D49AFE89CAF0EC7B9225D9B641CE772D5E__namespaceNameRegex_1
78.1% 59%
Kiota.Builder - 83.9%
Name Line Branch
Kiota.Builder 83.9% 75.5%
Kiota.Builder.BaseStringComparisonComparer`1 83.3% 60%
Kiota.Builder.Caching.DocumentCachingProvider 63% 56.6%
Kiota.Builder.CodeDOM.BlockDeclaration 90.9% 79.1%
Kiota.Builder.CodeDOM.ClassDeclaration 55.5% 54.1%
Kiota.Builder.CodeDOM.CodeBlock`2 83.8% 78.4%
Kiota.Builder.CodeDOM.CodeClass 97.7% 93.1%
Kiota.Builder.CodeDOM.CodeComposedTypeBase 94.1% 70%
Kiota.Builder.CodeDOM.CodeConstant 100% 83.3%
Kiota.Builder.CodeDOM.CodeDocumentation 100% 87.5%
Kiota.Builder.CodeDOM.CodeElement 100% 96.1%
Kiota.Builder.CodeDOM.CodeEnum 100% 100%
Kiota.Builder.CodeDOM.CodeEnumOption 100% 100%
Kiota.Builder.CodeDOM.CodeFile 76.4% 62.5%
Kiota.Builder.CodeDOM.CodeFunction 100% 100%
Kiota.Builder.CodeDOM.CodeIndexer 100% 50%
Kiota.Builder.CodeDOM.CodeInterface 97.3% 77.7%
Kiota.Builder.CodeDOM.CodeIntersectionType 100%
Kiota.Builder.CodeDOM.CodeMethod 93% 84.2%
Kiota.Builder.CodeDOM.CodeNamespace 96.2% 87.5%
Kiota.Builder.CodeDOM.CodeParameter 100% 50%
Kiota.Builder.CodeDOM.CodeProperty 94.7% 65%
Kiota.Builder.CodeDOM.CodeTerminalWithKind`1 100% 100%
Kiota.Builder.CodeDOM.CodeType 96.5% 100%
Kiota.Builder.CodeDOM.CodeTypeBase 96.1% 75%
Kiota.Builder.CodeDOM.CodeUnionType 100%
Kiota.Builder.CodeDOM.CodeUsing 100% 100%
Kiota.Builder.CodeDOM.DeprecationInformation 83.3% 50%
Kiota.Builder.CodeDOM.DiscriminatorInformation 100% 84.2%
Kiota.Builder.CodeDOM.NamespaceDifferentialTracker 100% 87.5%
Kiota.Builder.CodeDOM.PagingInformation 42.8%
Kiota.Builder.CodeDOM.ProprietableBlock`2 90.6% 85.2%
Kiota.Builder.CodeDOM.ProprietableBlockDeclaration 93.1% 75%
Kiota.Builder.CodeRenderers.CodeRenderer 100% 90.1%
Kiota.Builder.CodeRenderers.TypeScriptCodeRenderer 14.2% 0%
Kiota.Builder.Configuration.DownloadConfiguration 25%
Kiota.Builder.Configuration.GenerationConfiguration 100% 59.6%
Kiota.Builder.Configuration.GitHubConfiguration 30.7%
Kiota.Builder.Configuration.KiotaConfiguration 0%
Kiota.Builder.Configuration.LanguagesInformation 66.6% 66.6%
Kiota.Builder.Configuration.PluginAuthConfiguration 96.4% 92.3%
Kiota.Builder.Configuration.SearchConfiguration 20%
Kiota.Builder.Configuration.SearchConfigurationBase 100%
Kiota.Builder.Configuration.StructuredMimeTypesCollection 84.3% 72.7%
Kiota.Builder.Configuration.UpdateConfiguration 27.2%
Kiota.Builder.EqualityComparers.GlobComparer 55.5% 16.6%
Kiota.Builder.EqualityComparers.OpenApiSchemaReferenceComparer 33.3% 41.6%
Kiota.Builder.EqualityComparers.OpenApiServerComparer 100% 72.7%
Kiota.Builder.Exceptions.InvalidSchemaException 33.3%
Kiota.Builder.Export.PublicApiExportService 90.5% 77.3%
Kiota.Builder.Extensions.AuthExtensions 100% 100%
Kiota.Builder.Extensions.CodeParametersEnumerableExtensions 100% 50%
Kiota.Builder.Extensions.CodePropertiesEnumerableExtensions 100% 50%
Kiota.Builder.Extensions.IEnumerableExtensions 0% 0%
Kiota.Builder.Extensions.IListExtensions 100% 83.3%
Kiota.Builder.Extensions.OpenApiDeprecationExtensionExtensions 100% 93.9%
Kiota.Builder.Extensions.OpenApiDocumentExtensions 100% 85.7%
Kiota.Builder.Extensions.OpenApiOperationExtensions 96.3% 75%
Kiota.Builder.Extensions.OpenApiSchemaExtensions 96.3% 83.4%
Kiota.Builder.Extensions.OpenApiSettingsExtensions 100% 50%
Kiota.Builder.Extensions.OpenApiUrlTreeNodeExtensions 85.3% 73.6%
Kiota.Builder.Extensions.StringExtensions 95.1% 84.3%
Kiota.Builder.Extensions.UriExtensions 100% 75%
Kiota.Builder.KiotaBuilder 86.4% 77%
Kiota.Builder.KiotaSearcher 75% 62.5%
Kiota.Builder.LanguageDependency 91.8% 69.2%
Kiota.Builder.LanguageInformation 95% 77%
Kiota.Builder.Lock.KiotaLock 100% 75%
Kiota.Builder.Lock.KiotaLockComparer 53% 92.8%
Kiota.Builder.Lock.KiotaLockGenerationContext 80.5% 31%
Kiota.Builder.Lock.LockManagementService 54.5% 32.1%
Kiota.Builder.Lock.StringIEnumerableDeepComparer 100% 62.5%
Kiota.Builder.Logging.AggregateLogger`1 0% 0%
Kiota.Builder.Logging.AggregateScope 0% 0%
Kiota.Builder.Logging.FileLogLogger 86.2% 75%
Kiota.Builder.Logging.FileLogLogger`1 0% 0%
Kiota.Builder.Logging.FileLogLoggerProvider 0% 0%
Kiota.Builder.Manifest.ApiDependencyComparer 74.2% 64.2%
Kiota.Builder.Manifest.ManifestManagementService 100%
Kiota.Builder.Manifest.RequestInfoComparer 100% 90%
Kiota.Builder.ModelClassBuildLifecycle 95% 60%
Kiota.Builder.OpenApiDocumentDownloadService 73.1% 63.1%
Kiota.Builder.OpenApiExtensions.ExtensionConfirmation 100%
Kiota.Builder.OpenApiExtensions.ExtensionResponseSemantics 100%
Kiota.Builder.OpenApiExtensions.ExtensionResponseSemanticsProperties 100%
Kiota.Builder.OpenApiExtensions.ExtensionSecurityInfo 100%
Kiota.Builder.OpenApiExtensions.OpenApiAiAdaptiveCardExtension 98.7% 98.7%
Kiota.Builder.OpenApiExtensions.OpenApiAiAuthReferenceIdExtension 100%
Kiota.Builder.OpenApiExtensions.OpenApiAiCapabilitiesExtension 100% 63.2%
Kiota.Builder.OpenApiExtensions.OpenApiAiReasoningInstructionsExtension 100% 62.5%
Kiota.Builder.OpenApiExtensions.OpenApiAiRespondingInstructionsExtension 100% 62.5%
Kiota.Builder.OpenApiExtensions.OpenApiDescriptionForModelExtension 100%
Kiota.Builder.OpenApiExtensions.OpenApiKiotaExtension 100% 50%
Kiota.Builder.OpenApiExtensions.OpenApiKiotaMergedExtension 77.7%
Kiota.Builder.OpenApiExtensions.OpenApiLegalInfoUrlExtension 11.1%
Kiota.Builder.OpenApiExtensions.OpenApiLogoExtension 4.7% 0%
Kiota.Builder.OpenApiExtensions.OpenApiPrivacyPolicyUrlExtension 11.1%
Kiota.Builder.OpenApiExtensions.OpenApiSimpleStringExtension 100% 50%
Kiota.Builder.OrderComparers.BaseCodeParameterOrderComparer 93.7% 92.3%
Kiota.Builder.OrderComparers.CodeElementOrderComparer 100% 97.6%
Kiota.Builder.OrderComparers.CodeElementOrderComparerPython 92.3% 83.3%
Kiota.Builder.OrderComparers.CodeElementOrderComparerWithExternalMethods 100% 90%
Kiota.Builder.PathSegmenters.CommonPathSegmenter 100% 75%
Kiota.Builder.PathSegmenters.CSharpPathSegmenter 100% 83.3%
Kiota.Builder.PathSegmenters.DartPathSegmenter 100%
Kiota.Builder.PathSegmenters.GoPathSegmenter 97.6% 50%
Kiota.Builder.PathSegmenters.HttpPathSegmenter 83.3%
Kiota.Builder.PathSegmenters.JavaPathSegmenter 100% 50%
Kiota.Builder.PathSegmenters.PhpPathSegmenter 100% 50%
Kiota.Builder.PathSegmenters.PythonPathSegmenter 90.9% 50%
Kiota.Builder.PathSegmenters.RubyPathSegmenter 90.4% 57.1%
Kiota.Builder.PathSegmenters.TypeScriptPathSegmenter 100% 95%
Kiota.Builder.Plugins.AdaptiveCardTemplate 61.5% 50%
Kiota.Builder.Plugins.AuthComparer 66.6% 31.5%
Kiota.Builder.Plugins.OpenApiPluginWalker 100% 100%
Kiota.Builder.Plugins.OpenAPIRuntimeComparer 100% 65%
Kiota.Builder.Plugins.OpenApiRuntimeSpecComparer 100% 50%
Kiota.Builder.Plugins.PluginsGenerationService 84.6% 72%
Kiota.Builder.Plugins.UnsupportedSecuritySchemeException 100%
Kiota.Builder.Refiners.AdditionalUsingEvaluator 100%
Kiota.Builder.Refiners.CodeUsingComparer 100% 60%
Kiota.Builder.Refiners.CodeUsingDeclarationNameComparer 100% 87.5%
Kiota.Builder.Refiners.CommonLanguageRefiner 97.8% 91.1%
Kiota.Builder.Refiners.CSharpExceptionsReservedNamesProvider 100%
Kiota.Builder.Refiners.CSharpRefiner 98.3% 93.7%
Kiota.Builder.Refiners.CSharpReservedClassNamesProvider 100%
Kiota.Builder.Refiners.CSharpReservedNamesProvider 100%
Kiota.Builder.Refiners.CSharpReservedTypesProvider 100%
Kiota.Builder.Refiners.DartExceptionsReservedNamesProvider 100%
Kiota.Builder.Refiners.DartRefiner 93.1% 88.4%
Kiota.Builder.Refiners.DartReservedNamesProvider 100%
Kiota.Builder.Refiners.GoExceptionsReservedNamesProvider 100%
Kiota.Builder.Refiners.GoNamespaceReservedNamesProvider 100%
Kiota.Builder.Refiners.GoRefiner 93.1% 87.6%
Kiota.Builder.Refiners.GoReservedNamesProvider 100%
Kiota.Builder.Refiners.HttpRefiner 61.2% 47.7%
Kiota.Builder.Refiners.HttpReservedNamesProvider 100%
Kiota.Builder.Refiners.ILanguageRefiner 100% 100%
Kiota.Builder.Refiners.JavaExceptionsReservedNamesProvider 100%
Kiota.Builder.Refiners.JavaRefiner 98.2% 93.6%
Kiota.Builder.Refiners.JavaReservedNamesProvider 100%
Kiota.Builder.Refiners.PhpExceptionsReservedNamesProvider 100%
Kiota.Builder.Refiners.PhpRefiner 100% 95%
Kiota.Builder.Refiners.PhpReservedNamesProvider 100%
Kiota.Builder.Refiners.PythonExceptionsReservedNamesProvider 100%
Kiota.Builder.Refiners.PythonRefiner 98.2% 93.7%
Kiota.Builder.Refiners.PythonReservedNamesProvider 100%
Kiota.Builder.Refiners.RubyRefiner 83.1% 64.7%
Kiota.Builder.Refiners.RubyReservedNamesProvider 100%
Kiota.Builder.Refiners.TypeScriptExceptionsReservedNamesProvider 100%
Kiota.Builder.Refiners.TypeScriptRefiner 97.7% 85.4%
Kiota.Builder.Refiners.TypeScriptReservedNamesProvider 100%
Kiota.Builder.SearchProviders.APIsGuru.ApiContact 100%
Kiota.Builder.SearchProviders.APIsGuru.ApiEntriesJsonContext 77.7% 35.1%
Kiota.Builder.SearchProviders.APIsGuru.ApiEntry 100%
Kiota.Builder.SearchProviders.APIsGuru.ApiInformation 100%
Kiota.Builder.SearchProviders.APIsGuru.ApiOrigin 0%
Kiota.Builder.SearchProviders.APIsGuru.APIsGuruSearchProvider 95.1% 46.4%
Kiota.Builder.SearchProviders.APIsGuru.ApiVersion 100%
Kiota.Builder.SearchProviders.GitHub.Authentication.AccessCodeResponse 0%
Kiota.Builder.SearchProviders.GitHub.Authentication.AnonymousAuthentication
Provider
100%
Kiota.Builder.SearchProviders.GitHub.Authentication.BaseAuthenticationProvi
der`1
40% 6.2%
Kiota.Builder.SearchProviders.GitHub.Authentication.PatAccessTokenProvider 100% 83.3%
Kiota.Builder.SearchProviders.GitHub.Authentication.PatAuthenticationProvid
er
87.5%
Kiota.Builder.SearchProviders.GitHub.Authentication.TempFolderCachingAccess
TokenProvider
95.8% 50%
Kiota.Builder.SearchProviders.GitHub.Authentication.TempFolderTokenStorageS
ervice
70.5% 83.3%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.GitHubClient 94.1% 50%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.AppPermissions 0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.BasicError 64.5% 16.6%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ContentFile 56.6% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ContentFile__links 74% 25%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ContentSubmodule 0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ContentSubmodule__
links
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ContentSymlink 0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ContentSymlink__li
nks
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.Enterprise 0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.Installation 0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.NullableLicenseSim
ple
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.NullableSimpleUser 61.7% 25%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ReactionRollup 70.8% 25%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.Release 59.7% 25%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ReleaseAsset 66.6% 25%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.RepoSearchResultIt
em
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.RepoSearchResultIt
em_permissions
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.Repositories 0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.Repositories_match
es
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.Repositories503Err
or
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.SimpleUser 61.7% 25%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ValidationError 0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.ValidationError_er
rors
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Models.WithPathGetRespons
eMember1
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Repos.Item.Item.Contents.
ContentsRequestBuilder
72.7%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Repos.Item.Item.Contents.
Item.WithPathItemRequestBuilder
41.4% 13.3%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Repos.Item.Item.Releases.
ReleasesRequestBuilder
69.2% 50%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Repos.Item.Item.WithRepoI
temRequestBuilder
62.5%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Repos.Item.WithOwnerItemR
equestBuilder
72.7%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Repos.ReposRequestBuilder 72.7%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Search.Repositories.Repos
itoriesGetResponse
74% 25%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Search.Repositories.Repos
itoriesRequestBuilder
79.3%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.Search.SearchRequestBuild
er
57.1%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.User.Installations.Instal
lationsGetResponse
0% 0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.User.Installations.Instal
lationsRequestBuilder
0%
Kiota.Builder.SearchProviders.GitHub.GitHubClient.User.UserRequestBuilder 0%
Kiota.Builder.SearchProviders.GitHub.GitHubSearchProvider 74.7% 51%
Kiota.Builder.SearchProviders.GitHub.Index.BlockList 100%
Kiota.Builder.SearchProviders.GitHub.Index.IndexApiEntry 100%
Kiota.Builder.SearchProviders.GitHub.Index.IndexApiProperty 100%
Kiota.Builder.SearchProviders.GitHub.Index.IndexRoot 100%
Kiota.Builder.SearchProviders.GitHub.Index.IndexRootJsonContext 71.5% 33.7%
Kiota.Builder.SearchProviders.MSGraph.OpenApiSpecSearchProvider 83.3% 50%
Kiota.Builder.SearchProviders.SearchResult 100%
Kiota.Builder.Settings.AuthenticationSettings 0%
Kiota.Builder.Settings.EnvironmentVariables 0%
Kiota.Builder.Settings.SettingsFile 0%
Kiota.Builder.Settings.SettingsFileGenerationContext 0% 0%
Kiota.Builder.Settings.SettingsFileManagementService 38.7% 20%
Kiota.Builder.Settings.VsCodeSettingsManager 0% 0%
Kiota.Builder.StructuralPropertiesReservedNameProvider 100%
Kiota.Builder.UpdateService 97.1% 76.4%
Kiota.Builder.Validation.DivergentResponseSchema 100% 100%
Kiota.Builder.Validation.GetWithBody 100% 100%
Kiota.Builder.Validation.InconsistentTypeFormatPair 100% 92.8%
Kiota.Builder.Validation.JsonNodeComparer 0% 0%
Kiota.Builder.Validation.KeyValueComparer`2 0% 0%
Kiota.Builder.Validation.KnownAndNotSupportedFormats 100% 100%
Kiota.Builder.Validation.MissingDiscriminator 100% 71.4%
Kiota.Builder.Validation.MultipleServerEntries 100% 75%
Kiota.Builder.Validation.NoContentWithBody 100% 100%
Kiota.Builder.Validation.NoServerEntry 100% 87.5%
Kiota.Builder.Validation.OpenApiDiscriminatorComparer 0% 0%
Kiota.Builder.Validation.OpenApiSchemaComparer 88.6% 82.5%
Kiota.Builder.Validation.UrlFormEncodedComplex 100% 100%
Kiota.Builder.Validation.ValidationRuleSetExtensions 100% 100%
Kiota.Builder.VersionComparer 66.6% 33.3%
Kiota.Builder.WorkspaceManagement.ApiClientConfiguration 98.1% 50%
Kiota.Builder.WorkspaceManagement.ApiClientConfigurationComparer 100% 62.5%
Kiota.Builder.WorkspaceManagement.ApiPluginConfiguration 84.2% 50%
Kiota.Builder.WorkspaceManagement.ApiPluginConfigurationComparer 100% 75%
Kiota.Builder.WorkspaceManagement.BaseApiConsumerConfiguration 100% 87.5%
Kiota.Builder.WorkspaceManagement.BaseApiConsumerConfigurationComparer`1 100% 50%
Kiota.Builder.WorkspaceManagement.DescriptionStorageService 98% 75%
Kiota.Builder.WorkspaceManagement.WorkspaceConfiguration 73.3% 50%
Kiota.Builder.WorkspaceManagement.WorkspaceConfigurationGenerationContext 79.2% 35.1%
Kiota.Builder.WorkspaceManagement.WorkspaceConfigurationStorageService 98.1% 91.1%
Kiota.Builder.WorkspaceManagement.WorkspaceManagementService 76% 62.2%
Kiota.Builder.Writers.BaseElementWriter`2 100% 50%
Kiota.Builder.Writers.CodeClassExtensions 85.7% 55%
Kiota.Builder.Writers.CodeParameterExtensions 100% 62.5%
Kiota.Builder.Writers.CodePropertyTypeComparer 76.9% 40%
Kiota.Builder.Writers.CodeTypeComparer 84.3% 73.6%
Kiota.Builder.Writers.CodeTypeWriter 100%
Kiota.Builder.Writers.CommonLanguageConventionService 100% 100%
Kiota.Builder.Writers.CSharp.CodeBlockEndWriter 100% 83.3%
Kiota.Builder.Writers.CSharp.CodeClassDeclarationWriter 100% 90.9%
Kiota.Builder.Writers.CSharp.CodeEnumWriter 100% 78.1%
Kiota.Builder.Writers.CSharp.CodeIndexerWriter 100% 50%
Kiota.Builder.Writers.CSharp.CodeMethodWriter 95.7% 86.7%
Kiota.Builder.Writers.CSharp.CodePropertyWriter 96.6% 87.5%
Kiota.Builder.Writers.CSharp.CSharpConventionService 86.7% 78.8%
Kiota.Builder.Writers.CSharp.CSharpWriter 100%
Kiota.Builder.Writers.CSharp.TypeDefinitionExtensions 100% 100%
Kiota.Builder.Writers.Dart.CodeBlockEndWriter 100%
Kiota.Builder.Writers.Dart.CodeClassDeclarationWriter 97.5% 67.6%
Kiota.Builder.Writers.Dart.CodeEnumWriter 100% 100%
Kiota.Builder.Writers.Dart.CodeMethodWriter 88.2% 77%
Kiota.Builder.Writers.Dart.CodePropertyWriter 90% 86.8%
Kiota.Builder.Writers.Dart.DartConventionService 79.4% 70.9%
Kiota.Builder.Writers.Dart.DartWriter 100%
Kiota.Builder.Writers.GenericCodeElementWriter 100%
Kiota.Builder.Writers.GenericCodeMethodWriter 100%
Kiota.Builder.Writers.GenericCodePropertyWriter 100%
Kiota.Builder.Writers.GenericWriter`1 100%
Kiota.Builder.Writers.Go.CodeBlockEndWriter 100% 75%
Kiota.Builder.Writers.Go.CodeClassDeclarationWriter 100% 70%
Kiota.Builder.Writers.Go.CodeEnumWriter 100% 96.1%
Kiota.Builder.Writers.Go.CodeFileBlockEndWriter 100%
Kiota.Builder.Writers.Go.CodeFileDeclarationWriter 97% 63.6%
Kiota.Builder.Writers.Go.CodeInterfaceDeclarationWriter 100% 60%
Kiota.Builder.Writers.Go.CodeMethodWriter 96.2% 82.8%
Kiota.Builder.Writers.Go.CodePropertyWriter 95% 85.7%
Kiota.Builder.Writers.Go.CodeProprietableBlockDeclarationWriter`1 100% 92.1%
Kiota.Builder.Writers.Go.GoCodeParameterOrderComparer 94.7% 66.6%
Kiota.Builder.Writers.Go.GoConventionService 88.9% 72%
Kiota.Builder.Writers.Go.GoNamespaceExtensions 100% 87.5%
Kiota.Builder.Writers.Go.GoWriter 100%
Kiota.Builder.Writers.Go.StringExtensions 100% 100%
Kiota.Builder.Writers.Http.CodeClassDeclarationWriter 66.6% 45.4%
Kiota.Builder.Writers.Http.CodeProprietableBlockDeclarationWriter`1 100%
Kiota.Builder.Writers.Http.HttpConventionService 26.5% 11.3%
Kiota.Builder.Writers.Http.HttpWriter 100%
Kiota.Builder.Writers.Java.CodeBlockEndWriter 100% 75%
Kiota.Builder.Writers.Java.CodeClassDeclarationWriter 100% 81.8%
Kiota.Builder.Writers.Java.CodeEnumWriter 100% 80%
Kiota.Builder.Writers.Java.CodeMethodWriter 94.8% 82.9%
Kiota.Builder.Writers.Java.CodePropertyWriter 87.8% 81.4%
Kiota.Builder.Writers.Java.JavaConventionService 92.2% 72.5%
Kiota.Builder.Writers.Java.JavaWriter 100%
Kiota.Builder.Writers.LanguageWriter 93.9% 86.4%
Kiota.Builder.Writers.NamespaceClassNamesProvider 100% 75%
Kiota.Builder.Writers.Php.CodeBlockEndWriter 100%
Kiota.Builder.Writers.Php.CodeClassDeclarationWriter 100% 83.3%
Kiota.Builder.Writers.Php.CodeEnumWriter 100% 66.6%
Kiota.Builder.Writers.Php.CodeMethodWriter 96.4% 82%
Kiota.Builder.Writers.Php.CodePropertyWriter 94% 90.6%
Kiota.Builder.Writers.Php.PhpConventionService 95.4% 83.4%
Kiota.Builder.Writers.Php.PhpWriter 100%
Kiota.Builder.Writers.ProprietableBlockExtensions 95.4% 66.6%
Kiota.Builder.Writers.Python.CodeBlockEndWriter 100%
Kiota.Builder.Writers.Python.CodeClassDeclarationWriter 100% 81.2%
Kiota.Builder.Writers.Python.CodeEnumWriter 100% 100%
Kiota.Builder.Writers.Python.CodeMethodWriter 97.3% 87.3%
Kiota.Builder.Writers.Python.CodeNameSpaceWriter 100%
Kiota.Builder.Writers.Python.CodePropertyWriter 98% 87.5%
Kiota.Builder.Writers.Python.CodeUsingWriter 97.9% 80.7%
Kiota.Builder.Writers.Python.PythonCodeParameterOrderComparer 66.6% 38.8%
Kiota.Builder.Writers.Python.PythonConventionService 88.3% 79.7%
Kiota.Builder.Writers.Python.PythonRelativeImportManager 84.6% 60%
Kiota.Builder.Writers.Python.PythonWriter 100%
Kiota.Builder.Writers.RelativeImportManager 87.2% 51.7%
Kiota.Builder.Writers.RequestParams 100% 50%
Kiota.Builder.Writers.Ruby.CodeBlockEndWriter 100% 75%
Kiota.Builder.Writers.Ruby.CodeClassDeclarationWriter 100% 67.6%
Kiota.Builder.Writers.Ruby.CodeEnumWriter 100% 66.6%
Kiota.Builder.Writers.Ruby.CodeMethodWriter 96.6% 71.1%
Kiota.Builder.Writers.Ruby.CodeNamespaceWriter 100% 100%
Kiota.Builder.Writers.Ruby.CodePropertyWriter 100% 87.5%
Kiota.Builder.Writers.Ruby.RubyConventionService 86.6% 77%
Kiota.Builder.Writers.Ruby.RubyWriter 100%
Kiota.Builder.Writers.StringExtensions 95.1% 92.5%
Kiota.Builder.Writers.TypeScript.CodeBlockEndWriter 100% 90%
Kiota.Builder.Writers.TypeScript.CodeClassDeclarationWriter 100% 68.7%
Kiota.Builder.Writers.TypeScript.CodeComposedTypeBaseWriter`1 100% 100%
Kiota.Builder.Writers.TypeScript.CodeConstantWriter 95.3% 84.2%
Kiota.Builder.Writers.TypeScript.CodeEnumWriter 100% 100%
Kiota.Builder.Writers.TypeScript.CodeFileBlockEndWriter 100%
Kiota.Builder.Writers.TypeScript.CodeFileDeclarationWriter 96.8% 77.2%
Kiota.Builder.Writers.TypeScript.CodeFunctionWriter 94% 78.1%
Kiota.Builder.Writers.TypeScript.CodeInterfaceDeclarationWriter 100% 75%
Kiota.Builder.Writers.TypeScript.CodeIntersectionTypeWriter 100%
Kiota.Builder.Writers.TypeScript.CodeMethodWriter 97.2% 82.7%
Kiota.Builder.Writers.TypeScript.CodePropertyWriter 96.2% 95.8%
Kiota.Builder.Writers.TypeScript.CodeUnionTypeWriter 100%
Kiota.Builder.Writers.TypeScript.CodeUsingWriter 100% 86.3%
Kiota.Builder.Writers.TypeScript.TypeScriptConventionService 87.7% 82.9%
Kiota.Builder.Writers.TypeScript.TypescriptRelativeImportManager 83.3% 57.1%
Kiota.Builder.Writers.TypeScript.TypeScriptWriter 100%
Kiota.Generated.KiotaVersion 100%
System.Text.RegularExpressions.Generated 72.2% 58.2%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704___enumValueNameRegex_16
77.1% 56.2%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__AtSignPathParameterRegex
_2
77.1% 65%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__CapitalizedFirstLetterAf
terDot_13
30.4% 15.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__descriptionCleanupRegex_
4
100% 100%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__factoryMethodIndexParser
_14
70.2% 57.1%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__idClassNameCleanup_3
91.7% 84.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__MultiIndexSameLevelClean
upRegex_11
78.9% 66%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__nonAsciiReplaceRegex_15
48% 35.7%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__NumbersSpellingRegex_10
76.9% 61.1%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__PathParametersRegex_1
95.7% 90.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__pathParamMatcher_7
77.9% 63.6%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__PluginOperationIdCleanup
Regex_12
88.4% 78.5%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__propertyCleanupRegex_9
81.6% 73%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__removePctEncodedCharacte
rs_8
83.3% 57.6%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__stripExtensionForIndexer
sRegex_5
48.4% 40%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__stripExtensionForIndexer
sTestRegex_6
45.6% 33.8%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDAA00F7CC1CF62D
E700244B5486217D72A1B2A43346B42C9A444A670292E2704__vendorStripRegex_0
85.9% 63.6%

@baywet baywet merged commit 064a695 into main May 22, 2026
305 checks passed
@baywet baywet deleted the fix/shorten-oversized-namespace-segments branch May 22, 2026 22:32
@github-project-automation github-project-automation Bot moved this from In Progress 🚧 to Done ✔️ in Kiota May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done ✔️

Development

Successfully merging this pull request may close these issues.

Java, Python, PHP: OData functions with many parameters generate paths exceeding Windows limits

2 participants