Commit Graph

58 Commits

Author SHA1 Message Date
Geoffrey Testelin 419a53bc05
feat(statistics): display some stats in the logs (#337)
* test: add more coverage

* docs: reorder and enhance typo

* docs(contributing): add more information about the npm scripts

* feat(statistics): add simple statistics

* feat(statistics): add more stats

* refactor(issues-processor): remove some options from the constructor

it should have been only useful for the tests

* feat(statistics): add stats for new stale or undo stale issues

* chore(rebase): handle rebase conflicts
2021-03-01 15:34:35 -05:00
Jose Veiga 63ae8ac024
Feat: add any-of-labels option (#319)
* feat: add any-of-labels option

* chore: run pack script

* fix: error in milestones spec

* chore: update readme

* chore: fix default value in action.yml

* chore: add some unit tests

* docs: update README.md

Co-authored-by: Geoffrey Testelin <geoffrey.testelin@gmail.com>

* refactor: add return type to lambda

Co-authored-by: Geoffrey Testelin <geoffrey.testelin@gmail.com>
2021-03-01 11:05:53 -05:00
Geoffrey Testelin 0e95ddbecb
feat(only-labels): add 2 new options to distinguish issue and PR configs (#336)
* feat(assignees): add new option to avoid stale for assignees

closes #271

* test: add more coverage

* docs: fix readme format issue

* docs: reorder and enhance typo

* docs(contributing): add more information about the npm scripts

* feat(only-labels): add new options to customize it for issues and PR

closes #308
2021-02-28 19:08:33 -05:00
Geoffrey Testelin 836169b81a
feat(close-label): automatically remove close-label when no longer closed nor locked (#334)
* feat(assignees): add new option to avoid stale for assignees

closes #271

* test: add more coverage

* docs: fix readme format issue

* docs: reorder and enhance typo

* docs(contributing): add more information about the npm scripts

* docs(readme): update the default values to reflect the real applied ones

* feat(close-label): automatically remove it when no longer closed nor locked

closes #278
2021-02-28 19:07:54 -05:00
Geoffrey Testelin ec96ff65b0
feat(assignees): add 6 new options to avoid stale for assignees (#327)
* feat(assignees): add new option to avoid stale for assignees

closes #271

* test: add more coverage

* docs: fix readme format issue

* docs: reorder and enhance typo

* docs(contributing): add more information about the npm scripts
2021-02-28 06:15:08 -05:00
Geoffrey Testelin 6a493760cf
feat(milestones): add new options to exempt all milestones (#291)
* refactor: move and rename the interfaces/classes

closes #272

* docs: update the readme and action to describe the new options for milestones

* refactor: split the tests into multiple files

* feat(milestones): add new options to exempt all milestones

* test: add coverage for the default values

* test(milestones): add more coverage (wip)

* test(milestones): add more coverage for the multiple exempt milestones

* test: reduce duplicated code

* test: change some describes

* test: add more coverage

* test: add more coverage

* test: add final coverage

* build(tsc): add missing project flag to build with the right tsconfig

* test(milestones): use each to reduce the complexity of the tests

* chore: fix an eslint issue with prettier on windows

the end of line was wrong each time the os process the files

* docs: move the contribution section to a dedicated file

add more content to help the debug

* chore: make sure the rebase is ok
2021-02-16 06:18:48 -05:00
Geoffrey Testelin e96f31f877
refactor: move and rename the interfaces/classes (#290)
closes #272
2021-02-13 06:09:37 -05:00
Michal Čihař d21d307fd8
Log why issue is not marked as stale (#301)
This might help to understand some situations as described in https://github.com/actions/stale/issues/299.
2021-02-05 06:53:23 -05:00
Michal Čihař 7164109781
Fixed should be stale condition (#304)
* Fixed should be stale condition

When different stale period is used for issues and pull requests, this code uses wrong one.

This was probably missed in https://github.com/actions/stale/pull/224

Fixes #299

* Add tests for #299

Co-authored-by: Geoffrey Testelin <geoffrey.testelin@gmail.com>
2021-02-05 06:52:44 -05:00
Geoffrey Testelin f71123a6f7
feat(exempt): add new options to exempt the milestones (#279)
* feat(exempt): add new options to exempt the milestones

closes #270

* test(milestones): add coverage

* test(issue): add coverage

* chore(rebase): fix all errors due to the rebase

also made some changes regarding the change I made with the lint scripts and prettier. I did not saw that some scripts were already here and I created to more to keep the old ones as well

* test(milestone): add coverage

* chore(index): update index

* fix(checks): remove checks over optional number options

the code was actually handling the case where the values are NaN so it's fine
2021-01-19 05:54:16 -05:00
Geoffrey Testelin f698371c0d
Add a start date option to ignore old issues and PRs (#269)
* docs(readme): add a small precision about the operations-per-run

closes #230

* chore(lint): ignore the lib folder for prettier

* chore(date): add a function to check if a date is valid

* chore(date): add a function to get a humanized date

* chore(date): add a function to check if the date is more recent than

* feat(date): add a start date to ignore old issues and PRs

closes #174

* docs(readme): change the date to match the description

* chore(date): add a better type for the date

* docs(date): add missing JSDoc about the return type

* chore(rebase): fix issues due to rebase

* docs(readme): fix table formatting issues
2021-01-17 20:22:36 -05:00
Geoffrey Testelin 7f340a46f3
Remove the stale label when labeled with an exempt one (#268)
* 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
2021-01-16 20:13:19 -05:00
Geoffrey Testelin e6b77bc964
feat(logs): enhance the logs and add a prefix with the issue number (#222)
* feat(logs): enhance the logs and add a prefix with the issue number

* chore: use camelCase for constants

use the new logger for the new code due to the rebase
2021-01-16 09:49:50 -05:00
Geoffrey Testelin 552e4c60f0
feat(stale-and-close): add new options to change the days before close (#224)
* docs(readme): add new options in the documentation

* chore: update the action schema

* chore: parse the new arguments

* feat(stale-and-close): add new options to change the days before close

to avoid a breaking change and simplify the configuration the old options 'daysBeforeStale' and 'daysBeforePrClose' are kept and new options are available to override them with 'daysBeforeIssueStale', 'daysBeforePrStale', 'daysBeforeIssueClose' and 'daysBeforePrClose'

* chore: rename the issue type enum to remove the enum suffix

* chore: add missing dependency for eslint and typescript

also upgrade the parser

* chore: fix an issue with the linter for the shadow rules

it was not configured properly for TypeScript

* chore: use camelCase for constants

* chore: use camelCase for enum members

* chore: fix the tests

* chore: enhance prettier to also lint other kind of files

it was configured to only work with ts and it was not working well to be honest
also now the lint scripts will also run prettier
2021-01-16 08:28:29 -05:00
Ross Brodbeck 546a4e9fd6
Fix failing tests (#266) 2021-01-15 07:35:41 -05:00
Rylan Polster a0b4b61711
Determine actor from PAT if possible (#231) 2021-01-15 07:20:32 -05:00
Sora Morimoto 39de730f99
Provide the GitHub token by default (#253)
* Provide the GitHub token by default

Signed-off-by: Sora Morimoto <sora@morimoto.io>

* npm run build

Signed-off-by: Sora Morimoto <sora@morimoto.io>
2021-01-15 07:07:08 -05:00
Geoffrey Testelin ddc7648635
fix(remove-label): do not encode the label to make sure to remove it (#220)
* test: add two more tests relating the label syntax issues

both are failing

* chore: add more logs and fix the tests on error

meaning that I did not find a reproduction...

* chore: minor improvements with the types and logs

* fix(remove-label): do not encode the label to make sure to remove it

could lead to an issue since based on the comment it was here on purpose
2021-01-15 06:51:24 -05:00
Alex Brazier 107018c400
feat: Add `delete-branch` option to delete PR branches after closing (#190)
* feat: Add `delete-branch` option to delete PR branches after closing

* Fix branch ref
2021-01-15 06:49:38 -05:00
Geoffrey Testelin 324009e5d0
fix(label): allow to use spaces inside the labels (#199)
* chore(git): ignore .idea folder to avoid adding WebStorm files

* test(jest): find all spec files as well

* refactor(labels): create a dedicated function to parse the labels

at first I thought that the parseCommaSeparatedString method was causing the issue so I move it to a dedicated file to test it since it was private
also because I think that this repo could have more clean code and code splitting
anyway this was not the root of the #98 issue :/

* fix(label): allow to use spaces inside the labels

* docs(isLabeled): add JSDoc

* chore(npm): add lint:fix script
2020-11-20 06:48:33 -05:00
Antoine du Hamel 9b82e8c1ef
Fix missing parenthesis (#197) 2020-11-19 20:36:46 -05:00
TingluoHuang 658139a1f1 not print untrusted info to STDOUT. 2020-11-02 16:43:44 -05:00
Daniel Jankowski 13b324e4b2
Add support for adding close label (#135) 2020-09-08 15:32:42 -04:00
Ross Brodbeck 1e5e734da7
Update to latest actions and octokit libraries (#124)
Upgrade to latest libraries but use "any" for the client until I figure out how to use the right type
2020-07-24 08:44:53 -04:00
Ross Brodbeck 5420e6bbac
Update eslint config to latest (#123) 2020-07-24 08:17:50 -04:00
Harshit Pant fbaa974a12
Add skip-stale-pr-message and skip-stale-issue-message (#119)
This introduces two new flags `skip-stale-issue-message` and `skip-stale-pr-message` which would skip the message addition if these are set to true.

They are backward compatible as empty `stale-issue-message` or `stale-pr-message` will take precedence over them
2020-07-24 08:08:48 -04:00
Phillip Johnsen f111c4f385
Allow for issues/PRs to be closed after manually being marked as stale (#103)
Previously this action would stop and skip all issues or pull requests
it found if no `stale-issue-message | stale-pr-message` option had
been configured.

Configuring `days-before-stale: -1` will activate that behaviour.
2020-07-13 16:20:45 -04:00
Owen Voke 32507178a3
Add support for posting comment on closure (#99) 2020-07-13 13:05:59 -04:00
Andy McKay e169e4e149
Allow ordering (#97)
* allow ordering of issue lookup
2020-06-23 13:55:24 -04:00
Ross Brodbeck d7468118d7
Add API failure handling/logging (#92)
* Add API failure handling/logging
2020-06-08 14:18:22 -04:00
Ross Brodbeck c72e3d7ff2
Fix stale closing logic by removing close date addition (#93) 2020-06-08 12:45:13 -04:00
Filip Jeremic db0a20585c
Update issue.updated_at if we have just marked an issue stale (#85)
This is to ensure we do not close issues before days-before-close has
expired. Without this fix we can encounter a situation where an issue
gets marked as stale and it gets closed immediately without waiting
days-before-close number of days.
2020-05-29 09:32:20 -04:00
Ross Brodbeck b6f9559915
Update logging to be info level, fix un-staling of issues (#83)
* The bot would un-stale issues because of how it checked staleness
* Made logging info by default so its easier to troubleshoot customer issues/runs
* Updated operation counts
2020-05-26 09:16:38 -04:00
Ross Brodbeck 96b682d29f
Fix an issue where the bot doesn't ignore its own comments (#73) 2020-05-18 20:33:59 -04:00
Ross Brodbeck 5ce6b77f2c
Fix issue close/stale dates (#72)
Added tests to confirm behavior.
2020-05-18 20:08:31 -04:00
PJ Quirk 71d46bfe23
Fix for logging error types instead of strings in the main try/catch (#66)
* Bump actions core for more lenient command inputs
* Fix issue with issues that are old and unlabeled
2020-05-12 15:23:00 -04:00
Ross Brodbeck e611bf905b
Close stale issues even if they were just marked stale (#64) 2020-05-11 11:15:05 -04:00
Ross Brodbeck 1e900bc060
Update docs and version so we can move to v3 (#63)
* Update docs and version

* Fix readme typo
2020-05-11 10:54:55 -04:00
Ross Brodbeck 3838b887be
Remove stale labels and ignore stale issues with comments (#58)
* Ignore issues that have recent comments and ignore the stale label. Defaulting to this behavior but added an option to turn it off.
* Fix up tests a bit to make this runnable. Add a test for the logic.
* Add vscode debugging configuration.
2020-05-11 10:46:03 -04:00
micnncim 4f9b6a7a5c
Fix typo in IssueProcessor.ts (#54) 2020-05-04 13:19:08 -04:00
James M. Greene ae2c5c5308
Prevent processing of locked/closed issues/PRs (#52)
Fixes #50
Fixes #51
2020-04-27 07:53:58 -04:00
Ross Brodbeck aad6ffa865
Refactor issue processor (#45)
* Refctor into an issue processor, add debug mode
* Move processor to use its own types so testing is easier
* Add more tests
2020-04-16 13:57:59 -04:00
Ryan Wilson-Perkin 6127f8ef7a
Allow multiple exempt labels (#19)
* Update description to clarify exempt labels

* [breaking change] Use array for exempt labels

* Switch to a comma separated string for exempt labels

* Update descriptions for multiple labels

* Update examples for exempt labels

* lint: apply fixes

* Re-generate transpiled output
2020-04-15 21:33:09 -04:00
Ross Brodbeck 60b5a6b134
Cleanup release (#42)
Fix up the release pipeline, add linting and clean up a bit.
2020-04-14 13:28:00 -04:00
Ross Brodbeck 3d5d474504
Merge pull request #22 from yuya-takeyama/only-labels-pr
Add only-labels option
2020-04-13 07:19:13 -04:00
Yuya Takeyama 8588c16319 Add only-labels 2019-09-27 22:50:35 +09:00
Danny McCormick b8e29997c6
Clean up 2019-09-05 09:57:15 -04:00
damccorm 2521dbb244 Add option to not close stale 2019-09-04 16:38:09 -04:00
Ryan Wilson-Perkin 9f69ef12ad Feature: Exempt labels from action (#11)
* Change name to isLabeled for re-use with "exempt"

* Add args for exempt labels

* Skip operation if labeled exempt

* Only check for exempt label if defined

Since the exempt label parameter is not required, we don't want to both
checking for it if it was not defined.

* Don't reduce operationsLeft if exempt

This variable just tracks the number of operations we're using to avoid
rate limiting. Since the exempt check wouldn't result in a rate-limited
request, we don't need to reduce the variable.

* Update the action.yml with new exempt values

* Update README with example of exempt labels

* Remove redundant defaults
2019-08-27 15:58:14 -04:00
John Briggs 0cad222e9d Fix wasLastUpdatedBefore to be in days, not hours (#8)
The parameters and variables names make it seem like this is the intended behavior.
2019-08-19 14:28:41 -04:00