diff --git a/src/lib/github/v3/createStatusComment.test.ts b/src/lib/github/v3/createStatusComment.test.ts index 0a310885..0d1e78b5 100644 --- a/src/lib/github/v3/createStatusComment.test.ts +++ b/src/lib/github/v3/createStatusComment.test.ts @@ -345,6 +345,34 @@ describe('getCommentBody', () => { targetPullRequestStates: [], }, }, + { + formatted: 'some-formatted-text', + commit: { + author: { + email: 'matthias.wilhelm@elastic.co', + name: 'Matthias Polman-Wilhelm', + }, + sourceBranch: 'master', + sourcePullRequest: { + labels: [], + number: 44, + title: 'Antarctica commit | with pipeline char', + url: 'url-to-pr-45', + mergeCommit: { + sha: '', + message: 'Antarctica commit | with pipeline char', + }, + }, + suggestedTargetBranches: [], + sourceCommit: { + branchLabelMapping: {}, + committedDate: '', + sha: '', + message: 'Antarctica commit | with pipeline char', + }, + targetPullRequestStates: [], + }, + }, ], }), }, @@ -365,27 +393,27 @@ describe('getCommentBody', () => { it('posts a comment when `publishStatusCommentOnFailure = true`', () => { const params = getParams({ publishStatusCommentOnFailure: true }); expect(getCommentBody(params)).toMatchInlineSnapshot(` - "## 💔 Some backports could not be created +"## 💔 Some backports could not be created - | Status | Branch | Result | - |:------:|:------:|:------| - |✅|7.x|[](url-to-pr-55)| - |❌|7.1|**Backport failed because of merge conflicts**

You might need to backport the following PRs to 7.1:
- [New Zealand commit message](url-to-pr-5)
- [Australia commit](url-to-pr-44)| - |❌|7.2|Backport failed because of merge conflicts| +| Status | Branch | Result | +|:------:|:------:|:------| +|✅|7.x|[](url-to-pr-55)| +|❌|7.1|**Backport failed because of merge conflicts**

You might need to backport the following PRs to 7.1:
- [New Zealand commit message](url-to-pr-5)
- [Australia commit](url-to-pr-44)
- [Antarctica commit \\| with pipeline char](url-to-pr-45)| +|❌|7.2|Backport failed because of merge conflicts| - Note: Successful backport PRs will be merged automatically after passing CI. +Note: Successful backport PRs will be merged automatically after passing CI. - ### Manual backport - To create the backport manually run: - \`\`\` - node scripts/backport --pr 55 - \`\`\` +### Manual backport +To create the backport manually run: +\`\`\` +node scripts/backport --pr 55 +\`\`\` - ### Questions ? - Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) +### Questions ? +Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) - " - `); +" +`); }); it('does not post a comment when `publishStatusCommentOnFailure = false`', () => { diff --git a/src/lib/github/v3/createStatusComment.ts b/src/lib/github/v3/createStatusComment.ts index e94e7311..6ced470b 100644 --- a/src/lib/github/v3/createStatusComment.ts +++ b/src/lib/github/v3/createStatusComment.ts @@ -152,9 +152,10 @@ ${manualBackportCommand}${questionsAndLinkToBackport}${packageVersionSection}`; ) { const unmergedBackports = result.error.errorContext.commitsWithoutBackports.map((c) => { - return ` - [${getFirstLine(c.commit.sourceCommit.message)}](${ - c.commit.sourcePullRequest?.url - })`; + const msg = getFirstLine(c.commit.sourceCommit.message); + // make sure to escape the pipe character to ensure the markdown table is correct + const msgEscaped = msg.replace(/\|/g, '\\|'); + return ` - [${msgEscaped}](${c.commit.sourcePullRequest?.url})`; }); const unmergedBackportsSection =