Skip to content

Commit 1269b1e

Browse files
CopilotMalcolmnixon
andcommitted
Rename ChangeInfo to ItemInfo for better semantic accuracy
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
1 parent e97ef26 commit 1269b1e

File tree

6 files changed

+42
-42
lines changed

6 files changed

+42
-42
lines changed

src/DemaConsulting.BuildMark/BuildInformation.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
namespace DemaConsulting.BuildMark;
2222

2323
/// <summary>
24-
/// Represents information about a change (issue or PR).
24+
/// Represents an item in the build notes (change, bug, or known issue).
2525
/// </summary>
26-
/// <param name="Id">Change ID.</param>
27-
/// <param name="Title">Change title.</param>
28-
/// <param name="Url">Change URL.</param>
29-
/// <param name="Type">Change type (bug, feature, etc.).</param>
30-
public record ChangeInfo(string Id, string Title, string Url, string Type);
26+
/// <param name="Id">Item ID.</param>
27+
/// <param name="Title">Item title.</param>
28+
/// <param name="Url">Item URL.</param>
29+
/// <param name="Type">Item type (bug, feature, etc.).</param>
30+
public record ItemInfo(string Id, string Title, string Url, string Type);
3131

3232
/// <summary>
3333
/// Represents build information for a release.
@@ -44,9 +44,9 @@ public record BuildInformation(
4444
Version ToVersion,
4545
string? FromHash,
4646
string ToHash,
47-
List<ChangeInfo> Changes,
48-
List<ChangeInfo> Bugs,
49-
List<ChangeInfo> KnownIssues)
47+
List<ItemInfo> Changes,
48+
List<ItemInfo> Bugs,
49+
List<ItemInfo> KnownIssues)
5050
{
5151
/// <summary>
5252
/// Creates a BuildInformation record from a repository connector.
@@ -162,8 +162,8 @@ public static async Task<BuildInformation> CreateAsync(IRepoConnector connector,
162162
// Collect all changes (issues and PRs) in version range
163163
var changes = await connector.GetChangesBetweenTagsAsync(fromTagInfo, toTagInfo);
164164
var allChangeIds = new HashSet<string>();
165-
var bugs = new List<ChangeInfo>();
166-
var nonBugChanges = new List<ChangeInfo>();
165+
var bugs = new List<ItemInfo>();
166+
var nonBugChanges = new List<ItemInfo>();
167167

168168
// Process and categorize each change
169169
foreach (var change in changes)
@@ -189,7 +189,7 @@ public static async Task<BuildInformation> CreateAsync(IRepoConnector connector,
189189
}
190190

191191
// Collect known issues (open bugs not fixed in this build)
192-
var knownIssues = new List<ChangeInfo>();
192+
var knownIssues = new List<ItemInfo>();
193193
var openIssues = await connector.GetOpenIssuesAsync();
194194
foreach (var issue in openIssues)
195195
{

src/DemaConsulting.BuildMark/RepoConnectors/GitHubRepoConnector.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public override async Task<List<Version>> GetTagHistoryAsync()
8686
/// <param name="from">Starting version (null for start of history).</param>
8787
/// <param name="to">Ending version (null for current state).</param>
8888
/// <returns>List of changes with full information.</returns>
89-
public override async Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to)
89+
public override async Task<List<ItemInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to)
9090
{
9191
// Get commits using GitHub API
9292
string commitHashesOutput;
@@ -131,11 +131,11 @@ public override async Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version?
131131
catch (InvalidOperationException)
132132
{
133133
// Fallback to empty result if batch query fails
134-
return new List<ChangeInfo>();
134+
return new List<ItemInfo>();
135135
}
136136

137137
// Parse PR data and extract changes
138-
var changes = new List<ChangeInfo>();
138+
var changes = new List<ItemInfo>();
139139
var processedIssues = new HashSet<string>();
140140

141141
var prLines = prDataOutput
@@ -207,7 +207,7 @@ public override async Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version?
207207
}
208208
}
209209

210-
changes.Add(new ChangeInfo(issueNumber, issueTitle, issueUrl, issueType));
210+
changes.Add(new ItemInfo(issueNumber, issueTitle, issueUrl, issueType));
211211
hasIssues = true;
212212
}
213213
}
@@ -243,7 +243,7 @@ public override async Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version?
243243
}
244244
}
245245

