7f340a46f3
* refactor(issue): create a dedicated function to remove the stale label * refactor: prefix private methods with _ to make it consistent with others methods * feat(label): remove the stale label when labeled with an exempt one closes #136 * chore: fix logger issues due to rebase @hross I think there is a room for improvement regarding the class creation of the issue logger (code duplication) but I do not see how to do it without changing a lot of stuff; do you have an idea? * test: use strict equal and move the new test in a more logical position * docs(readme): fix parsing error of the default values in the table prettier was not liking the previous syntax |
||
---|---|---|
.github | ||
.licenses/npm | ||
.vscode | ||
__tests__ | ||
dist | ||
docs | ||
src | ||
.eslintignore | ||
.eslintrc.json | ||
.gitattributes | ||
.gitignore | ||
.licensed.yml | ||
.prettierignore | ||
.prettierrc.json | ||
LICENSE | ||
README.md | ||
action.yml | ||
jest.config.js | ||
package-lock.json | ||
package.json | ||
tsconfig.json |
README.md
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. | 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 |
only-labels |
Only labels checked for stale issue/pr. | Optional |
operations-per-run |
Maximum number of operations per run. 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 |
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'
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.