| # This workflow performs scheduled maintenance tasks. | |
| # | |
| # Copyright (c) Microsoft Corporation. | |
| # SPDX-License-Identifier: BSD-2-Clause-Patent | |
| # | |
| name: Scheduled Maintenance | |
| on: | |
| schedule: | |
| # * is a special character in YAML so you have to quote this string | |
| # Run every hour - https://crontab.guru/#0_*_*_*_* | |
| - cron: '0 * * * *' | |
| workflow_dispatch: | |
| jobs: | |
| repo_cleanup: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| issues: write | |
| steps: | |
| - name: Prune Won't Fix Pull Requests | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| gh api \ | |
| -H "Accept: application/vnd.github+json" \ | |
| /repos/${GITHUB_REPOSITORY}/pulls | jq -r '.[]' | jq -rc '.html_url,.labels' | \ | |
| while read -r html_url ; do | |
| read -r labels | |
| if [[ $labels == *"state:wont-fix"* ]]; then | |
| gh pr close $html_url -c "Closed due to being marked as wont fix" --delete-branch | |
| fi | |
| done | |
| - name: Prune Won't Fix Issues | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| REPOSITORY: ${{ env.REPOSITORY_NAME }} | |
| run: | | |
| gh api \ | |
| -H "Accept: application/vnd.github+json" \ | |
| /repos/${GITHUB_REPOSITORY}/issues | jq -r '.[]' | jq -rc '.html_url,.labels' | \ | |
| while read -r html_url ; do | |
| read -r labels | |
| if [[ $labels == *"state:wont-fix"* ]]; then | |
| gh issue close $html_url -c "Closed due to being marked as wont fix" -r "not planned" | |
| fi | |
| done |