35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using StellaOps.TaskRunner.Core.Execution;
|
|
|
|
namespace StellaOps.TaskRunner.Infrastructure.Execution;
|
|
|
|
public sealed class LoggingPackRunNotificationPublisher : IPackRunNotificationPublisher
|
|
{
|
|
private readonly ILogger<LoggingPackRunNotificationPublisher> logger;
|
|
|
|
public LoggingPackRunNotificationPublisher(ILogger<LoggingPackRunNotificationPublisher> logger)
|
|
{
|
|
this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
|
}
|
|
|
|
public Task PublishApprovalRequestedAsync(string runId, ApprovalNotification notification, CancellationToken cancellationToken)
|
|
{
|
|
logger.LogInformation(
|
|
"Run {RunId}: approval {ApprovalId} requires grants {Grants}.",
|
|
runId,
|
|
notification.ApprovalId,
|
|
string.Join(",", notification.RequiredGrants));
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
public Task PublishPolicyGatePendingAsync(string runId, PolicyGateNotification notification, CancellationToken cancellationToken)
|
|
{
|
|
logger.LogDebug(
|
|
"Run {RunId}: policy gate {StepId} pending (parameters: {Parameters}).",
|
|
runId,
|
|
notification.StepId,
|
|
string.Join(",", notification.Parameters.Select(p => p.Name)));
|
|
return Task.CompletedTask;
|
|
}
|
|
}
|