246-
changes.Add(new ChangeInfo($"#{prNumber}", prTitle, prUrl, prType));
246+
changes.Add(new ItemInfo($"#{prNumber}", prTitle, prUrl, prType));
247247
}
248248
}
249249
catch (System.Text.Json.JsonException)
@@ -295,14 +295,14 @@ public override async Task<string> GetHashForTagAsync(string? tag)
295295
/// Gets the list of open issues with their details.
296296
/// </summary>
297297
/// <returns>List of open issues with full information.</returns>
298-
public override async Task<List<ChangeInfo>> GetOpenIssuesAsync()
298+
public override async Task<List<ItemInfo>> GetOpenIssuesAsync()
299299
{
300300
// Fetch all open issues with full details in a single batch call
301301
// Arguments: --state open (open issues only), --json to get all required fields
302302
// Output: JSON array with issue details
303303
var output = await RunCommandAsync("gh", "issue list --state open --json number,title,url,labels --jq '.[] | @json'");
304304

305-
var openIssues = new List<ChangeInfo>();
305+
var openIssues = new List<ItemInfo>();
306306
var lines = output
307307
.Split('\n', StringSplitOptions.RemoveEmptyEntries)
308308
.Select(line => line.Trim())
@@ -347,7 +347,7 @@ public override async Task<List<ChangeInfo>> GetOpenIssuesAsync()
347347
}
348348
}
349349

350-
openIssues.Add(new ChangeInfo(issueNumber, issueTitle, issueUrl, issueType));
350+
openIssues.Add(new ItemInfo(issueNumber, issueTitle, issueUrl, issueType));
351351
}
352352
catch (System.Text.Json.JsonException)
353353
{

src/DemaConsulting.BuildMark/RepoConnectors/IRepoConnector.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public interface IRepoConnector
3737
/// <param name="from">Starting version (null for start of history).</param>
3838
/// <param name="to">Ending version (null for current state).</param>
3939
/// <returns>List of changes with full information.</returns>
40-
Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to);
40+
Task<List<ItemInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to);
4141

4242
/// <summary>
4343
/// Gets the git hash for a tag.
@@ -50,5 +50,5 @@ public interface IRepoConnector
5050
/// Gets the list of open issues with their details.
5151
/// </summary>
5252
/// <returns>List of open issues with full information.</returns>
53-
Task<List<ChangeInfo>> GetOpenIssuesAsync();
53+
Task<List<ItemInfo>> GetOpenIssuesAsync();
5454
}

src/DemaConsulting.BuildMark/RepoConnectors/MockRepoConnector.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public Task<List<Version>> GetTagHistoryAsync()
8484
/// <param name="from">Starting version (null for start of history).</param>
8585
/// <param name="to">Ending version (null for current state).</param>
8686
/// <returns>List of changes with full information.</returns>
87-
public Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to)
87+
public Task<List<ItemInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to)
8888
{
8989
// Extract tag names from version objects
9090
var fromTagName = from?.Tag;
@@ -110,7 +110,7 @@ public Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version? from, Version?
110110
}
111111

