diff --git a/actions/update-draft-pr/src/rename.ts b/actions/update-draft-pr/src/rename.ts index cc627dfa519..d36e081d6e9 100644 --- a/actions/update-draft-pr/src/rename.ts +++ b/actions/update-draft-pr/src/rename.ts @@ -20,11 +20,25 @@ interface EmbedHeadlineParams { headline?: string; } +const HEADLINE_SECTION_PATTERN = /---\s+JSer\.info #\d+(?:\s+-\s+)?\s*([\s\S]*?)\s*----/; + +const hasExistingHeadline = (content: string): boolean => { + const match = content.match(HEADLINE_SECTION_PATTERN); + if (!match) { + return false; + } + return match[1].trim().length > 0; +}; + const embedHeadline = ({ content, headline }: EmbedHeadlineParams): string => { if (!headline) { console.log("headline is not defined"); return content; } + if (hasExistingHeadline(content)) { + console.log("headline is already written in content; skip overwrite"); + return content; + } console.log("# headline") console.log(headline); console.log("# content")