diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index 1f52d7d..5ad2ebb 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -17,11 +17,34 @@ jobs: with: github-token: "${{ secrets.GITHUB_TOKEN }}" + - name: Check for major version bumps in PR body + if: steps.metadata.outputs.update-type == '' + id: check-major + env: + PR_BODY: ${{ github.event.pull_request.body }} + run: | + # Parse "from X to Y" version pairs from the PR body and flag major bumps. + HAS_MAJOR=false + while IFS= read -r line; do + from_ver=$(echo "$line" | sed -n 's/.*from \([0-9][0-9.]*\) to \([0-9][0-9.]*\).*/\1/p') + to_ver=$(echo "$line" | sed -n 's/.*from \([0-9][0-9.]*\) to \([0-9][0-9.]*\).*/\2/p') + [ -z "$from_ver" ] && continue + from_major="${from_ver%%.*}" + to_major="${to_ver%%.*}" + if [ "$from_major" != "$to_major" ]; then + echo "Major bump detected: $from_ver -> $to_ver" + HAS_MAJOR=true + fi + done <<< "$PR_BODY" + echo "has_major=$HAS_MAJOR" >> "$GITHUB_OUTPUT" + - name: Approve PR if: >- - (contains(steps.metadata.outputs.update-type, 'version-update:semver-minor') || + ((contains(steps.metadata.outputs.update-type, 'version-update:semver-minor') || contains(steps.metadata.outputs.update-type, 'version-update:semver-patch')) && - !contains(steps.metadata.outputs.update-type, 'version-update:semver-major') + !contains(steps.metadata.outputs.update-type, 'version-update:semver-major')) || + (steps.metadata.outputs.update-type == '' && + steps.check-major.outputs.has_major != 'true') run: gh pr review --approve "$PR_URL" env: PR_URL: ${{ github.event.pull_request.html_url }} @@ -29,9 +52,11 @@ jobs: - name: Enable auto-merge for minor and patch updates if: >- - (contains(steps.metadata.outputs.update-type, 'version-update:semver-minor') || + ((contains(steps.metadata.outputs.update-type, 'version-update:semver-minor') || contains(steps.metadata.outputs.update-type, 'version-update:semver-patch')) && - !contains(steps.metadata.outputs.update-type, 'version-update:semver-major') + !contains(steps.metadata.outputs.update-type, 'version-update:semver-major')) || + (steps.metadata.outputs.update-type == '' && + steps.check-major.outputs.has_major != 'true') run: gh pr merge --auto --squash "$PR_URL" env: PR_URL: ${{ github.event.pull_request.html_url }} diff --git a/languages/republication-tracker-tool.pot b/languages/republication-tracker-tool.pot index d6f35f6..e184b21 100644 --- a/languages/republication-tracker-tool.pot +++ b/languages/republication-tracker-tool.pot @@ -2,14 +2,14 @@ # This file is distributed under the same license as the Republication Tracker Tool plugin. msgid "" msgstr "" -"Project-Id-Version: Republication Tracker Tool 2.8.0\n" +"Project-Id-Version: Republication Tracker Tool 2.8.1\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/republication-tracker-tool\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-02-03T18:46:30+00:00\n" +"POT-Creation-Date: 2026-04-02T13:55:24+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: republication-tracker-tool\n" diff --git a/package-lock.json b/package-lock.json index df3a173..9adf2ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16318,9 +16318,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -17317,9 +17317,9 @@ "license": "MIT" }, "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "version": "4.7.9", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.9.tgz", + "integrity": "sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -21053,9 +21053,9 @@ "dev": true }, "node_modules/lodash-es": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", - "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", "dev": true, "license": "MIT" }, @@ -23645,9 +23645,9 @@ } }, "node_modules/node-forge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz", - "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", "dev": true, "license": "(BSD-3-Clause OR GPL-2.0)", "engines": {