From 595e6e9e2a94500dcf8007564f0e2504158bf759 Mon Sep 17 00:00:00 2001 From: Adam Zippor Date: Wed, 21 May 2025 16:01:25 +0200 Subject: [PATCH 1/3] Persist the base commit of subscription update for diff links --- .../PullRequestUpdater.cs | 11 +++++++---- .../SubscriptionPullRequestUpdate.cs | 3 +++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ProductConstructionService/ProductConstructionService.DependencyFlow/PullRequestUpdater.cs b/src/ProductConstructionService/ProductConstructionService.DependencyFlow/PullRequestUpdater.cs index 47d95d4711..6c0eb56e68 100644 --- a/src/ProductConstructionService/ProductConstructionService.DependencyFlow/PullRequestUpdater.cs +++ b/src/ProductConstructionService/ProductConstructionService.DependencyFlow/PullRequestUpdater.cs @@ -1111,17 +1111,19 @@ private async Task UpdateCodeFlowPullRequestAsync( IRemote remote = await _remoteFactory.CreateRemoteAsync(subscription.TargetRepository); var build = await _sqlClient.GetBuildAsync(update.BuildId); + string? baseSourceSha= pullRequest.ContainedSubscriptions.FirstOrDefault(u => u.SubscriptionId.Equals(update.SubscriptionId))?.BaseSourceSha + ?? previousSourceSha; pullRequest.ContainedSubscriptions.RemoveAll(s => s.SubscriptionId.Equals(update.SubscriptionId)); pullRequest.ContainedSubscriptions.Add(new SubscriptionPullRequestUpdate { SubscriptionId = update.SubscriptionId, BuildId = update.BuildId, SourceRepo = update.SourceRepo, - CommitSha = update.SourceSha + CommitSha = update.SourceSha, + BaseSourceSha = baseSourceSha, }); pullRequest.RequiredUpdates = MergeExistingWithIncomingUpdates(pullRequest.RequiredUpdates, newDependencyUpdates); - var title = _pullRequestBuilder.GenerateCodeFlowPRTitle( subscription.TargetBranch, pullRequest.ContainedSubscriptions.Select(s => s.SourceRepo).ToList()); @@ -1129,7 +1131,7 @@ private async Task UpdateCodeFlowPullRequestAsync( var description = _pullRequestBuilder.GenerateCodeFlowPRDescription( update, build, - previousSourceSha, + baseSourceSha, pullRequest.RequiredUpdates, prInfo?.Description, isForwardFlow: isForwardFlow); @@ -1213,7 +1215,8 @@ private async Task CreateCodeFlowPullRequestAsync( SubscriptionId = update.SubscriptionId, BuildId = update.BuildId, SourceRepo = update.SourceRepo, - CommitSha = update.SourceSha + CommitSha = update.SourceSha, + BaseSourceSha = previousSourceSha, } ], RequiredUpdates = requiredUpdates, diff --git a/src/ProductConstructionService/ProductConstructionService.DependencyFlow/SubscriptionPullRequestUpdate.cs b/src/ProductConstructionService/ProductConstructionService.DependencyFlow/SubscriptionPullRequestUpdate.cs index 94211af7a4..d58591d85c 100644 --- a/src/ProductConstructionService/ProductConstructionService.DependencyFlow/SubscriptionPullRequestUpdate.cs +++ b/src/ProductConstructionService/ProductConstructionService.DependencyFlow/SubscriptionPullRequestUpdate.cs @@ -20,4 +20,7 @@ public class SubscriptionPullRequestUpdate [DataMember] public string CommitSha { get; set; } + + [DataMember] + public string BaseSourceSha { get; set; } } From ba803fe3387f231884e654b282d265f770246e2a Mon Sep 17 00:00:00 2001 From: Adam Zippor Date: Thu, 22 May 2025 13:25:40 +0200 Subject: [PATCH 2/3] Match unit tests --- .../PullRequestUpdaterTests.cs | 5 +++-- .../UpdateAssetsForCodeFlowTests.cs | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/test/ProductConstructionService.DependencyFlow.Tests/PullRequestUpdaterTests.cs b/test/ProductConstructionService.DependencyFlow.Tests/PullRequestUpdaterTests.cs index 6acaa2b1f3..a1c36ecc73 100644 --- a/test/ProductConstructionService.DependencyFlow.Tests/PullRequestUpdaterTests.cs +++ b/test/ProductConstructionService.DependencyFlow.Tests/PullRequestUpdaterTests.cs @@ -51,7 +51,7 @@ protected override void RegisterServices(IServiceCollection services) services.AddSingleton(_forwardFlower.Object); services.AddSingleton(_gitClient.Object); - CodeFlowResult codeFlowRes = new CodeFlowResult(true, [], new NativePath(VmrPath), "aaa1234", []); + CodeFlowResult codeFlowRes = new CodeFlowResult(true, [], new NativePath(VmrPath), "base_codeflow_sha_123", []); _forwardFlower.SetReturnsDefault(Task.FromResult(codeFlowRes)); _backFlower.SetReturnsDefault(Task.FromResult(codeFlowRes)); _gitClient.SetReturnsDefault(Task.CompletedTask); @@ -623,7 +623,8 @@ protected InProgressPullRequest CreatePullRequestState( BuildId = forBuild.Id, SubscriptionId = Subscription.Id, SourceRepo = forBuild.GetRepository(), - CommitSha = forBuild.Commit + CommitSha = forBuild.Commit, + BaseSourceSha = Subscription.SourceEnabled ? "base_codeflow_sha_123" : null, } ], RequiredUpdates = forBuild.Assets diff --git a/test/ProductConstructionService.DependencyFlow.Tests/UpdateAssetsForCodeFlowTests.cs b/test/ProductConstructionService.DependencyFlow.Tests/UpdateAssetsForCodeFlowTests.cs index d7de106eee..a10b6520cf 100644 --- a/test/ProductConstructionService.DependencyFlow.Tests/UpdateAssetsForCodeFlowTests.cs +++ b/test/ProductConstructionService.DependencyFlow.Tests/UpdateAssetsForCodeFlowTests.cs @@ -51,7 +51,8 @@ public async Task UpdateWithNoExistingState() SubscriptionId = Subscription.Id, BuildId = build.Id, SourceRepo = build.GetRepository(), - CommitSha = build.Commit + CommitSha = build.Commit, + BaseSourceSha = "base_codeflow_sha_123", } ], RequiredUpdates = [], @@ -178,7 +179,8 @@ public async Task UpdateWithManuallyMergedPrAndNewBuild() SubscriptionId = Subscription.Id, BuildId = build2.Id, SourceRepo = build.GetRepository(), - CommitSha = build2.Commit + CommitSha = build2.Commit, + BaseSourceSha = "base_codeflow_sha_123" } ], RequiredUpdates = [], From e5ba502c2ded48d58aa284f84fbce71fc3f6d470 Mon Sep 17 00:00:00 2001 From: Adam Zippor Date: Thu, 22 May 2025 13:50:44 +0200 Subject: [PATCH 3/3] Add property summary --- .../SubscriptionPullRequestUpdate.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ProductConstructionService/ProductConstructionService.DependencyFlow/SubscriptionPullRequestUpdate.cs b/src/ProductConstructionService/ProductConstructionService.DependencyFlow/SubscriptionPullRequestUpdate.cs index d58591d85c..b84880ecdd 100644 --- a/src/ProductConstructionService/ProductConstructionService.DependencyFlow/SubscriptionPullRequestUpdate.cs +++ b/src/ProductConstructionService/ProductConstructionService.DependencyFlow/SubscriptionPullRequestUpdate.cs @@ -22,5 +22,8 @@ public class SubscriptionPullRequestUpdate public string CommitSha { get; set; } [DataMember] + /// + /// The earliest commit in the source repository from the changes contained in the current PR + /// public string BaseSourceSha { get; set; } }