diff --git a/.github/workflows/update-script-timestamp-on-sh-change.yml b/.github/workflows/update-script-timestamp-on-sh-change.yml index e5623aa65..ee3caa578 100644 --- a/.github/workflows/update-script-timestamp-on-sh-change.yml +++ b/.github/workflows/update-script-timestamp-on-sh-change.yml @@ -54,6 +54,17 @@ jobs: echo "$slugs" > changed_slugs.txt echo "count=$(echo "$slugs" | wc -w)" >> "$GITHUB_OUTPUT" + - name: Parse PR number from merge commit + id: pr + run: | + if [[ "$COMMIT_MSG" =~ #([0-9]+) ]]; then + echo "number=${BASH_REMATCH[1]}" >> "$GITHUB_OUTPUT" + else + echo "number=" >> "$GITHUB_OUTPUT" + fi + env: + COMMIT_MSG: ${{ github.event.head_commit.message }} + - name: Update script timestamps in PocketBase if: steps.slugs.outputs.count != '0' env: @@ -61,6 +72,8 @@ jobs: POCKETBASE_COLLECTION: ${{ secrets.POCKETBASE_COLLECTION }} POCKETBASE_ADMIN_EMAIL: ${{ secrets.POCKETBASE_ADMIN_EMAIL }} POCKETBASE_ADMIN_PASSWORD: ${{ secrets.POCKETBASE_ADMIN_PASSWORD }} + COMMIT_URL: ${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }} + PR_URL: ${{ steps.pr.outputs.number != '' && format('{0}/{1}/pull/{2}', github.server_url, github.repository, steps.pr.outputs.number) || '' }} run: | node << 'ENDSCRIPT' (async function() { @@ -136,7 +149,10 @@ jobs: const patchRes = await request(recordsUrl + '/' + record.id, { method: 'PATCH', headers: { 'Authorization': token, 'Content-Type': 'application/json' }, - body: JSON.stringify({ name: record.name || record.slug }) + body: JSON.stringify({ + name: record.name || record.slug, + last_update_commit: process.env.PR_URL || process.env.COMMIT_URL || '' + }) }); if (!patchRes.ok) { console.warn('PATCH failed for slug ' + slug + ': ' + patchRes.body);