- 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}}"
|
||||
|
||||
const resultChangelog = buildChangelog(DefaultDiffInfo, mergedPullRequests, {
|
||||
|
||||
+10
@@ -1648,6 +1648,7 @@ function buildChangelog(diffInfo, prs, options) {
|
||||
let transformedChangelog = config.template || configuration_1.DefaultConfiguration.template;
|
||||
transformedChangelog = replacePlaceholders(transformedChangelog, placeholderMap, placeholders, placeholderPrMap);
|
||||
transformedChangelog = replacePrPlaceholders(transformedChangelog, placeholderPrMap);
|
||||
transformedChangelog = cleanupPrPlaceHolders(transformedChangelog, placeholders);
|
||||
core.info(`ℹ️ Filled template`);
|
||||
return transformedChangelog;
|
||||
}
|
||||
@@ -1733,6 +1734,15 @@ function replacePrPlaceholders(template, placeholderPrMap /* map with all pr rel
|
||||
}
|
||||
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) {
|
||||
if (transformers.length === 0) {
|
||||
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
|
||||
transformedChangelog = replacePlaceholders(transformedChangelog, placeholderMap, placeholders, placeholderPrMap)
|
||||
transformedChangelog = replacePrPlaceholders(transformedChangelog, placeholderPrMap)
|
||||
transformedChangelog = cleanupPrPlaceHolders(transformedChangelog, placeholders)
|
||||
core.info(`ℹ️ Filled template`)
|
||||
return transformedChangelog
|
||||
}
|
||||
@@ -361,6 +362,19 @@ function replacePrPlaceholders(
|
||||
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 {
|
||||
if (transformers.length === 0) {
|
||||
return filled
|
||||
|
||||
Reference in New Issue
Block a user