From 1b37e704ec9713b93d928549bfaa112dcaed1681 Mon Sep 17 00:00:00 2001 From: "sentry[bot]" <39604003+sentry[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 18:45:22 +0000 Subject: [PATCH] fix(graphql): restore directChangedFiles field on Comparison type --- .../types/comparison/comparison.graphql | 1 + .../graphql_api/types/comparison/comparison.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/apps/codecov-api/graphql_api/types/comparison/comparison.graphql b/apps/codecov-api/graphql_api/types/comparison/comparison.graphql index 8ae51b0c22..2a353d614b 100644 --- a/apps/codecov-api/graphql_api/types/comparison/comparison.graphql +++ b/apps/codecov-api/graphql_api/types/comparison/comparison.graphql @@ -5,6 +5,7 @@ type Comparison { impactedFilesCount: Int! indirectChangedFilesCount: Int! patchTotals: CoverageTotals + directChangedFiles(filters: ImpactedFilesFilters): ImpactedFilesResult! directChangedFilesCount: Int! baseTotals: CoverageTotals headTotals: CoverageTotals diff --git a/apps/codecov-api/graphql_api/types/comparison/comparison.py b/apps/codecov-api/graphql_api/types/comparison/comparison.py index 3655ab91d9..0cbe17797e 100644 --- a/apps/codecov-api/graphql_api/types/comparison/comparison.py +++ b/apps/codecov-api/graphql_api/types/comparison/comparison.py @@ -64,6 +64,23 @@ def resolve_impacted_files_count( return len(comparison.impacted_files) +@comparison_bindable.field("directChangedFiles") +@sync_to_async +def resolve_direct_changed_files( + comparison_report: ComparisonReport, info: GraphQLResolveInfo, filters=None +): + command: CompareCommands = info.context["executor"].get_command("compare") + comparison: Comparison = info.context.get("comparison", None) + + # Force filter to direct changes only (hasUnintendedChanges=False) + filters = dict(filters) if filters else {} + filters["has_unintended_changes"] = False + + return { + "results": command.fetch_impacted_files(comparison_report, comparison, filters) + } + + @comparison_bindable.field("directChangedFilesCount") @sync_to_async def resolve_direct_changed_files_count(