Skip to content
/ stale Public
forked from actions/stale

Marks issues and pull requests that have not had recent interaction

License

Notifications You must be signed in to change notification settings

nijel/stale

 
 

Repository files navigation

Close Stale Issues and PRs

Warns and then closes issues and PRs that have had no activity for a specified amount of time.

Building and testing

Install the dependencies

$ npm install

Build the typescript and package it for distribution

$ npm run build && npm run pack

Run the tests ✔️

$ npm test

Arguments

Input Description Usage
repo-token PAT(Personal Access Token) for authorizing repository. Defaults to ${{ github.token }} Optional
days-before-stale Idle number of days before marking an issue/pr as stale. Defaults to 60 Optional
days-before-issue-stale Idle number of days before marking an issue as stale (override days-before-stale). Optional
days-before-pr-stale Idle number of days before marking an pr as stale (override days-before-stale). Optional
days-before-close Idle number of days before closing an stale issue/pr. Defaults to 7 Optional
days-before-issue-close Idle number of days before closing an stale issue (override days-before-close). Optional
days-before-pr-close Idle number of days before closing an stale pr (override days-before-close). Optional
stale-issue-message Message to post on the stale issue. Optional
stale-pr-message Message to post on the stale pr. Optional
close-issue-message Message to post on the stale issue while closing it. Optional
close-pr-message Message to post on the stale pr while closing it. Optional
stale-issue-label Label to apply on the stale issue. Defaults to stale Optional
close-issue-label Label to apply on closing issue. Optional
stale-pr-label Label to apply on the stale pr. Optional
close-pr-label Label to apply on the closing pr. Optional
exempt-issue-labels Labels on an issue exempted from being marked as stale. Optional
exempt-pr-labels Labels on the pr exempted from being marked as stale. Optional
exempt-milestones Milestones on an issue or a pr exempted from being marked as stale. Optional
exempt-issue-milestones Milestones on an issue exempted from being marked as stale (override exempt-milestones). Optional
exempt-pr-milestones Milestones on the pr exempted from being marked as stale (override exempt-milestones). Optional
only-labels Only labels checked for stale issue/pr. Optional
operations-per-run Maximum number of operations per run (GitHub API CRUD related). Defaults to 30 Optional
remove-stale-when-updated Remove stale label from issue/pr on updates or comments. Defaults to true Optional
debug-only Dry-run on action. Defaults to false Optional
ascending Order to get issues/pr. Defaults to false Optional
skip-stale-issue-message Skip adding stale message on stale issue. Defaults to false Optional
skip-stale-pr-message Skip adding stale message on stale pr. Defaults to false Optional
start-date The date used to skip the stale action on issue/pr created before it (ISO 8601 or RFC 2822). Optional

Usage

See action.yml For comprehensive list of options.

Basic:

name: 'Close stale issues and PRs'
on:
  schedule:
    - cron: '30 1 * * *'

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v3
        with:
          stale-issue-message: 'Message to comment on stale issues. If none provided, will not mark issues stale'
          stale-pr-message: 'Message to comment on stale PRs. If none provided, will not mark PRs stale'

Configure stale timeouts:

name: 'Close stale issues and PRs'
on:
  schedule:
    - cron: '30 1 * * *'

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v3
        with:
          stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
          days-before-stale: 30
          days-before-close: 5

Configure different stale timeouts but never close a pr:

name: 'Close stale issues and PR'
on:
  schedule:
    - cron: '30 1 * * *'

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v3
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
          stale-pr-message: 'This pr is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days.'
          close-issue-message: 'This issue was closed because it has been stalled for 5 days with no activity.'
          days-before-stale: 30
          days-before-close: 5
          days-before-pr-close: -1

Configure different stale timeouts:

name: 'Close stale issues and PRs'
on:
  schedule:
    - cron: '30 1 * * *'

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v3
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
          stale-pr-message: 'This pr is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days.'
          close-issue-message: 'This issue was closed because it has been stalled for 5 days with no activity.'
          close-pr-message: 'This pr was closed because it has been stalled for 10 days with no activity.'
          days-before-issue-stale: 30
          days-before-pr-stale: 45
          days-before-issue-close: 5
          days-before-pr-close: 10

Configure labels:

name: 'Close stale issues and PRs'
on:
  schedule:
    - cron: '30 1 * * *'

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v3
        with:
          stale-issue-message: 'Stale issue message'
          stale-pr-message: 'Stale pull request message'
          stale-issue-label: 'no-issue-activity'
          exempt-issue-labels: 'awaiting-approval,work-in-progress'
          stale-pr-label: 'no-pr-activity'
          exempt-pr-labels: 'awaiting-approval,work-in-progress'
          only-labels: 'awaiting-feedback,awaiting-answers'

Configure the stale action to only stale issue/pr created after the 18th april 2020:

name: 'Close stale issues and PRs'
on:
  schedule:
    - cron: '30 1 * * *'

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v3
        with:
          start-date: '2020-18-04T00:00:00Z' // ISO 8601 or RFC 2822

Avoid stale for specific milestones:

name: 'Close stale issues and PRs'
on:
  schedule:
    - cron: '30 1 * * *'

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v3
        with:
          exempt-issue-milestones: 'future,alpha,beta'
          exempt-pr-milestones: 'bugfix,improvement'

Debugging

To see debug output from this action, you must set the secret ACTIONS_STEP_DEBUG to true in your repository. You can run this action in debug only mode (no actions will be taken on your issues) by passing debug-only true as an argument to the action.

About

Marks issues and pull requests that have not had recent interaction

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.8%
  • JavaScript 0.2%