Skip to content

Image block should not have the "Add text over image" control when in Write mode #6148

Image block should not have the "Add text over image" control when in Write mode

Image block should not have the "Add text over image" control when in Write mode #6148

name: Sync Core Backport Issue
on:
push:
branches:
- trunk
issues:
types: [labeled]
jobs:
sync-backport-changelog:
name: Sync Core Backport Issue
runs-on: ubuntu-latest
if: >
github.event_name == 'push' ||
(
github.event_name == 'issues' &&
github.event.action == 'labeled' &&
github.event.label.name == '🤖 Sync Backport Changelog'
)
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 2 # Fetch the last two commits to compare changes
- name: Check for changes in backport-changelog
if: github.event_name == 'push'
run: |
if git diff --quiet HEAD^ HEAD -- backport-changelog; then
echo "skip_sync=true" >> "$GITHUB_ENV"
fi
- name: Sync Issue
if: ${{ ! env.skip_sync }}
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const labelName = '🤖 Sync Backport Changelog';
const issues = await github.paginate(github.rest.issues.listForRepo, {
owner: context.repo.owner,
repo: context.repo.repo,
labels: [labelName],
state: 'open',
per_page: 1,
});
if (issues.length === 0) {
console.log(`No issues found with the "${labelName}" label.`);
return;
}
const [latestIssue] = issues;
const versionMatch = latestIssue.title.match(/(\d+\.\d+)/);
if (!versionMatch) {
console.log('Could not find a version number in the latest issue title.');
return;
}
const version = versionMatch[1];
console.log(`Latest version: ${version}`);
const { execSync } = require('child_process');
const processedChangelog = execSync(`awk '/./ {print ($0 ~ /^[-*]/ ? " " : "- ") $0}' backport-changelog/${version}/*.md`).toString().trim();
const startDelimiter = '<!-- START TRUNK BACKPORT CHANGELOG -->';
const endDelimiter = '<!-- END TRUNK BACKPORT CHANGELOG -->';
const autoGeneratedContent = `${startDelimiter}\n${processedChangelog}\n${endDelimiter}`;
const existingBody = latestIssue.body ?? '';
let newBody;
const regex = new RegExp(`${startDelimiter}[\\s\\S]*${endDelimiter}`);
if (regex.test(existingBody)) {
// If delimiters exist, replace the content between them
newBody = existingBody.replace(regex, autoGeneratedContent);
} else {
// If delimiters don't exist, append the new content at the end
newBody = `${existingBody}\n\n${autoGeneratedContent}`;
}
if (newBody.trim() !== existingBody.trim()) {
await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: latestIssue.number,
body: newBody
});
console.log('Issue description updated successfully.');
} else {
console.log('Issue description is already up to date.');
}