# Stale config for https://github.com/marketplace/stale
# Issues with these labels will never be considered stale
exemptLabels:
  - security
  - blocked

# Label to use when marking a pull request as stale
staleLabel: stale

pulls:
  # Number of days of inactivity before a pull request becomes stale
  daysUntilStale: 60

  # Number of days of inactivity before a stale pull request is closed
  daysUntilClose: 30

  # Comment to post when marking a pull request as stale. Set to `false` to disable
  markComment: >
    This pull request has been automatically marked as stale because it has not had
    recent activity. It will be closed if no further activity occurs.

  # Comment to post when closing a stale pull request. Set to `false` to disable
  closeComment: >
    This stale pull request has been automatically closed.
    Thank you for your contributions.

issues:
  # Number of days of inactivity before a issue becomes stale
  daysUntilStale: 180

  # Number of days of inactivity before a stale issue is closed
  daysUntilClose: 7

  # Comment to post when marking a issue as stale. Set to `false` to disable
  markComment: >
    This issue has been automatically marked as stale because it has not had
    recent activity. It will be closed if no further activity occurs.

  # Comment to post when closing a stale issue. Set to `false` to disable
  closeComment: >
    This stale issue has been automatically closed.
    Thank you for your contributions.
