From 173fcbca114bad19fb18889a6b70e06ab731b197 Mon Sep 17 00:00:00 2001 From: Volodymyr Bobko Date: Wed, 11 Dec 2024 16:03:54 +0100 Subject: [PATCH] SIGN-7471 - connector logs support --- .../dtos/submit-signing-request-result.ts | 13 ++++++++- actions/submit-signing-request/task.ts | 29 ++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/actions/submit-signing-request/dtos/submit-signing-request-result.ts b/actions/submit-signing-request/dtos/submit-signing-request-result.ts index 9ba1d4a..6bf0bdf 100644 --- a/actions/submit-signing-request/dtos/submit-signing-request-result.ts +++ b/actions/submit-signing-request/dtos/submit-signing-request-result.ts @@ -3,6 +3,7 @@ export interface SubmitSigningRequestResult { validationResult: ValidationResult; signingRequestUrl: string; error: string; + logs: LogEntry[]; } export interface ValidationResult { @@ -12,4 +13,14 @@ export interface ValidationResult { export interface ValidationError { error: string; howToFix: string; -} \ No newline at end of file +} + +export interface LogEntry { + message: string; + level: string; +} + +export const LogLevelDebug = "Debug"; +export const LogLevelInformation = "Information"; +export const LogLevelWarning = "Warning"; +export const LogLevelError = "Error"; diff --git a/actions/submit-signing-request/task.ts b/actions/submit-signing-request/task.ts index 8b372f6..150c63b 100644 --- a/actions/submit-signing-request/task.ts +++ b/actions/submit-signing-request/task.ts @@ -4,7 +4,7 @@ import * as core from '@actions/core'; import * as moment from 'moment'; import url from 'url'; -import { SubmitSigningRequestResult, ValidationResult } from './dtos/submit-signing-request-result'; +import { LogEntry, LogLevelDebug, LogLevelError, LogLevelInformation, LogLevelWarning, SubmitSigningRequestResult, ValidationResult } from './dtos/submit-signing-request-result'; import { buildSignPathAuthorizationHeader, executeWithRetries, httpErrorResponseToText } from './utils'; import { SignPathUrlBuilder } from './signpath-url-builder'; import { SigningRequestDto } from './dtos/signing-request'; @@ -88,6 +88,7 @@ export class Task { this.checkResponseStructure(response); this.checkCiSystemValidationResult(response.validationResult); + this.redirectConnectorLogsToActionLogs(response.logs); const signingRequestUrlObj = url.parse(response.signingRequestUrl); this.urlBuilder.signPathBaseUrl = signingRequestUrlObj.protocol + '//' + signingRequestUrlObj.host; @@ -292,10 +293,36 @@ export class Task { // if neither validationResult nor signingRequestId are present, // then the response might be not from the connector + core.error(`Unexpected response from the SignPath connector: ${JSON.stringify(response)}`); throw new Error(`SignPath signing request was not created. Please make sure that connector-url is pointing to the SignPath GitHub Actions connector endpoint.`); } } + private redirectConnectorLogsToActionLogs(logs: LogEntry[]): void { + if (logs && logs.length > 0) { + logs.forEach(log => { + switch (log.level) { + case LogLevelDebug: + core.debug(log.message); + break; + case LogLevelInformation: + console.log('asdasdasdasdasd'); + core.info(log.message); + break; + case LogLevelWarning: + core.warning(log.message); + break; + case LogLevelError: + core.error(log.message); + break; + default: + core.info(log.message); + break; + } + }); + } + } + private buildSigningRequestPayload(): any { return { signPathApiToken: this.helperInputOutput.signPathApiToken,