Skip to content

Introduce Cake.Issues.Build for build server integrations#1238

Merged
pascalberger merged 8 commits intodevelopfrom
copilot/fix-1237
Oct 25, 2025
Merged

Introduce Cake.Issues.Build for build server integrations#1238
pascalberger merged 8 commits intodevelopfrom
copilot/fix-1237

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Sep 1, 2025

This PR introduces the new Cake.Issues.Build library to provide a cleaner separation between pull request systems and build servers, addressing the confusing naming issue where build server addins were using Cake.Issues.PullRequests.

What's New

New Cake.Issues.Build Library

  • Focused API: Contains only functionality relevant to build servers without pull request-specific capabilities
  • Simplified Settings: Includes MaxIssuesToPost, MaxIssuesToPostForEachIssueProvider, ProviderIssueLimits (as Dictionary<string, int>), and IssueFilters
  • Base Class: BaseBuildServerSystem provides foundation for build server implementations without capabilities system
  • Complete Aliases: ReportIssuesToBuildServer methods for all usage scenarios

Shared Infrastructure

  • IssueFiltering: Shared source project containing common issue filtering logic that both pull request and build server systems can use
  • Reusable Components: IHasIssueFiltering interface and BasicIssueFilterer class enable code sharing

NuGet Package Support

  • Full package specifications for both Cake .NET Tool (Cake.Issues.Build) and Cake Frosting (Cake.Frosting.Issues.Build)
  • Proper dependency management and namespace imports via targets files

Usage Example

// Report issues to a custom build server
var settings = new ReportIssuesToBuildServerSettings(@"C:\repo")
{
    MaxIssuesToPost = 10
};

var result = ReportIssuesToBuildServer(
    issues,
    new MyBuildServerSystem(Context.Log),
    settings);

Context.Information($"{result.PostedIssues.Count()} issues reported");

Backward Compatibility

All existing functionality in Cake.Issues.PullRequests continues to work unchanged. The shared issue filtering logic is now used by both libraries, ensuring consistent behavior while eliminating code duplication.

Testing

  • 10 unit tests covering settings, base classes, and integration scenarios
  • 318 existing tests continue to pass, ensuring no regressions
  • Integration test demonstrates complete workflow with custom build server implementation

Future build server implementations should use the new Cake.Issues.Build library, while existing implementations can be migrated gradually without breaking changes.

Fixes #1237.

Copilot AI changed the title [WIP] Introduce Cake.Issues.Build Introduce Cake.Issues.Build for build server integrations Sep 1, 2025
Copilot AI requested a review from pascalberger September 1, 2025 20:04
Copilot AI and others added 5 commits October 25, 2025 11:09
Co-authored-by: pascalberger <2190718+pascalberger@users.noreply.github.com>
Co-authored-by: pascalberger <2190718+pascalberger@users.noreply.github.com>
Co-authored-by: pascalberger <2190718+pascalberger@users.noreply.github.com>
@pascalberger pascalberger marked this pull request as ready for review October 25, 2025 10:35
@pascalberger pascalberger requested a review from a team as a code owner October 25, 2025 10:35
Copilot AI review requested due to automatic review settings October 25, 2025 10:35
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the new Cake.Issues.Build library to provide cleaner separation between build server and pull request functionality, addressing a naming inconsistency where build server implementations were using the Cake.Issues.PullRequests namespace. The shared issue filtering logic has been extracted into a reusable IssueFiltering project that both libraries can use.

Key Changes:

  • New Cake.Issues.Build library with focused build server API
  • Shared source project (IssueFiltering) for common filtering logic between build servers and pull request systems
  • Complete test coverage with 10 unit tests and integration test example
  • NuGet package specifications for both Cake .NET Tool and Cake Frosting variants

Reviewed Changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/IssueFiltering/. New shared source project containing issue filtering logic
src/Cake.Issues.Build/*.cs New build server library core implementation
src/Cake.Issues.Build.Tests/*.cs Unit and integration tests for new library
src/Cake.Issues.PullRequests/IssueFilterer.cs Updated to use shared filtering namespace
src/Cake.Issues.PullRequests/Cake.Issues.PullRequests.csproj Added import of shared IssueFiltering project
src/Cake.Issues.slnx Added new projects to solution
nuspec/nuget/Cake..Build. NuGet package specifications and documentation for new library


Cake.Issues redefines issue management within the Cake build system by offering a comprehensive, universal, and extensible solution.
The unique capabilities of the addins empower development teams to enforce coding standards, generate insightful reports,
seamlessly incorporate various linting tools, and streamlining the integration with build servers.
Copy link

Copilot AI Oct 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar inconsistency: 'streamlining' should be 'streamline' to maintain parallel structure with 'incorporate' in the list.

Copilot uses AI. Check for mistakes.

Cake.Issues redefines issue management within the Cake build system by offering a comprehensive, universal, and extensible solution.
The unique capabilities of the addins empower development teams to enforce coding standards, generate insightful reports,
seamlessly incorporate various linting tools, and streamlining the integration with build servers.
Copy link

Copilot AI Oct 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar inconsistency: 'streamlining' should be 'streamline' to maintain parallel structure with 'incorporate' in the list.

Copilot uses AI. Check for mistakes.
@pascalberger pascalberger merged commit b3ad39e into develop Oct 25, 2025
149 checks passed
@pascalberger pascalberger deleted the copilot/fix-1237 branch October 25, 2025 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Introduce Cake.Issues.Build

3 participants