112112
// Build changes from PRs
113-
var changes = new List<ChangeInfo>();
113+
var changes = new List<ItemInfo>();
114114
foreach (var pr in prs)
115115
{
116116
// Get issues for this PR
@@ -124,13 +124,13 @@ public Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version? from, Version?
124124
var title = _issueTitles.TryGetValue(issueId, out var issueTitle) ? issueTitle : $"Issue {issueId}";
125125
var url = $"https://github.com/example/repo/issues/{issueId}";
126126
var type = _issueTypes.TryGetValue(issueId, out var issueType) ? issueType : "other";
127-
changes.Add(new ChangeInfo(issueId, title, url, type));
127+
changes.Add(new ItemInfo(issueId, title, url, type));
128128
}
129129
}
130130
else
131131
{
132132
// PR has no issues - treat the PR itself as a change
133-
changes.Add(new ChangeInfo(
133+
changes.Add(new ItemInfo(
134134
$"#{pr}",
135135
$"PR #{pr}",
136136
$"https://github.com/example/repo/pull/{pr}",
@@ -165,11 +165,11 @@ public Task<string> GetHashForTagAsync(string? tag)
165165
/// Gets the list of open issues with their details.
166166
/// </summary>
167167
/// <returns>List of open issues with full information.</returns>
168-
public Task<List<ChangeInfo>> GetOpenIssuesAsync()
168+
public Task<List<ItemInfo>> GetOpenIssuesAsync()
169169
{
170170
// Return predefined list of open issues with full details
171171
var openIssuesData = _openIssues
172-
.Select(issueId => new ChangeInfo(
172+
.Select(issueId => new ItemInfo(
173173
issueId,
174174
_issueTitles.TryGetValue(issueId, out var title) ? title : $"Issue {issueId}",
175175
$"https://github.com/example/repo/issues/{issueId}",

src/DemaConsulting.BuildMark/RepoConnectors/RepoConnectorBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ protected virtual Task<string> RunCommandAsync(string command, string arguments,
4949
/// <param name="from">Starting version (null for start of history).</param>
5050
/// <param name="to">Ending version (null for current state).</param>
5151
/// <returns>List of changes with full information.</returns>
52-
public abstract Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to);
52+
public abstract Task<List<ItemInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to);
5353

5454
/// <summary>
5555
/// Gets the git hash for a tag.
@@ -62,5 +62,5 @@ protected virtual Task<string> RunCommandAsync(string command, string arguments,
6262
/// Gets the list of open issues with their details.
6363
/// </summary>
6464
/// <returns>List of open issues with full information.</returns>
65-
public abstract Task<List<ChangeInfo>> GetOpenIssuesAsync();
65+
public abstract Task<List<ItemInfo>> GetOpenIssuesAsync();
6666
}

test/DemaConsulting.BuildMark.Tests/BuildInformationTests.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,9 @@ public void BuildInformation_ToMarkdown_DisplaysNAForEmptyChanges()
266266
Version.Create("v1.1.0"),
267267
"abc123",
268268
"def456",
269-
new List<ChangeInfo>(), // No changes
270-
new List<ChangeInfo> { new ChangeInfo("2", "Bug fix", "https://example.com/2", "bug") },
271-
new List<ChangeInfo>());
269+
new List<ItemInfo>(), // No changes
270+
new List<ItemInfo> { new ItemInfo("2", "Bug fix", "https://example.com/2", "bug") },
271+
new List<ItemInfo>());
272272

273273
// Act
274274
var markdown = buildInfo.ToMarkdown();
@@ -292,9 +292,9 @@ public void BuildInformation_ToMarkdown_DisplaysNAForEmptyBugs()
292292
Version.Create("v1.1.0"),
293293
"abc123",
294294
"def456",
295-
new List<ChangeInfo> { new ChangeInfo("1", "Feature", "https://example.com/1", "feature") },
296-
new List<ChangeInfo>(), // No bugs
297-
new List<ChangeInfo>());
295+
new List<ItemInfo> { new ItemInfo("1", "Feature", "https://example.com/1", "feature") },
296+
new List<ItemInfo>(), // No bugs
297+
new List<ItemInfo>());
298298

299299
// Act
300300
var markdown = buildInfo.ToMarkdown();
@@ -350,9 +350,9 @@ public async Task BuildInformation_ToMarkdown_HandlesFirstReleaseWithNA()
350350
private class MockRepoConnectorEmpty : IRepoConnector
351351
{
352352
public Task<List<Version>> GetTagHistoryAsync() => Task.FromResult(new List<Version>());
353-
public Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to) => Task.FromResult(new List<ChangeInfo>());
353+
public Task<List<ItemInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to) => Task.FromResult(new List<ItemInfo>());
354354
public Task<string> GetHashForTagAsync(string? tag) => Task.FromResult("hash123");
355-
public Task<List<ChangeInfo>> GetOpenIssuesAsync() => Task.FromResult(new List<ChangeInfo>());
355+
public Task<List<ItemInfo>> GetOpenIssuesAsync() => Task.FromResult(new List<ItemInfo>());
356356
}
357357

358358
/// <summary>
@@ -364,9 +364,9 @@ public Task<List<Version>> GetTagHistoryAsync()
364364
{
365365
return Task.FromResult(new List<Version> { Version.Create("v1.0.0") });
366366
}
367-
public Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to) => Task.FromResult(new List<ChangeInfo>());
367+
public Task<List<ItemInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to) => Task.FromResult(new List<ItemInfo>());
368368
public Task<string> GetHashForTagAsync(string? tag) => Task.FromResult(tag == null ? "different123" : "hash123");
369-
public Task<List<ChangeInfo>> GetOpenIssuesAsync() => Task.FromResult(new List<ChangeInfo>());
369+
public Task<List<ItemInfo>> GetOpenIssuesAsync() => Task.FromResult(new List<ItemInfo>());
370370
}
371371

372372
/// <summary>
@@ -383,7 +383,7 @@ public Task<List<Version>> GetTagHistoryAsync()
383383
Version.Create("v2.0.0")
384384
});
385385
}
386-
public Task<List<ChangeInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to) => Task.FromResult(new List<ChangeInfo>());
386+
public Task<List<ItemInfo>> GetChangesBetweenTagsAsync(Version? from, Version? to) => Task.FromResult(new List<ItemInfo>());
387387

388388
public Task<string> GetHashForTagAsync(string? tag)
389389
{
@@ -400,6 +400,6 @@ public Task<string> GetHashForTagAsync(string? tag)
400400
return Task.FromResult("abc123def456");
401401
}
402402

403-
public Task<List<ChangeInfo>> GetOpenIssuesAsync() => Task.FromResult(new List<ChangeInfo>());
403+
public Task<List<ItemInfo>> GetOpenIssuesAsync() => Task.FromResult(new List<ItemInfo>());
404404
}
405405
}

0 commit comments

Comments
 (0)