# This file is synced from the `.github` repository, do not modify it directly.
name: Triage issues

on:
  push:
    paths:
      - .github/workflows/triage-issues.yml
    branches-ignore:
      - dependabot/**
  schedule:
    # Once every day at midnight UTC
    - cron: "0 0 * * *"
  issue_comment:

permissions:
  issues: write
  pull-requests: write

concurrency:
  group: triage-issues
  cancel-in-progress: ${{ github.event_name != 'issue_comment' }}

jobs:
  stale:
    if: >
      startsWith(github.repository, 'Homebrew/') && (
        github.event_name != 'issue_comment' || (
          contains(github.event.issue.labels.*.name, 'stale') ||
          contains(github.event.pull_request.labels.*.name, 'stale')
        )
      )
    runs-on: ubuntu-latest
    steps:
      - name: Mark/Close Stale Issues and Pull Requests
        uses: actions/stale@v4
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          days-before-stale: 21
          days-before-close: 7
          stale-issue-message: >
            This issue has been automatically marked as stale because it has not had
            recent activity. It will be closed if no further activity occurs.
          stale-pr-message: >
            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.
          exempt-issue-labels: "gsoc-outreachy,help wanted,in progress"
          exempt-pr-labels: "gsoc-outreachy,help wanted,in progress"

  bump-pr-stale:
    if: >
      startsWith(github.repository, 'Homebrew/') && (
        github.event_name != 'issue_comment' || (
          contains(github.event.issue.labels.*.name, 'stale') ||
          contains(github.event.pull_request.labels.*.name, 'stale')
        )
      )
    runs-on: ubuntu-latest
    steps:
      - name: Mark/Close Stale `bump-formula-pr` and `bump-cask-pr` Pull Requests
        uses: actions/stale@v4
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          days-before-stale: 2
          days-before-close: 1
          stale-pr-message: >
            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. To keep this
            pull request open, add a `help wanted` or `in progress` label.
          exempt-pr-labels: "help wanted,in progress"
          any-of-labels: "bump-formula-pr,bump-cask-pr"

  lock-threads:
    if: startsWith(github.repository, 'Homebrew/') && github.event_name != 'issue_comment'
    runs-on: ubuntu-latest
    steps:
      - name: Lock Outdated Threads
        uses: dessant/lock-threads@e460dfeb36e731f3aeb214be6b0c9a9d9a67eda6
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          issue-inactive-days: 30
          add-issue-labels: outdated
          pr-inactive-days: 30
          add-pr-labels: outdated
