Files
fish-shell/.github/workflows/autolabel_prs.yml
2026-02-08 13:12:41 +11:00

41 lines
1.4 KiB
YAML

name: Auto-Label PRs
on:
pull_request_target:
types: [opened, synchronize]
jobs:
label-and-milestone:
runs-on: ubuntu-latest
steps:
- name: Set label and milestone
id: set-label-milestone
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8, build_tools/update-dependencies.sh
with:
script: |
const completionsLabel = 'completions';
// Get changed files in the pull request
const prNumber = context.payload.pull_request.number;
const { data: files } = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber,
});
// Check if any file matches /share/completions/*.fish and no change is outside of /share/
const completionsRegex = new RegExp('^share/completions/.*\.fish');
const isCompletions = files.some(file => completionsRegex.test(file.filename))
&& files.every(file => file.filename.startsWith('share/'));
if (isCompletions) {
// Add label to PR
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
labels: [completionsLabel],
});
console.log(`PR ${prNumber} assigned label "${completionsLabel}"`);
}