diff --git a/.github/local-actions/branch-manager/lib/main.ts b/.github/local-actions/branch-manager/lib/main.ts index b387e990f..9c493a4c1 100644 --- a/.github/local-actions/branch-manager/lib/main.ts +++ b/.github/local-actions/branch-manager/lib/main.ts @@ -11,6 +11,7 @@ import { } from '../../../../github-actions/utils.js'; import {MergeConflictsFatalError} from '../../../../ng-dev/pr/merge/failures.js'; import {createPullRequestValidationConfig} from '../../../../ng-dev/pr/common/validation/validation-config.js'; +import {InvalidTargetLabelError} from '../../../../ng-dev/pr/common/targeting/target-label.js'; interface CommmitStatus { state: 'pending' | 'error' | 'failure' | 'success'; @@ -155,19 +156,22 @@ async function main() { await setMergeabilityStatusOnPullRequest(statusInfo); } catch (e: Error | unknown) { + let state: CommmitStatus['state'] = 'error'; let description: string; const {runId, repo, serverUrl} = actionContext; const targetUrl = `${serverUrl}/${repo.owner}/${repo.repo}/actions/runs/${runId}`; - if (e instanceof Error) { + + if (e instanceof InvalidTargetLabelError) { + // For this action, an invalid target label represents that we aren't ready to check the + // mergeability yet, rather than an actual failure. + state = 'pending'; + description = e.failureMessage; + } else if (e instanceof Error) { description = e.message; } else { description = 'Internal Error, see link for action log'; } - await setMergeabilityStatusOnPullRequest({ - state: 'error', - description, - targetUrl, - }); + await setMergeabilityStatusOnPullRequest({state, description, targetUrl}); // Re-throw the error so that the action run is set as failing. throw e; } diff --git a/.github/local-actions/branch-manager/main.js b/.github/local-actions/branch-manager/main.js index fbe7dc52f..549116f1c 100644 --- a/.github/local-actions/branch-manager/main.js +++ b/.github/local-actions/branch-manager/main.js @@ -69642,19 +69642,19 @@ async function main() { })(); await setMergeabilityStatusOnPullRequest(statusInfo); } catch (e) { + let state = "error"; let description; const { runId, repo: repo2, serverUrl } = import_github5.context; const targetUrl = `${serverUrl}/${repo2.owner}/${repo2.repo}/actions/runs/${runId}`; - if (e instanceof Error) { + if (e instanceof InvalidTargetLabelError) { + state = "pending"; + description = e.failureMessage; + } else if (e instanceof Error) { description = e.message; } else { description = "Internal Error, see link for action log"; } - await setMergeabilityStatusOnPullRequest({ - state: "error", - description, - targetUrl - }); + await setMergeabilityStatusOnPullRequest({ state, description, targetUrl }); throw e; } } diff --git a/github-actions/branch-manager/lib/main.ts b/github-actions/branch-manager/lib/main.ts index e644fb89a..1f1b9ec57 100644 --- a/github-actions/branch-manager/lib/main.ts +++ b/github-actions/branch-manager/lib/main.ts @@ -111,7 +111,7 @@ async function createWorkflowForPullRequest(inputs: WorkflowInputs) { repo: inputs.repo, owner: inputs.owner, state: 'pending', - description: 'Running mergibility check', + description: 'Mergibility check requested', sha: inputs.sha, context: 'mergeability', }); diff --git a/github-actions/branch-manager/main.js b/github-actions/branch-manager/main.js index 4ff3fce22..eb7c02030 100644 --- a/github-actions/branch-manager/main.js +++ b/github-actions/branch-manager/main.js @@ -48159,7 +48159,7 @@ async function createWorkflowForPullRequest(inputs) { repo: inputs.repo, owner: inputs.owner, state: "pending", - description: "Running mergibility check", + description: "Mergibility check requested", sha: inputs.sha, context: "mergeability" });