43 lines
1.4 KiB
YAML
43 lines
1.4 KiB
YAML
|
#
|
||
|
# auto-label.yml
|
||
|
# - Find all open issues without a label and a title containing "[BUG]".
|
||
|
# - Apply the label "Bug: Potential ?" to these issues.
|
||
|
#
|
||
|
|
||
|
on:
|
||
|
schedule:
|
||
|
- cron: "30 8 * * *"
|
||
|
|
||
|
jobs:
|
||
|
autolabel:
|
||
|
name: Auto Label
|
||
|
if: github.repository == 'MarlinFirmware/Marlin'
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- name: Auto Label for [BUG]
|
||
|
uses: actions/github-script@v5
|
||
|
with:
|
||
|
script: |
|
||
|
# Get all open issues in this repository
|
||
|
const issueList = await github.rest.issues.listForRepo({
|
||
|
owner: context.repo.owner,
|
||
|
repo: context.repo.repo,
|
||
|
state: 'open'
|
||
|
});
|
||
|
# Filter the list of issues to only those that don't have any labels
|
||
|
# and have a title that contains '[BUG]'. Only the first 50 issues.
|
||
|
const matchingIssues = issueList.data.filter(
|
||
|
issue => issue.title.includes('[BUG]') && issue.labels.length === 0
|
||
|
);
|
||
|
# Process the first 50
|
||
|
for (const issue of matchingIssues.slice(0, 50)) {
|
||
|
// Run the desired action on the issue
|
||
|
// For example, to add a label:
|
||
|
await github.rest.issues.addLabels({
|
||
|
owner: context.repo.owner,
|
||
|
repo: context.repo.repo,
|
||
|
issue_number: issue.number,
|
||
|
labels: ['Bug: Potential ?']
|
||
|
});
|
||
|
}
|