diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index a6f78c1dc..0ba299913 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,19 +1,20 @@ -name: 'Stale issue handler' -on: - workflow_dispatch: - schedule: - - cron: '0 0 * * *' - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@main - id: stale - 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 - exempt-issue-labels: 'blocked,must,should,keep' - - name: Print outputs - run: echo ${{ join(steps.stale.outputs.*, ',') }} +name: 'Stale issue handler' +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@main + id: stale + 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-issue-close: 5 + days-before-pr-close: 5 + exempt-issue-labels: 'blocked,must,should,keep' + - name: Print outputs + run: echo ${{ join(steps.stale.outputs.*, ',') }} diff --git a/README.md b/README.md index bc5191860..67550cf02 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,8 @@ Every argument is optional. | [days-before-stale](#days-before-stale) | Idle number of days before marking issues/PRs stale | `60` | | [days-before-issue-stale](#days-before-issue-stale) | Override [days-before-stale](#days-before-stale) for issues only | | | [days-before-pr-stale](#days-before-pr-stale) | Override [days-before-stale](#days-before-stale) for PRs only | | -| [days-before-close](#days-before-close) | Idle number of days before closing stale issues/PRs | `7` | -| [days-before-issue-close](#days-before-issue-close) | Override [days-before-close](#days-before-close) for issues only | | -| [days-before-pr-close](#days-before-pr-close) | Override [days-before-close](#days-before-close) for PRs only | | +| [days-before-issue-close](#days-before-issue-close) | Idle number of days before closing stale issues | `7` | +| [days-before-pr-close](#days-before-pr-close) | Idle number of days before closing stale PRs | `7` | | [stale-issue-message](#stale-issue-message) | Comment on the staled issues | | | [stale-pr-message](#stale-pr-message) | Comment on the staled PRs | | | [close-issue-message](#close-issue-message) | Comment on the staled issues while closed | | @@ -144,32 +143,29 @@ Useful to override [days-before-stale](#days-before-stale) but only for the idle Default value: unset -#### days-before-close +#### days-before-issue-close -The idle number of days before closing the stale issues or the stale pull requests (due to the stale label). -The issues or the pull requests will be closed if the last update (based on [GitHub issue](https://docs.github.com/en/rest/reference/issues) field `updated_at`) is older than the idle number of days. +The idle number of days before closing the stale issues (due to the stale label). +The issues will be closed if the last update (based on [GitHub issue](https://docs.github.com/en/rest/reference/issues) field `updated_at`) is older than the idle number of days. Since adding the stale label will alter the last update date, we can calculate the number of days from this date. -If set to a negative number like `-1`, the issues or the pull requests will never be closed automatically. - -The label used to stale is defined by these two options: +If set to a negative number like `-1`, the issues will never be closed automatically. -- [stale-issue-label](#stale-issue-label) -- [stale-pr-label](#stale-pr-label) +The label used to stale is defined by this option: [stale-issue-label](#stale-issue-label) Default value: `7` -#### days-before-issue-close - -Override [days-before-close](#days-before-close) but only for the idle number of days before closing the stale issues. +#### days-before-pr-close -Default value: unset +The idle number of days before closing the stale pull requests (due to the stale label). +The pull requests will be closed if the last update (based on [GitHub issue](https://docs.github.com/en/rest/reference/issues) field `updated_at`) is older than the idle number of days. +Since adding the stale label will alter the last update date, we can calculate the number of days from this date. -#### days-before-pr-close +If set to a negative number like `-1`, the pull requests will never be closed automatically. -Override [days-before-close](#days-before-close) but only for the idle number of days before closing the stale pull requests. +The label used to stale is defined by this option: [stale-pr-label](#stale-pr-label) -Default value: unset +Default value: `7` #### stale-issue-message @@ -527,7 +523,8 @@ jobs: 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 + days-before-issue-close: 5 + days-before-pr-close: 5 ``` Configure different stale timeouts but never close a PR: @@ -548,7 +545,7 @@ jobs: 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-issue-close: 5 days-before-pr-close: -1 ``` diff --git a/__tests__/constants/default-processor-options.ts b/__tests__/constants/default-processor-options.ts index e202a4512..b09a1c194 100644 --- a/__tests__/constants/default-processor-options.ts +++ b/__tests__/constants/default-processor-options.ts @@ -9,9 +9,8 @@ export const DefaultProcessorOptions: IIssuesProcessorOptions = Object.freeze({ daysBeforeStale: 1, daysBeforeIssueStale: NaN, daysBeforePrStale: NaN, - daysBeforeClose: 30, - daysBeforeIssueClose: NaN, - daysBeforePrClose: NaN, + daysBeforeIssueClose: 30, + daysBeforePrClose: 30, staleIssueLabel: 'Stale', closeIssueLabel: '', exemptIssueLabels: '', diff --git a/__tests__/main.spec.ts b/__tests__/main.spec.ts index 4153432e6..cd7f7a5f7 100644 --- a/__tests__/main.spec.ts +++ b/__tests__/main.spec.ts @@ -9,7 +9,7 @@ import {generateIssue} from './functions/generate-issue'; test('processing an issue with no label will make it stale and close it, if it is old enough only if days-before-close is set to 0', async () => { const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 0 + daysBeforeIssueClose: 0 }; const TestIssueList: Issue[] = [ generateIssue(opts, 1, 'An issue with no label', '2020-01-01T17:00:00Z') @@ -33,7 +33,7 @@ test('processing an issue with no label and a start date as ECMAScript epoch in const january2000 = 946681200000; const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 0, + daysBeforeIssueClose: 0, startDate: january2000.toString() }; const TestIssueList: Issue[] = [ @@ -64,7 +64,7 @@ test('processing an issue with no label and a start date as ECMAScript epoch in const january2021 = 1609455600000; const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 0, + daysBeforeIssueClose: 0, startDate: january2021.toString() }; const TestIssueList: Issue[] = [ @@ -95,7 +95,7 @@ test('processing an issue with no label and a start date as ECMAScript epoch in const january2000 = 946681200000000; const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 0, + daysBeforeIssueClose: 0, startDate: january2000.toString() }; const TestIssueList: Issue[] = [ @@ -126,7 +126,7 @@ test('processing an issue with no label and a start date as ECMAScript epoch in const january2021 = 1609455600000; const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 0, + daysBeforeIssueClose: 0, startDate: january2021.toString() }; const TestIssueList: Issue[] = [ @@ -157,7 +157,7 @@ test('processing an issue with no label and a start date as ISO 8601 being befor const january2000 = '2000-01-01T00:00:00Z'; const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 0, + daysBeforeIssueClose: 0, startDate: january2000.toString() }; const TestIssueList: Issue[] = [ @@ -188,7 +188,7 @@ test('processing an issue with no label and a start date as ISO 8601 being after const january2021 = '2021-01-01T00:00:00Z'; const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 0, + daysBeforeIssueClose: 0, startDate: january2021.toString() }; const TestIssueList: Issue[] = [ @@ -219,7 +219,7 @@ test('processing an issue with no label and a start date as RFC 2822 being befor const january2000 = 'January 1, 2000 00:00:00'; const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 0, + daysBeforeIssueClose: 0, startDate: january2000.toString() }; const TestIssueList: Issue[] = [ @@ -250,7 +250,7 @@ test('processing an issue with no label and a start date as RFC 2822 being after const january2021 = 'January 1, 2021 00:00:00'; const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 0, + daysBeforeIssueClose: 0, startDate: january2021.toString() }; const TestIssueList: Issue[] = [ @@ -279,7 +279,6 @@ test('processing an issue with no label and a start date as RFC 2822 being after test('processing an issue with no label will make it stale and close it, if it is old enough only if days-before-close is set to > 0 and days-before-issue-close is set to 0', async () => { const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 1, daysBeforeIssueClose: 0 }; const TestIssueList: Issue[] = [ @@ -300,33 +299,10 @@ test('processing an issue with no label will make it stale and close it, if it i expect(processor.deletedBranchIssues).toHaveLength(0); }); -test('processing an issue with no label will make it stale and not close it, if it is old enough only if days-before-close is set to > 0 and days-before-issue-close is set to > 0', async () => { - const opts: IIssuesProcessorOptions = { - ...DefaultProcessorOptions, - daysBeforeClose: 1, - daysBeforeIssueClose: 1 - }; - const TestIssueList: Issue[] = [ - generateIssue(opts, 1, 'An issue with no label', '2020-01-01T17:00:00Z') - ]; - const processor = new IssuesProcessorMock( - opts, - async p => (p === 1 ? TestIssueList : []), - async () => [], - async () => new Date().toDateString() - ); - - // process our fake issue list - await processor.processIssues(1); - - expect(processor.staleIssues).toHaveLength(1); - expect(processor.closedIssues).toHaveLength(0); -}); - test('processing an issue with no label will make it stale and not close it if days-before-close is set to > 0', async () => { const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 15 + daysBeforeIssueClose: 15 }; const TestIssueList: Issue[] = [ generateIssue(opts, 1, 'An issue with no label', '2020-01-01T17:00:00Z') @@ -348,7 +324,6 @@ test('processing an issue with no label will make it stale and not close it if d test('processing an issue with no label will make it stale and not close it if days-before-close is set to -1 and days-before-issue-close is set to > 0', async () => { const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: -1, daysBeforeIssueClose: 15 }; const TestIssueList: Issue[] = [ @@ -445,7 +420,7 @@ test('processing an issue with no label will make it stale but not close it', as test('processing a stale issue will close it', async () => { const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 30 + daysBeforeIssueClose: 30 }; const TestIssueList: Issue[] = [ generateIssue( @@ -535,7 +510,7 @@ test('processing a stale issue containing a slash in the label will close it', a test('processing a stale issue will close it when days-before-issue-stale override days-before-stale', async () => { const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 30, + daysBeforeIssueClose: 30, daysBeforeIssueStale: 30 }; const TestIssueList: Issue[] = [ @@ -566,7 +541,7 @@ test('processing a stale issue will close it when days-before-issue-stale overri test('processing a stale PR will close it', async () => { const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 30 + daysBeforePrClose: 30 }; const TestIssueList: Issue[] = [ generateIssue( @@ -596,7 +571,6 @@ test('processing a stale PR will close it', async () => { test('processing a stale PR will close it when days-before-pr-stale override days-before-stale', async () => { const opts: IIssuesProcessorOptions = { ...DefaultProcessorOptions, - daysBeforeClose: 30, daysBeforePrClose: 30 }; const TestIssueList: Issue[] = [ @@ -1134,7 +1108,8 @@ test('exempt issue labels will not be marked stale and will remove the existing test('stale issues should not be closed if days is set to -1', async () => { const opts = {...DefaultProcessorOptions}; - opts.daysBeforeClose = -1; + opts.daysBeforeIssueClose = -1; + opts.daysBeforePrClose = -1; const TestIssueList: Issue[] = [ generateIssue( opts, @@ -1330,7 +1305,7 @@ test('stale label containing a space should be removed if a comment was added to test('stale issues should not be closed until after the closed number of days', async () => { const opts = {...DefaultProcessorOptions}; opts.daysBeforeStale = 5; // stale after 5 days - opts.daysBeforeClose = 1; // closes after 6 days + opts.daysBeforeIssueClose = 1; // closes after 6 days const lastUpdate = new Date(); lastUpdate.setDate(lastUpdate.getDate() - 5); const TestIssueList: Issue[] = [ @@ -1361,7 +1336,7 @@ test('stale issues should not be closed until after the closed number of days', test('stale issues should be closed if the closed nubmer of days (additive) is also passed', async () => { const opts = {...DefaultProcessorOptions}; opts.daysBeforeStale = 5; // stale after 5 days - opts.daysBeforeClose = 1; // closes after 6 days + opts.daysBeforeIssueClose = 1; // closes after 6 days const lastUpdate = new Date(); lastUpdate.setDate(lastUpdate.getDate() - 7); const TestIssueList: Issue[] = [ @@ -1393,7 +1368,7 @@ test('stale issues should be closed if the closed nubmer of days (additive) is a test('stale issues should not be closed until after the closed number of days (long)', async () => { const opts = {...DefaultProcessorOptions}; opts.daysBeforeStale = 5; // stale after 5 days - opts.daysBeforeClose = 20; // closes after 25 days + opts.daysBeforeIssueClose = 20; // closes after 25 days const lastUpdate = new Date(); lastUpdate.setDate(lastUpdate.getDate() - 10); const TestIssueList: Issue[] = [ @@ -1424,7 +1399,7 @@ test('stale issues should not be closed until after the closed number of days (l test('skips stale message on issues when stale-issue-message is empty', async () => { const opts = {...DefaultProcessorOptions}; opts.daysBeforeStale = 5; // stale after 5 days - opts.daysBeforeClose = 20; // closes after 25 days + opts.daysBeforeIssueClose = 20; // closes after 25 days opts.staleIssueMessage = ''; const lastUpdate = new Date(); lastUpdate.setDate(lastUpdate.getDate() - 10); @@ -1468,7 +1443,7 @@ test('skips stale message on issues when stale-issue-message is empty', async () test('send stale message on issues when stale-issue-message is not empty', async () => { const opts = {...DefaultProcessorOptions}; opts.daysBeforeStale = 5; // stale after 5 days - opts.daysBeforeClose = 20; // closes after 25 days + opts.daysBeforeIssueClose = 20; // closes after 25 days opts.staleIssueMessage = 'dummy issue message'; const lastUpdate = new Date(); lastUpdate.setDate(lastUpdate.getDate() - 10); @@ -1512,7 +1487,7 @@ test('send stale message on issues when stale-issue-message is not empty', async test('skips stale message on prs when stale-pr-message is empty', async () => { const opts = {...DefaultProcessorOptions}; opts.daysBeforeStale = 5; // stale after 5 days - opts.daysBeforeClose = 20; // closes after 25 days + opts.daysBeforeIssueClose = 20; // closes after 25 days opts.stalePrMessage = ''; const lastUpdate = new Date(); lastUpdate.setDate(lastUpdate.getDate() - 10); @@ -1556,7 +1531,7 @@ test('skips stale message on prs when stale-pr-message is empty', async () => { test('send stale message on prs when stale-pr-message is not empty', async () => { const opts = {...DefaultProcessorOptions}; opts.daysBeforeStale = 5; // stale after 5 days - opts.daysBeforeClose = 20; // closes after 25 days + opts.daysBeforeIssueClose = 20; // closes after 25 days opts.stalePrMessage = 'dummy pr message'; const lastUpdate = new Date(); lastUpdate.setDate(lastUpdate.getDate() - 10); @@ -2106,7 +2081,7 @@ test('processing an issue stale since less than the daysBeforeStale with a stale ...DefaultProcessorOptions, staleIssueLabel: 'stale-label', daysBeforeStale: 30, - daysBeforeClose: 7, + daysBeforeIssueClose: 7, closeIssueMessage: 'close message', removeStaleWhenUpdated: false }; @@ -2147,7 +2122,7 @@ test('processing an issue stale since less than the daysBeforeStale without a st ...DefaultProcessorOptions, staleIssueLabel: 'stale-label', daysBeforeStale: 30, - daysBeforeClose: 7, + daysBeforeIssueClose: 7, closeIssueMessage: 'close message', removeStaleWhenUpdated: false }; diff --git a/action.yml b/action.yml index 36c2fcc6f..83df724ff 100644 --- a/action.yml +++ b/action.yml @@ -28,15 +28,13 @@ inputs: days-before-pr-stale: description: 'The number of days old a pull request can be before marking it stale. Set to -1 to never mark pull requests as stale automatically. Override "days-before-stale" option regarding only the pull requests.' required: false - days-before-close: - description: 'The number of days to wait to close an issue or a pull request after it being marked stale. Set to -1 to never close stale issues or pull requests.' - required: false - default: '7' days-before-issue-close: - description: 'The number of days to wait to close an issue after it being marked stale. Set to -1 to never close stale issues. Override "days-before-close" option regarding only the issues.' + description: 'The number of days to wait to close an issue after it being marked stale. Set to -1 to never close stale issues or pull requests.' + default: '7' required: false days-before-pr-close: - description: 'The number of days to wait to close a pull request after it being marked stale. Set to -1 to never close stale pull requests. Override "days-before-close" option regarding only the pull requests.' + description: 'The number of days to wait to close a pull request after it being marked stale. Set to -1 to never close stale issues or pull requests.' + default: '7' required: false stale-issue-label: description: 'The label to apply when an issue is stale.' diff --git a/dist/index.js b/dist/index.js index ab00b6de6..a0a7b5f49 100644 --- a/dist/index.js +++ b/dist/index.js @@ -669,8 +669,8 @@ class IssuesProcessor { const issueHasComments = yield this._hasCommentsSince(issue, markedStaleOn, staleMessage); issueLogger.info(`$$type has been commented on: ${logger_service_1.LoggerService.cyan(issueHasComments)}`); const daysBeforeClose = issue.isPullRequest - ? this._getDaysBeforePrClose() - : this._getDaysBeforeIssueClose(); + ? this.options.daysBeforePrClose + : this.options.daysBeforeIssueClose; issueLogger.info(`Days before $$type close: ${logger_service_1.LoggerService.cyan(daysBeforeClose)}`); const issueHasUpdate = IssuesProcessor._updatedSince(issue.updated_at, daysBeforeClose); issueLogger.info(`$$type has been updated: ${logger_service_1.LoggerService.cyan(issueHasUpdate)}`); @@ -900,16 +900,6 @@ class IssuesProcessor { ? this.options.daysBeforeStale : this.options.daysBeforePrStale; } - _getDaysBeforeIssueClose() { - return isNaN(this.options.daysBeforeIssueClose) - ? this.options.daysBeforeClose - : this.options.daysBeforeIssueClose; - } - _getDaysBeforePrClose() { - return isNaN(this.options.daysBeforePrClose) - ? this.options.daysBeforeClose - : this.options.daysBeforePrClose; - } _getOnlyLabels(issue) { if (issue.isPullRequest) { return this.options.onlyPrLabels; @@ -1748,7 +1738,6 @@ var Option; Option["DaysBeforeStale"] = "days-before-stale"; Option["DaysBeforeIssueStale"] = "days-before-issue-stale"; Option["DaysBeforePrStale"] = "days-before-pr-stale"; - Option["DaysBeforeClose"] = "days-before-close"; Option["DaysBeforeIssueClose"] = "days-before-issue-close"; Option["DaysBeforePrClose"] = "days-before-pr-close"; Option["StaleIssueLabel"] = "stale-issue-label"; @@ -2050,9 +2039,8 @@ function _getAndValidateArgs() { daysBeforeStale: parseInt(core.getInput('days-before-stale', { required: true })), daysBeforeIssueStale: parseInt(core.getInput('days-before-issue-stale')), daysBeforePrStale: parseInt(core.getInput('days-before-pr-stale')), - daysBeforeClose: parseInt(core.getInput('days-before-close', { required: true })), - daysBeforeIssueClose: parseInt(core.getInput('days-before-issue-close')), - daysBeforePrClose: parseInt(core.getInput('days-before-pr-close')), + daysBeforeIssueClose: parseInt(core.getInput('days-before-issue-close', { required: true })), + daysBeforePrClose: parseInt(core.getInput('days-before-pr-close', { required: true })), staleIssueLabel: core.getInput('stale-issue-label', { required: true }), closeIssueLabel: core.getInput('close-issue-label'), exemptIssueLabels: core.getInput('exempt-issue-labels'), @@ -2090,7 +2078,8 @@ function _getAndValidateArgs() { }; for (const numberInput of [ 'days-before-stale', - 'days-before-close', + 'days-before-issue-close', + 'days-before-pr-close', 'operations-per-run' ]) { if (isNaN(parseInt(core.getInput(numberInput)))) { diff --git a/src/classes/issue.spec.ts b/src/classes/issue.spec.ts index 84e1f8829..7aa0a6ed4 100644 --- a/src/classes/issue.spec.ts +++ b/src/classes/issue.spec.ts @@ -17,7 +17,6 @@ describe('Issue', (): void => { closeIssueMessage: '', closePrLabel: '', closePrMessage: '', - daysBeforeClose: 0, daysBeforeIssueClose: 0, daysBeforeIssueStale: 0, daysBeforePrClose: 0, diff --git a/src/classes/issues-processor.ts b/src/classes/issues-processor.ts index 1a4f3e0ff..d27965910 100644 --- a/src/classes/issues-processor.ts +++ b/src/classes/issues-processor.ts @@ -640,8 +640,8 @@ export class IssuesProcessor { ); const daysBeforeClose: number = issue.isPullRequest - ? this._getDaysBeforePrClose() - : this._getDaysBeforeIssueClose(); + ? this.options.daysBeforePrClose + : this.options.daysBeforeIssueClose; issueLogger.info( `Days before $$type close: ${LoggerService.cyan(daysBeforeClose)}` @@ -969,18 +969,6 @@ export class IssuesProcessor { : this.options.daysBeforePrStale; } - private _getDaysBeforeIssueClose(): number { - return isNaN(this.options.daysBeforeIssueClose) - ? this.options.daysBeforeClose - : this.options.daysBeforeIssueClose; - } - - private _getDaysBeforePrClose(): number { - return isNaN(this.options.daysBeforePrClose) - ? this.options.daysBeforeClose - : this.options.daysBeforePrClose; - } - private _getOnlyLabels(issue: Issue): string { if (issue.isPullRequest) { return this.options.onlyPrLabels; diff --git a/src/enums/option.ts b/src/enums/option.ts index 96f5d4f75..68d76fdff 100644 --- a/src/enums/option.ts +++ b/src/enums/option.ts @@ -7,7 +7,6 @@ export enum Option { DaysBeforeStale = 'days-before-stale', DaysBeforeIssueStale = 'days-before-issue-stale', DaysBeforePrStale = 'days-before-pr-stale', - DaysBeforeClose = 'days-before-close', DaysBeforeIssueClose = 'days-before-issue-close', DaysBeforePrClose = 'days-before-pr-close', StaleIssueLabel = 'stale-issue-label', diff --git a/src/interfaces/issues-processor-options.ts b/src/interfaces/issues-processor-options.ts index 2db3abb78..07087b4e9 100644 --- a/src/interfaces/issues-processor-options.ts +++ b/src/interfaces/issues-processor-options.ts @@ -9,9 +9,8 @@ export interface IIssuesProcessorOptions { daysBeforeStale: number; daysBeforeIssueStale: number; // Could be NaN daysBeforePrStale: number; // Could be NaN - daysBeforeClose: number; - daysBeforeIssueClose: number; // Could be NaN - daysBeforePrClose: number; // Could be NaN + daysBeforeIssueClose: number; + daysBeforePrClose: number; staleIssueLabel: string; closeIssueLabel: string; exemptIssueLabels: string; diff --git a/src/main.ts b/src/main.ts index c930af0b9..1dc766d6d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -33,11 +33,12 @@ function _getAndValidateArgs(): IIssuesProcessorOptions { ), daysBeforeIssueStale: parseInt(core.getInput('days-before-issue-stale')), daysBeforePrStale: parseInt(core.getInput('days-before-pr-stale')), - daysBeforeClose: parseInt( - core.getInput('days-before-close', {required: true}) + daysBeforeIssueClose: parseInt( + core.getInput('days-before-issue-close', {required: true}) + ), + daysBeforePrClose: parseInt( + core.getInput('days-before-pr-close', {required: true}) ), - daysBeforeIssueClose: parseInt(core.getInput('days-before-issue-close')), - daysBeforePrClose: parseInt(core.getInput('days-before-pr-close')), staleIssueLabel: core.getInput('stale-issue-label', {required: true}), closeIssueLabel: core.getInput('close-issue-label'), exemptIssueLabels: core.getInput('exempt-issue-labels'), @@ -87,7 +88,8 @@ function _getAndValidateArgs(): IIssuesProcessorOptions { for (const numberInput of [ 'days-before-stale', - 'days-before-close', + 'days-before-issue-close', + 'days-before-pr-close', 'operations-per-run' ]) { if (isNaN(parseInt(core.getInput(numberInput)))) {