Files
SGS/.github/workflows/pr-commits.yml
2026-03-29 19:46:34 +13:00

44 lines
1.3 KiB
YAML

name: Populate PR commits
on:
pull_request:
types: [opened, synchronize]
jobs:
update-body:
name: Inject commit list into PR body
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/github-script@v7
with:
script: |
const { data: commits } = await github.rest.pulls.listCommits({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
});
const commitLines = commits
.map(c => `- ${c.commit.message.split('\n')[0]} (${c.sha.slice(0, 7)})`)
.join('\n');
const currentBody = context.payload.pull_request.body ?? '';
// Replace everything between the Commits header and the next ## header
const updated = currentBody.replace(
/(## Commits\n)[\s\S]*?(\n## )/,
`$1\n${commitLines}\n$2`
);
if (updated === currentBody) return;
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
body: updated,
});