- add logic which cleans up custom placeholders with the [] syntax which were not matched
This commit is contained in:
@@ -605,7 +605,7 @@ it('Extract custom placeholder from PR body and replace in global template', asy
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
customConfig.template = "${{CHANGELOG}}\n\n${{C_PLACEHOLER_2[2]}}\n\n${{C_PLACEHOLER_2[*]}}"
|
customConfig.template = "${{CHANGELOG}}\n\n${{C_PLACEHOLER_2[2]}}\n\n${{C_PLACEHOLER_2[*]}}${{C_PLACEHOLDER_1[7]}}${{C_PLACEHOLER_2[1493]}}"
|
||||||
customConfig.pr_template = "${{BODY}} ----> ${{C_PLACEHOLDER_1}}"
|
customConfig.pr_template = "${{BODY}} ----> ${{C_PLACEHOLDER_1}}"
|
||||||
|
|
||||||
const resultChangelog = buildChangelog(DefaultDiffInfo, mergedPullRequests, {
|
const resultChangelog = buildChangelog(DefaultDiffInfo, mergedPullRequests, {
|
||||||
|
|||||||
+10
@@ -1648,6 +1648,7 @@ function buildChangelog(diffInfo, prs, options) {
|
|||||||
let transformedChangelog = config.template || configuration_1.DefaultConfiguration.template;
|
let transformedChangelog = config.template || configuration_1.DefaultConfiguration.template;
|
||||||
transformedChangelog = replacePlaceholders(transformedChangelog, placeholderMap, placeholders, placeholderPrMap);
|
transformedChangelog = replacePlaceholders(transformedChangelog, placeholderMap, placeholders, placeholderPrMap);
|
||||||
transformedChangelog = replacePrPlaceholders(transformedChangelog, placeholderPrMap);
|
transformedChangelog = replacePrPlaceholders(transformedChangelog, placeholderPrMap);
|
||||||
|
transformedChangelog = cleanupPrPlaceHolders(transformedChangelog, placeholders);
|
||||||
core.info(`ℹ️ Filled template`);
|
core.info(`ℹ️ Filled template`);
|
||||||
return transformedChangelog;
|
return transformedChangelog;
|
||||||
}
|
}
|
||||||
@@ -1733,6 +1734,15 @@ function replacePrPlaceholders(template, placeholderPrMap /* map with all pr rel
|
|||||||
}
|
}
|
||||||
return transformed;
|
return transformed;
|
||||||
}
|
}
|
||||||
|
function cleanupPrPlaceHolders(template, placeholders /* placeholders to apply */) {
|
||||||
|
let transformed = template;
|
||||||
|
for (const [, phs] of placeholders) {
|
||||||
|
for (const ph of phs) {
|
||||||
|
transformed = transformed.replaceAll(new RegExp(`\\$\\{\\{${ph.name}\\[.+?\\]\\}\\}`, 'gu'), '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return transformed;
|
||||||
|
}
|
||||||
function transform(filled, transformers) {
|
function transform(filled, transformers) {
|
||||||
if (transformers.length === 0) {
|
if (transformers.length === 0) {
|
||||||
return filled;
|
return filled;
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -255,6 +255,7 @@ export function buildChangelog(diffInfo: DiffInfo, prs: PullRequestInfo[], optio
|
|||||||
let transformedChangelog = config.template || DefaultConfiguration.template
|
let transformedChangelog = config.template || DefaultConfiguration.template
|
||||||
transformedChangelog = replacePlaceholders(transformedChangelog, placeholderMap, placeholders, placeholderPrMap)
|
transformedChangelog = replacePlaceholders(transformedChangelog, placeholderMap, placeholders, placeholderPrMap)
|
||||||
transformedChangelog = replacePrPlaceholders(transformedChangelog, placeholderPrMap)
|
transformedChangelog = replacePrPlaceholders(transformedChangelog, placeholderPrMap)
|
||||||
|
transformedChangelog = cleanupPrPlaceHolders(transformedChangelog, placeholders)
|
||||||
core.info(`ℹ️ Filled template`)
|
core.info(`ℹ️ Filled template`)
|
||||||
return transformedChangelog
|
return transformedChangelog
|
||||||
}
|
}
|
||||||
@@ -361,6 +362,19 @@ function replacePrPlaceholders(
|
|||||||
return transformed
|
return transformed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function cleanupPrPlaceHolders(
|
||||||
|
template: string,
|
||||||
|
placeholders: Map<string, Placeholder[]> /* placeholders to apply */
|
||||||
|
): string {
|
||||||
|
let transformed = template
|
||||||
|
for (const [, phs] of placeholders) {
|
||||||
|
for (const ph of phs) {
|
||||||
|
transformed = transformed.replaceAll(new RegExp(`\\$\\{\\{${ph.name}\\[.+?\\]\\}\\}`, 'gu'), '')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return transformed
|
||||||
|
}
|
||||||
|
|
||||||
function transform(filled: string, transformers: RegexTransformer[]): string {
|
function transform(filled: string, transformers: RegexTransformer[]): string {
|
||||||
if (transformers.length === 0) {
|
if (transformers.length === 0) {
|
||||||
return filled
|
return filled
|
||||||
|
|||||||
Reference in New Issue
Block a user