Stale #497
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Stale | |
on: | |
# NOTE: github.event is workflow_dispatch payload: | |
# https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_dispatch | |
workflow_dispatch: | |
inputs: | |
dryrun: | |
description: 'dryrun: Preview stale issues/prs without marking them (true|false)' | |
required: true | |
type: boolean | |
default: true | |
schedule: | |
- cron: 0 4 * * * | |
permissions: | |
issues: write | |
pull-requests: write | |
jobs: | |
stale: | |
if: '!github.event.repository.fork' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- only-issue-labels: '' | |
days-before-issue-stale: 365 | |
days-before-issue-close: 30 | |
# [type::support] issues have a more aggressive stale/close timeline | |
- only-issue-labels: type::support | |
days-before-issue-stale: 90 | |
days-before-issue-close: 21 | |
steps: | |
- uses: conda/actions/[email protected] | |
id: read_yaml | |
with: | |
path: https://raw.githubusercontent.com/conda/infra/main/.github/messages.yml | |
- uses: actions/stale@v8 | |
id: stale | |
with: | |
# Only issues with these labels are checked whether they are stale | |
only-issue-labels: ${{ matrix.only-issue-labels }} | |
# Idle number of days before marking issues stale | |
days-before-issue-stale: ${{ matrix.days-before-issue-stale }} | |
# Idle number of days before closing stale issues/PRs | |
days-before-issue-close: ${{ matrix.days-before-issue-close }} | |
# Idle number of days before marking PRs stale | |
days-before-pr-stale: 365 | |
# Idle number of days before closing stale PRs | |
days-before-pr-close: 30 | |
# Comment on the staled issues | |
stale-issue-message: ${{ fromJSON(steps.read_yaml.outputs.value)['stale-issue'] }} | |
# Label to apply on staled issues | |
stale-issue-label: stale | |
# Label to apply on closed issues | |
close-issue-label: stale::closed | |
# Reason to use when closing issues | |
close-issue-reason: not_planned | |
# Comment on the staled PRs | |
stale-pr-message: ${{ fromJSON(steps.read_yaml.outputs.value)['stale-pr'] }} | |
# Label to apply on staled PRs | |
stale-pr-label: stale | |
# Label to apply on closed PRs | |
close-pr-label: stale::closed | |
# Remove stale label from issues/PRs on updates/comments | |
remove-stale-when-updated: true | |
# Add specified labels to issues/PRs when they become unstale | |
labels-to-add-when-unstale: stale::recovered | |
# Remove specified labels to issues/PRs when they become unstale | |
labels-to-remove-when-unstale: stale,stale::closed | |
# Max number of operations per run | |
operations-per-run: ${{ secrets.STALE_OPERATIONS_PER_RUN || 100 }} | |
# Dry-run | |
debug-only: ${{ github.event.inputs.dryrun || false }} | |
# Order to get issues/PRs | |
ascending: true | |
# Delete branch after closing a stale PR | |
delete-branch: false | |
# Issues with these labels will never be considered stale | |
exempt-issue-labels: stale::recovered,epic | |
# Issues with these labels will never be considered stale | |
exempt-pr-labels: stale::recovered,epic | |
# Exempt all issues/PRs with milestones from stale | |
exempt-all-milestones: true | |
# Assignees on issues/PRs exempted from stale | |
exempt-assignees: mingwandroid | |
- name: Print outputs | |
run: echo ${{ join(steps.stale.outputs.*, ',') }} |