Skip to content

nf-metro docs: bit more detail based on rnaseq example #5306

nf-metro docs: bit more detail based on rnaseq example

nf-metro docs: bit more detail based on rnaseq example #5306

name: Add Netlify Link to PR
on:
pull_request_target:
paths:
- "sites/**/src/pages/**"
- "sites/**/src/content/**"
permissions:
pull-requests: write
jobs:
add-comment:
runs-on: ubuntu-latest
steps:
- name: Add Netlify link to PR
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
with:
github-token: ${{ github.token }}
script: |
const changedFiles = (await github.paginate(github.rest.pulls.listFiles, {
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
per_page: 100,
}))
.map(file => file.filename)
.slice(0, 50);
console.log('Changed files:', changedFiles);
// remove the sites/** prefix until src
const processedFiles = changedFiles.map(file => file.replace(/^sites\/[^/]+\//, ''));
console.log('Processed files:', processedFiles);
// handle normal pages
let netlifyLinks = processedFiles
.filter(file => file.startsWith('src/pages/'))
.filter(file => !file.endsWith('].astro')) // skip dynamic routes
.map(file => `@netlify ${file?.replace('src/pages/', '/')}`)[0]
?.replace(/\.md$/, '')
.replace(/\.mdx$/, '')
.replace(/\.astro$/, '')
.replace(/\/index$/, '');
// handle pages in content collections
if (!netlifyLinks) {
netlifyLinks = processedFiles
.filter(file => file.startsWith('src/content/'))
.map(file => `@netlify ${file?.replace('src/content/', '/')}`)[0]
?.replace(/\.md$/, '')
.replace(/\.mdx$/, '')
.replace(/\/index$/, '');
}
console.log('Netlify links:', netlifyLinks);
if (netlifyLinks) {
console.log('Adding Netlify link to PR body', context.payload.pull_request.number);
const { data: pullRequest } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
});
console.log('Current PR:', pullRequest);
console.log('Current PR body:', pullRequest.body);
const currentBody = pullRequest.body || '';
if (currentBody.includes('@netlify')) {
return; // Skip if the PR body already contains a Netlify link
}
const newBody = `${currentBody}\n\n${netlifyLinks}`;
console.log('New PR body:', newBody);
// Update the pull request body
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pullRequest.number,
body: newBody,
});
console.log('Netlify link added to PR body');
}