diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index e67f28a91..4c16ad521 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,16 +1,15 @@ -name: "Stale issue handler" +name: 'Stale issue handler' on: workflow_dispatch: schedule: - - cron: "0 0 * * *" + - cron: '0 0 * * *' 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' - days-before-stale: 30 - days-before-close: 5 + - 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 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7e11219ed..699ef3c7d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: "Build" +name: 'Build' on: # rebuild any PRs and main branch changes pull_request: push: @@ -10,17 +10,16 @@ jobs: build: # make sure build/ci work properly runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - run: | - npm install - npm run all + - uses: actions/checkout@v2 + - run: | + npm install + npm run all test: # make sure the action works on a clean machine without building runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: ./ - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: 'This issue is stale' - stale-pr-message: 'This PR is stale' - debug-only: true + - uses: actions/checkout@v2 + - uses: ./ + with: + stale-issue-message: 'This issue is stale' + stale-pr-message: 'This PR is stale' + debug-only: true diff --git a/README.md b/README.md index 7cb4c831c..d9d45bd76 100644 --- a/README.md +++ b/README.md @@ -4,108 +4,111 @@ Warns and then closes issues and PRs that have had no activity for a specified a ### Building and testing -Install the dependencies +Install the dependencies + ```bash $ npm install ``` Build the typescript and package it for distribution + ```bash $ npm run build && npm run pack ``` -Run the tests :heavy_check_mark: +Run the tests :heavy_check_mark: + ```bash $ npm test ``` -### Arguments -| Input | Description | Usage | -| :---: | :---: | :---: | -| `repo-token` | PAT(Personal Access Token) for authorizing repository. | *Required* | -| `days-before-stale` | Idle number of days before marking an issue/pr as stale. *Defaults to **60*** | Optional -| `days-before-close` | Idle number of days before closing an stale issue/pr. *Defaults to **7*** | 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 +### 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-close` | Idle number of days before closing an stale issue/pr. \*Defaults to **7\*** | 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](./action.yml) For comprehensive list of options. - + Basic: + ```yaml -name: "Close stale issues" +name: 'Close stale issues' on: schedule: - - cron: "30 1 * * *" + - cron: '30 1 * * *' jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - 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' + - 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: + ```yaml -name: "Close stale issues" +name: 'Close stale issues' on: schedule: - - cron: "30 1 * * *" + - 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' - days-before-stale: 30 - days-before-close: 5 + - 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 labels: + ```yaml -name: "Close stale issues" +name: 'Close stale issues' on: schedule: - - cron: "30 1 * * *" + - cron: '30 1 * * *' jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - 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' + - 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 diff --git a/action.yml b/action.yml index 9b6cf4371..11d1817e3 100644 --- a/action.yml +++ b/action.yml @@ -4,7 +4,7 @@ author: 'GitHub' inputs: repo-token: description: 'Token for the repository. Can be passed in using `{{ secrets.GITHUB_TOKEN }}`.' - required: true + default: ${{ github.token }} stale-issue-message: description: 'The message to post on the issue when tagging it. If none provided, will not mark issues stale.' stale-pr-message: diff --git a/dist/index.js b/dist/index.js index 3377db896..e8868aa11 100644 --- a/dist/index.js +++ b/dist/index.js @@ -481,7 +481,7 @@ function run() { } function getAndValidateArgs() { const args = { - repoToken: core.getInput('repo-token', { required: true }), + repoToken: core.getInput('repo-token'), staleIssueMessage: core.getInput('stale-issue-message'), stalePrMessage: core.getInput('stale-pr-message'), closeIssueMessage: core.getInput('close-issue-message'), diff --git a/src/main.ts b/src/main.ts index b1e0dc3a7..9f20343f5 100644 --- a/src/main.ts +++ b/src/main.ts @@ -15,7 +15,7 @@ async function run(): Promise { function getAndValidateArgs(): IssueProcessorOptions { const args = { - repoToken: core.getInput('repo-token', {required: true}), + repoToken: core.getInput('repo-token'), staleIssueMessage: core.getInput('stale-issue-message'), stalePrMessage: core.getInput('stale-pr-message'), closeIssueMessage: core.getInput('close-issue-message'),