2019-08-06 16:25:08 -04:00
# Close Stale Issues and PRs
2019-08-03 21:34:59 -04:00
2019-08-06 16:25:08 -04:00
Warns and then closes issues and PRs that have had no activity for a specified amount of time.
2020-04-16 14:23:28 -04:00
### Building and testing
2021-01-15 21:07:08 +09:00
Install the dependencies
2020-04-16 14:23:28 -04:00
``` bash
$ npm install
```
Build the typescript and package it for distribution
2021-01-15 21:07:08 +09:00
2020-04-16 14:23:28 -04:00
``` bash
$ npm run build && npm run pack
```
2021-01-15 21:07:08 +09:00
Run the tests :heavy_check_mark:
2020-04-16 14:23:28 -04:00
``` bash
$ npm test
```
2020-10-12 20:18:16 +05:30
2021-01-15 21:07:08 +09:00
### Arguments
2020-10-12 20:18:16 +05:30
2021-01-18 02:22:36 +01:00
| 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 |
| `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 |
2020-04-16 14:23:28 -04:00
2019-08-06 16:25:08 -04:00
### Usage
See [action.yml ](./action.yml ) For comprehensive list of options.
2021-01-15 21:07:08 +09:00
2019-08-06 16:25:08 -04:00
Basic:
2021-01-15 21:07:08 +09:00
2019-11-27 16:04:40 +01:00
``` yaml
2021-01-16 14:28:29 +01:00
name : 'Close stale issues and PRs'
2019-08-06 16:25:08 -04:00
on :
schedule :
2021-01-15 21:07:08 +09:00
- cron : '30 1 * * *'
2019-08-06 16:25:08 -04:00
jobs :
stale :
runs-on : ubuntu-latest
steps :
2021-01-15 21:07:08 +09:00
- 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'
2019-08-06 16:25:08 -04:00
```
2021-01-15 21:07:08 +09:00
2019-08-06 16:25:08 -04:00
Configure stale timeouts:
2021-01-15 21:07:08 +09:00
2019-11-27 16:04:40 +01:00
``` yaml
2021-01-16 14:28:29 +01:00
name : 'Close stale issues and PRs'
2019-08-06 16:25:08 -04:00
on :
schedule :
2021-01-15 21:07:08 +09:00
- cron : '30 1 * * *'
2019-08-06 16:25:08 -04:00
jobs :
stale :
runs-on : ubuntu-latest
steps :
2021-01-15 21:07:08 +09:00
- uses : actions/stale@v3
with :
2021-01-16 14:28:29 +01:00
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.'
2021-01-15 21:07:08 +09:00
days-before-stale : 30
days-before-close : 5
2019-08-06 16:25:08 -04:00
```
2021-01-15 21:07:08 +09:00
2021-01-16 14:28:29 +01:00
Configure different stale timeouts but never close a pr:
``` yaml
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:
``` yaml
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
```
2019-08-06 16:25:08 -04:00
Configure labels:
2021-01-15 21:07:08 +09:00
2019-11-27 16:04:40 +01:00
``` yaml
2021-01-16 14:28:29 +01:00
name : 'Close stale issues and PRs'
2019-08-03 21:34:59 -04:00
on :
schedule :
2021-01-15 21:07:08 +09:00
- cron : '30 1 * * *'
2019-08-03 21:34:59 -04:00
jobs :
2019-08-06 16:25:08 -04:00
stale :
2019-08-03 21:34:59 -04:00
runs-on : ubuntu-latest
steps :
2021-01-15 21:07:08 +09:00
- 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'
2019-08-03 21:34:59 -04:00
```
2020-04-16 13:57:59 -04:00
2021-01-18 02:22:36 +01:00
Configure the stale action to only stale issue/pr created after the 18th april 2020:
``` yaml
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
```
2020-04-16 13:57:59 -04:00
### Debugging
2020-05-11 10:54:55 -04:00
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.