OPC # 0006: OPC Git Trunk-Based management
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using ControlPlane.Api.Services;
|
||||
using ControlPlane.Core.Models;
|
||||
using ControlPlane.Core.Services;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace ControlPlane.Api.Endpoints;
|
||||
@@ -178,6 +179,27 @@ public static class PromotionEndpoints
|
||||
}
|
||||
});
|
||||
|
||||
// GET /api/promotions/build-gate?sha={sha}
|
||||
// Returns the build-gate status for the given commit SHA.
|
||||
// If status is "Red", the promote button in the UI should be disabled.
|
||||
g.MapGet("/build-gate", async (string sha, BuildHistoryService history, CancellationToken ct) =>
|
||||
{
|
||||
var builds = await history.GetBuildsByShaAsync(sha);
|
||||
var latest = builds.MaxBy(b => b.StartedAt);
|
||||
if (latest is null)
|
||||
return Results.Ok(new { status = "Unknown", sha, buildId = (string?)null, buildStatus = (string?)null });
|
||||
|
||||
var gateStatus = latest.Status switch
|
||||
{
|
||||
BuildStatus.Succeeded => "Green",
|
||||
BuildStatus.Failed => "Red",
|
||||
BuildStatus.Running => "Running",
|
||||
_ => "Unknown",
|
||||
};
|
||||
|
||||
return Results.Ok(new { status = gateStatus, sha, buildId = latest.Id, buildStatus = latest.Status.ToString() });
|
||||
});
|
||||
|
||||
return app;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user