mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-16 15:21:14 -03:00
41 lines
1.4 KiB
YAML
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}"`);
|
|
}
|