Skip to content

Commit 44450b8

Browse files
CopilotMalcolmnixon
andcommitted
Fix test name and use PR number for issue Index ordering
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
1 parent 99e2662 commit 44450b8

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

src/DemaConsulting.BuildMark/RepoConnectors/GitHubRepoConnector.cs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,21 @@ public override async Task<List<ItemInfo>> GetChangesBetweenTagsAsync(Version? f
189189
}
190190
}
191191

192+
// Build a map from issue number to PR number for Index assignment
193+
var issueToPrMap = new Dictionary<string, int>();
194+
foreach (var (prNumber, _, _, prIssues) in prData)
195+
{
196+
var prNumberInt = int.Parse(prNumber);
197+
foreach (var issueNumber in prIssues)
198+
{
199+
// Use the first PR that references this issue (smallest PR number)
200+
if (!issueToPrMap.ContainsKey(issueNumber) || prNumberInt < issueToPrMap[issueNumber])
201+
{
202+
issueToPrMap[issueNumber] = prNumberInt;
203+
}
204+
}
205+
}
206+
192207
// Second pass: batch fetch all issue details using issue list
193208
var issueDetailsMap = new Dictionary<string, ItemInfo>();
194209
if (issueNumbers.Count > 0)
@@ -238,15 +253,18 @@ public override async Task<List<ItemInfo>> GetChangesBetweenTagsAsync(Version? f
238253
}
239254
}
240255

241-
issueDetailsMap[issueNumber] = new ItemInfo(issueNumber, issueTitle, issueUrl, issueType, int.Parse(issueNumber));
256+
// Use PR number as Index for ordering
257+
var index = issueToPrMap.TryGetValue(issueNumber, out var prNum) ? prNum : int.Parse(issueNumber);
258+
issueDetailsMap[issueNumber] = new ItemInfo(issueNumber, issueTitle, issueUrl, issueType, index);
242259
}
243260
}
244261
catch (Exception)
245262
{
246263
// If we can't fetch issue list, create fallback entries
247264
foreach (var issueNumber in issueNumbers)
248265
{
249-
issueDetailsMap[issueNumber] = new ItemInfo(issueNumber, $"Issue #{issueNumber}", string.Empty, "other", int.Parse(issueNumber));
266+
var index = issueToPrMap.TryGetValue(issueNumber, out var prNum) ? prNum : int.Parse(issueNumber);
267+
issueDetailsMap[issueNumber] = new ItemInfo(issueNumber, $"Issue #{issueNumber}", string.Empty, "other", index);
250268
}
251269
}
252270
}

test/DemaConsulting.BuildMark.Tests/BuildInformationTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public async Task BuildInformation_CreateAsync_CollectsIssuesCorrectly()
159159
/// Test that CreateAsync orders changes by Index (PR number).
160160
/// </summary>
161161
[TestMethod]
162-
public async Task BuildInformation_CreateAsync_OrdersChangesChronologically()
162+
public async Task BuildInformation_CreateAsync_OrdersChangesByIndex()
163163
{
164164
// Create build information for version with issues
165165
var connector = new MockRepoConnector();

0 commit comments

Comments
 (0)