Compare commits

..

450 Commits
v41 ... main

Author SHA1 Message Date
renovate[bot]
05f0aba931
chore(deps): lock file maintenance (#2369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 00:19:03 +00:00
renovate[bot]
462396174f
chore(deps): update dependency @types/node to v22.10.1 (#2368)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 07:21:30 +00:00
renovate[bot]
c19a7eb771
chore(deps): update dependency eslint-plugin-github to v5.1.3 (#2367)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-26 20:41:59 +00:00
renovate[bot]
c288441a7d
chore(deps): update dependency prettier to v3.4.1 (#2366)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-26 15:39:38 +00:00
renovate[bot]
1d6ea46cac
chore(deps): update dependency prettier to v3.4.0 (#2365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-26 08:24:22 +00:00
renovate[bot]
02b41f5ff9
chore(deps): update dependency @types/node to v22.10.0 (#2364)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-26 04:09:53 +00:00
renovate[bot]
b4a4dcabce
chore(deps): update dependency @types/node to v22.9.4 (#2361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-25 23:20:16 +00:00
renovate[bot]
602aacf949
chore(deps): lock file maintenance (#2360)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-25 01:43:47 +00:00
renovate[bot]
51290e039a
chore(deps): update dependency @types/node to v22.9.3 (#2359)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-23 07:57:35 +00:00
renovate[bot]
b4badd8cce
chore(deps): update dependency @types/node to v22.9.2 (#2358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-23 01:37:53 +00:00
renovate[bot]
652b4c06e8
chore(deps): update dependency typescript to v5.7.2 (#2357)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2024-11-22 17:47:46 +00:00
dependabot[bot]
0b7a421316
chore(deps-dev): bump eslint-plugin-github from 5.0.2 to 5.1.1 (#2356)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 10:31:13 -07:00
dependabot[bot]
b26581aca1
chore(deps): bump yaml from 2.6.0 to 2.6.1 (#2353)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-20 10:59:38 -07:00
renovate[bot]
43e6b45c5d
chore(deps): update dependency @types/node to v22.9.1 (#2352)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-19 19:02:55 +00:00
renovate[bot]
fe1bc0e3d3
chore(deps): lock file maintenance (#2349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-18 00:48:55 +00:00
renovate[bot]
d7917c6584
chore(deps): update dependency @vercel/ncc to v0.38.3 (#2348)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-15 08:08:19 +00:00
renovate[bot]
3f646a3549
chore(deps): lock file maintenance (#2345)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-11 01:13:14 +00:00
tj-actions[bot]
6809677b7a
Upgraded to v45.0.4 (#2344)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-11-07 21:35:59 -07:00
renovate[bot]
4edd678ac3 chore(deps): update dependency eslint-plugin-jest to v28.9.0 2024-11-05 20:16:30 +00:00
renovate[bot]
f08255874b chore(deps): update dependency @types/node to v22.9.0 2024-11-05 03:24:14 +00:00
renovate[bot]
92c02a00a1 chore(deps): lock file maintenance 2024-11-04 00:11:16 +00:00
renovate[bot]
b70221184d chore(deps): update dependency @types/node to v22.8.7 2024-11-03 08:15:03 +00:00
renovate[bot]
435fd74b2e chore(deps): update dependency @types/node to v22.8.6 2024-10-31 20:02:43 +00:00
renovate[bot]
0626fa3ff3 chore(deps): update dependency @types/node to v22.8.5 2024-10-31 06:21:09 +00:00
renovate[bot]
8817a797cb chore(deps): update dependency @types/lodash to v4.17.13 2024-10-30 01:09:40 +00:00
renovate[bot]
54174910be chore(deps): update dependency @types/node to v22.8.4 2024-10-29 19:35:50 +00:00
renovate[bot]
84ef162530 chore(deps): update dependency @types/node to v22.8.2 2024-10-28 23:25:10 +00:00
renovate[bot]
b672a5115a chore(deps): lock file maintenance 2024-10-28 02:21:37 +00:00
renovate[bot]
678cdc2808 chore(deps): update dependency @types/node to v22.8.1 2024-10-26 02:01:48 +00:00
renovate[bot]
27b7bbb0ae chore(deps): update dependency @types/node to v22.8.0 2024-10-25 14:24:14 +00:00
renovate[bot]
83610723bb chore(deps): update actions/setup-node action to v4.1.0 2024-10-24 14:37:52 +00:00
renovate[bot]
21acf46f4a chore(deps): update dependency @types/node to v22.7.9 2024-10-23 11:18:25 +00:00
renovate[bot]
f356b3c86b chore(deps): update dependency @types/jest to v29.5.14 2024-10-23 06:35:49 +00:00
renovate[bot]
66275de060 chore(deps): update dependency @types/node to v22.7.8 2024-10-22 04:30:30 +00:00
renovate[bot]
a16702bf7a chore(deps): lock file maintenance 2024-10-21 00:42:03 +00:00
renovate[bot]
aa11897ec4 chore(deps): update dependency @types/lodash to v4.17.12 2024-10-19 08:01:58 +00:00
renovate[bot]
6513fe1691 chore(deps): update dependency @types/node to v22.7.7 2024-10-19 03:58:07 +00:00
renovate[bot]
45e0c78ac7 chore(deps): update dependency @types/lodash to v4.17.11 2024-10-18 13:49:37 +00:00
renovate[bot]
a949a8338c chore(deps): update dependency @types/node to v22.7.6 2024-10-17 03:01:23 +00:00
Tonye Jack
1f772e919b
feat: prevent ignore files warning (#2318) 2024-10-15 00:04:31 +00:00
Tonye Jack
684c5e6d94
skip: step for dependabot PRs (#2317) 2024-10-14 16:21:02 +00:00
GitHub Action
9d7201ded6 Added missing changes and modified dist assets. 2024-10-14 10:02:19 -06:00
renovate[bot]
f93ff33629 chore(deps): lock file maintenance 2024-10-14 10:02:19 -06:00
renovate[bot]
729c70475c chore(deps): update dependency typescript to v5.6.3 2024-10-09 00:34:41 +00:00
renovate[bot]
2009d446ac chore(deps): update dependency @types/node to v22.7.5 2024-10-08 01:30:35 +00:00
renovate[bot]
b693fc207f chore(deps): lock file maintenance 2024-10-07 01:21:02 +00:00
GitHub Action
0104c75ccc Added missing changes and modified dist assets. 2024-10-04 20:45:40 -06:00
renovate[bot]
4d0aab94b6 fix(deps): update dependency @actions/core to v1.11.1 2024-10-04 20:45:40 -06:00
tj-actions[bot]
df3e9932c4
Upgraded to v45.0.3 (#2308)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-10-03 20:11:06 -06:00
Tonye Jack
c3a1bb2c99
fix: overwriting yaml filter patterns (#2307)
Co-authored-by: tj-actions[bot] <109116665+tj-actions-bot@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2024-10-03 12:48:13 +00:00
renovate[bot]
27843f1667 chore(deps): update dependency @types/lodash to v4.17.10 2024-10-03 09:49:54 +00:00
GitHub Action
36d5b9dda5 Added missing changes and modified dist assets. 2024-10-02 19:21:54 +00:00
renovate[bot]
9d4f8fea58 fix(deps): update dependency @actions/core to v1.11.0 2024-10-02 19:21:54 +00:00
Tonye Jack
d0cf1645b7
fix: bug with files ignore yaml patterns not filtering the list of files (#2304)
Co-authored-by: GitHub Action <action@github.com>
2024-10-02 13:12:26 -06:00
Tonye Jack
641e22af4a
docs: Update README.md (#2300) 2024-09-30 08:20:25 -06:00
renovate[bot]
8a4a9757b7 chore(deps): lock file maintenance 2024-09-30 00:23:12 +00:00
renovate[bot]
6bfa9e7a9a chore(deps): update dependency @types/node to v22.7.4 2024-09-27 17:10:26 +00:00
renovate[bot]
625dbd682e chore(deps): update dependency @types/node to v22.7.3 2024-09-26 18:20:17 +00:00
Tonye Jack
1a71128b6a
docs: Update README.md (#2296) 2024-09-26 13:51:22 +00:00
renovate[bot]
c29c1d3dd0 chore(deps): update dependency @types/node to v22.7.2 2024-09-25 22:42:19 +00:00
Tonye Jack
e753fb0a63
fix: test for since last remote commit check on pull_request closed (#2295) 2024-09-25 13:57:38 +00:00
renovate[bot]
e21f1a3077 chore(deps): update dependency @types/node to v22.7.0 2024-09-25 01:36:11 +00:00
renovate[bot]
792230fced chore(deps): update dependency @types/node to v22.6.1 2024-09-23 21:27:30 +00:00
GitHub Action
4dbe54f96e Added missing changes and modified dist assets. 2024-09-23 20:53:42 +00:00
renovate[bot]
537f1c6318 chore(deps): update dependency @vercel/ncc to v0.38.2 2024-09-23 20:53:42 +00:00
renovate[bot]
82587d8858 chore(deps): update dependency @types/lodash to v4.17.9 2024-09-23 19:43:48 +00:00
renovate[bot]
eda64a62bd chore(deps): lock file maintenance 2024-09-23 01:27:08 +00:00
renovate[bot]
4d5444c2c3 chore(deps): update actions/setup-node action to v4.0.4 2024-09-19 15:00:59 +00:00
renovate[bot]
c2e104be2f chore(deps): update peter-evans/create-pull-request action to v7.0.5 2024-09-18 19:36:13 +00:00
renovate[bot]
eed685a419 chore(deps): update dependency eslint to v8.57.1 2024-09-16 18:33:19 +00:00
tj-actions[bot]
6f538bb83f
Upgraded to v45.0.2 (#2282)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-09-16 12:20:58 -06:00
renovate[bot]
48d8f15b2a chore(deps): update peter-evans/create-pull-request action to v7.0.3 2024-09-16 12:06:47 +00:00
renovate[bot]
f4e06529f1 chore(deps): lock file maintenance 2024-09-16 01:55:34 +00:00
renovate[bot]
9b5f7d7ff5 chore(deps): update dependency @types/node to v22.5.5 2024-09-14 04:47:20 +00:00
renovate[bot]
80dc58425e chore(deps): update dependency @types/jest to v29.5.13 2024-09-12 18:11:51 +00:00
renovate[bot]
f9216b6d97 chore(deps): update peter-evans/create-pull-request action to v7.0.2 2024-09-12 12:53:03 +00:00
renovate[bot]
fef272dc40 chore(deps): update dependency eslint-plugin-github to v5.0.2 2024-09-11 13:36:04 +00:00
renovate[bot]
a236bf57ea chore(deps): update dependency typescript to v5.6.2 2024-09-09 18:13:27 +00:00
renovate[bot]
0cb58dec12 chore(deps): lock file maintenance 2024-09-09 03:31:46 +00:00
renovate[bot]
44f3356296 chore(deps): lock file maintenance 2024-09-09 02:18:15 +00:00
renovate[bot]
1d9fdda44c chore(deps): update peter-evans/create-pull-request action to v7.0.1 2024-09-05 10:13:54 +00:00
renovate[bot]
ca746c1dbe chore(deps): update dependency eslint-plugin-jest to v28.8.3 2024-09-05 01:52:01 +00:00
renovate[bot]
2414c5b001 chore(deps): update dependency @types/node to v22.5.4 2024-09-04 22:46:54 +00:00
GitHub Action
e73bb10d96 Added missing changes and modified dist assets. 2024-09-04 16:04:32 +00:00
renovate[bot]
c7114f61a1 fix(deps): update dependency yaml to v2.5.1 2024-09-04 16:04:32 +00:00
renovate[bot]
38cc85fd79
chore(deps): update peter-evans/create-pull-request action to v7 (#2261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 09:17:13 -06:00
renovate[bot]
834406f361 chore(deps): update dependency @types/node to v22.5.3 2024-09-04 01:21:42 +00:00
tj-actions[bot]
5d8e41f17c
Upgraded to v45.0.1 (#2258)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-09-02 14:01:39 -06:00
renovate[bot]
a78c1f5db4 chore(deps): update dependency eslint-plugin-jest to v28.8.2 2024-09-02 04:54:05 +00:00
renovate[bot]
5977012387 chore(deps): lock file maintenance 2024-09-02 00:20:31 +00:00
renovate[bot]
e9772d1404 chore(deps): update dependency @types/node to v22.5.2 2024-09-01 13:13:15 +00:00
renovate[bot]
880354d0c6 chore(deps): update dependency eslint-plugin-jest to v28.8.1 2024-08-29 22:45:14 +00:00
dependabot[bot]
8d5497eb10
chore(deps-dev): bump @types/node from 22.5.0 to 22.5.1 (#2252)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-27 21:05:43 -06:00
GitHub Action
696bea0add Added missing changes and modified dist assets. 2024-08-26 17:28:40 -06:00
renovate[bot]
bd7d572708 chore(deps): lock file maintenance 2024-08-26 17:28:40 -06:00
GitHub Action
305db886e7 Added missing changes and modified dist assets. 2024-08-25 17:41:10 -06:00
renovate[bot]
17107f43d7 fix(deps): update dependency micromatch to v4.0.8 2024-08-25 17:41:10 -06:00
renovate[bot]
2d4c94f488 chore(deps): update dependency ts-jest to v29.2.5 2024-08-23 15:55:07 +00:00
renovate[bot]
bf02379775 chore(deps): update dependency @types/node to v22.5.0 2024-08-21 20:35:43 +00:00
tj-actions[bot]
0d320382bc
Upgraded to v45 (#2244)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-08-21 04:36:14 -06:00
tj-actions[bot]
40853de9f8
Updated README.md (#2243)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2024-08-21 04:07:25 -06:00
allcontributors[bot]
94b94fea13
docs: add Whadup as a contributor for code (#2239)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2024-08-21 03:51:32 -06:00
Lukas Pfahler
f8034fbb84
Renamed Files decomposed into Deleted: previous_filename and Added:filename (#2236)
Co-authored-by: Tonye Jack <jtonye@ymail.com>
2024-08-21 03:50:59 -06:00
Tonye Jack
b4c0974161
fix: update test skip logic to use custom env (#2242) 2024-08-21 03:43:42 -06:00
Tonye Jack
246859db91
chore: debug env vars (#2241) 2024-08-21 03:28:01 -06:00
Tonye Jack
46a4c027a6
chore: conditionally skip certain test for foked prs (#2240)
Co-authored-by: tj-actions[bot] <109116665+tj-actions-bot@users.noreply.github.com>
2024-08-21 03:13:53 -06:00
Tonye Jack
525aabbe28
fix: remove unsupported input (#2238) 2024-08-21 02:28:27 -06:00
renovate[bot]
25b256207d chore(deps): update dependency @types/node to v22.4.2 2024-08-21 02:29:19 +00:00
renovate[bot]
257f12c17b chore(deps): update dependency @types/node to v22.4.1 2024-08-19 05:29:49 +00:00
GitHub Action
598b7212f2 Added missing changes and modified dist assets. 2024-08-18 02:30:57 +00:00
Tonye Jack
88201be733 Update tsconfig.json 2024-08-18 02:30:57 +00:00
renovate[bot]
9b7ba7b107 chore(deps): lock file maintenance 2024-08-18 02:30:57 +00:00
renovate[bot]
3ea85a1c0d fix(deps): update dependency @octokit/rest to v21.0.2 2024-08-16 22:24:38 +00:00
renovate[bot]
50693d8df5 chore(deps): update dependency @types/node to v22.4.0 2024-08-16 19:16:42 +00:00
renovate[bot]
87d8f9488b chore(deps): update dependency @types/node to v22.3.0 2024-08-14 11:20:23 +00:00
renovate[bot]
950331d47c chore(deps): update dependency @types/node to v22.2.0 2024-08-09 19:14:11 +00:00
renovate[bot]
ed00b69562 chore(deps): update dependency eslint-plugin-jest to v28.8.0 2024-08-07 20:05:11 +00:00
renovate[bot]
9d768c3d4e chore(deps): update dependency eslint-plugin-jest to v28.7.0 2024-08-04 21:03:41 +00:00
renovate[bot]
6b79c79980 chore(deps): update dependency @types/node to v22.1.0 2024-08-02 13:18:43 +00:00
renovate[bot]
99b60a2a91 chore(deps): update dependency @types/node to v22.0.3 2024-08-02 09:41:42 +00:00
renovate[bot]
8ae850f052 chore(deps): update dependency ts-jest to v29.2.4 2024-08-01 10:37:32 +00:00
tj-actions[bot]
71038002e0
Upgraded to v44.5.7 (#2218)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-07-31 14:44:00 -06:00
renovate[bot]
03d95b07db chore(deps): update dependency @types/node to v22.0.1 2024-07-31 19:50:14 +00:00
dependabot[bot]
c65cd88342
chore(deps-dev): bump @types/node from 20.14.13 to 22.0.0 (#2215)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 18:55:58 -06:00
renovate[bot]
9f928e3005 chore(deps): update typescript-eslint monorepo to v7.18.0 2024-07-29 19:48:16 +00:00
renovate[bot]
fb1b47b727 chore(deps): update dependency @types/node to v20.14.13 2024-07-28 10:21:23 +00:00
GitHub Action
a77ecbc238 Added missing changes and modified dist assets. 2024-07-27 03:56:35 +00:00
renovate[bot]
e4fe134b73 fix(deps): update dependency @stdlib/utils-convert-path to v0.2.2 2024-07-27 03:56:35 +00:00
Tonye Jack
f5a7145f2b
fix: error with pull_request closed test (#2211) 2024-07-25 01:45:53 +00:00
GitHub Action
10471793b2 Added missing changes and modified dist assets. 2024-07-24 13:14:43 +00:00
renovate[bot]
28fd03b28d fix(deps): update dependency yaml to v2.5.0 2024-07-24 13:14:43 +00:00
renovate[bot]
4db04c76fa chore(deps): update dependency @types/node to v20.14.12 2024-07-23 20:12:24 +00:00
renovate[bot]
f79274f27b chore(deps): update typescript-eslint monorepo to v7.17.0 2024-07-22 19:43:16 +00:00
tj-actions[bot]
f1d2215d5d
Upgraded to v44.5.6 (#2204)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-07-19 01:27:31 -06:00
Tonye Jack
6b2903bdce
fix: remove unused code (#2202)
Co-authored-by: GitHub Action <action@github.com>
2024-07-18 19:39:13 +00:00
renovate[bot]
dc82617b24 chore(deps): update dependency ts-jest to v29.2.3 2024-07-18 17:55:38 +00:00
renovate[bot]
1797e9a1ea chore(deps): update dependency eslint-plugin-prettier to v5.2.1 2024-07-17 11:55:44 +00:00
renovate[bot]
56b5e13a32 fix(deps): update dependency @octokit/rest to v21.0.1 2024-07-17 00:35:57 +00:00
renovate[bot]
9e63ef55ed chore(deps): update dependency @types/node to v20.14.11 2024-07-16 20:24:00 +00:00
renovate[bot]
f1afcaced6 chore(deps): update dependency @types/lodash to v4.17.7 2024-07-16 03:48:13 +00:00
renovate[bot]
e42a3d1b0a chore(deps): update typescript-eslint monorepo to v7.16.1 2024-07-15 19:58:11 +00:00
renovate[bot]
f0eedff362 chore(deps): update dependency prettier to v3.3.3 2024-07-13 12:45:50 +00:00
renovate[bot]
f6d7b721fd chore(deps): update codacy/codacy-analysis-cli-action action to v4.4.5 2024-07-12 14:41:02 +00:00
renovate[bot]
6f59461624 chore(deps): update codacy/codacy-analysis-cli-action action to v4.4.4 2024-07-11 15:55:03 +00:00
renovate[bot]
443dcaf814 chore(deps): update codacy/codacy-analysis-cli-action action to v4.4.2 2024-07-11 13:46:28 +00:00
renovate[bot]
6f8dfa84e8 chore(deps): update dependency ts-jest to v29.2.2 2024-07-10 18:30:05 +00:00
renovate[bot]
df7dd40375 chore(deps): update dependency ts-jest to v29.2.1 2024-07-10 10:08:04 +00:00
renovate[bot]
07a5a99344 chore(deps): update actions/setup-node action to v4.0.3 2024-07-09 17:00:00 +00:00
renovate[bot]
02a0746337 chore(deps): update typescript-eslint monorepo to v7.16.0 2024-07-08 20:11:01 +00:00
renovate[bot]
75ed46d235 chore(deps): update dependency ts-jest to v29.2.0 2024-07-08 17:55:08 +00:00
renovate[bot]
c8c9e91b48 chore(deps): update dependency @types/node to v20.14.10 2024-07-05 21:40:00 +00:00
renovate[bot]
8ead8a4214 chore(deps): update dependency @typescript-eslint/eslint-plugin to v7.15.0 2024-07-02 15:10:35 +00:00
dependabot[bot]
0f83d09356
chore(deps-dev): bump @typescript-eslint/parser from 7.14.1 to 7.15.0 (#2181)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-02 08:58:55 -06:00
renovate[bot]
c3dcd3e758 chore(deps): update dependency @types/micromatch to v4.0.9 2024-06-29 14:14:44 +00:00
renovate[bot]
0e9a58eebf
chore(deps): update actions/checkout action to v4 (#2174)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-28 19:13:31 -06:00
renovate[bot]
2295558b65 chore(deps): update actions/checkout action to v3 2024-06-28 14:17:31 +00:00
renovate[bot]
68447960ff chore(deps): update dependency @types/lodash to v4.17.6 2024-06-27 16:25:36 +00:00
renovate[bot]
00518ab39d chore(deps): update dependency @types/micromatch to v4.0.8 2024-06-26 12:15:24 +00:00
renovate[bot]
2c2260e690 chore(deps): update dependency @types/node to v20.14.9 2024-06-25 23:37:29 +00:00
tj-actions[bot]
9adb9156b8
Upgraded to v44.5.5 (#2168)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-06-25 13:42:08 +00:00
renovate[bot]
d1d479f03c chore(deps): update typescript-eslint monorepo to v7.14.1 2024-06-24 18:47:49 +00:00
Tonye Jack
cc733854b1
chore: remove debug lines (#2166)
Co-authored-by: GitHub Action <action@github.com>
2024-06-24 10:06:44 -06:00
tj-actions[bot]
0b99ecfd4e
Upgraded to v44.5.4 (#2165)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-06-24 10:06:30 -06:00
Tonye Jack
cc3bbb0c52
fix: error using since_last_remote_commit with the first PR commit (#2163)
Co-authored-by: tj-actions[bot] <109116665+tj-actions-bot@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2024-06-23 01:03:16 -06:00
renovate[bot]
373db58d9d chore(deps): update dependency @types/node to v20.14.8 2024-06-22 08:54:44 +00:00
dependabot[bot]
9161a8dcde
chore(deps-dev): bump @types/uuid from 9.0.8 to 10.0.0 (#2160)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-21 22:52:36 -06:00
tj-actions[bot]
e13fb92d45
Upgraded to v44.5.3 (#2154)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-06-21 21:41:51 -06:00
renovate[bot]
7891350b8e
fix(deps): update dependency @octokit/rest to v21 (#2158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2024-06-21 21:41:32 -06:00
renovate[bot]
457e041909 chore(deps): update dependency @types/node to v20.14.7 2024-06-20 23:31:52 +00:00
renovate[bot]
eaf854ef0c chore(deps): update dependency @types/node to v20.14.6 2024-06-19 18:37:27 +00:00
renovate[bot]
681bf92506 chore(deps): update peter-evans/create-pull-request action to v6.1.0 2024-06-18 19:25:32 +00:00
renovate[bot]
3ec883ad31 chore(deps): update dependency @types/node to v20.14.5 2024-06-18 08:47:13 +00:00
renovate[bot]
e5740c1ffc chore(deps): update dependency @types/node to v20.14.4 2024-06-18 01:42:32 +00:00
renovate[bot]
bbe7f7b544 chore(deps): update dependency @types/node to v20.14.3 2024-06-17 22:19:15 +00:00
renovate[bot]
205913dc0c chore(deps): update typescript-eslint monorepo to v7.13.1 2024-06-17 19:02:52 +00:00
renovate[bot]
dd73690e2e chore(deps): lock file maintenance 2024-06-17 00:54:47 +00:00
renovate[bot]
c226cd45e5 chore(deps): update dependency ts-jest to v29.1.5 2024-06-16 16:54:00 +00:00
renovate[bot]
facb2785cd chore(deps): update dependency prettier to v3.3.2 2024-06-11 07:55:13 +00:00
Tonye Jack
4b558a92db
chore: Update README.md (#2139) 2024-06-10 13:47:52 -06:00
renovate[bot]
5f68aa8f2d chore(deps): update typescript-eslint monorepo to v7.13.0 2024-06-10 18:14:05 +00:00
renovate[bot]
0da22a2fef chore(deps): lock file maintenance 2024-06-10 00:40:53 +00:00
GitHub Action
2972fe4d6b Added missing changes and modified dist assets. 2024-06-08 22:06:16 +00:00
renovate[bot]
57a81a39f3 fix(deps): update dependency yaml to v2.4.5 2024-06-08 22:06:16 +00:00
GitHub Action
1d8732f877 Added missing changes and modified dist assets. 2024-06-08 19:09:04 +00:00
renovate[bot]
3de07763cf fix(deps): update dependency yaml to v2.4.4 2024-06-08 19:09:04 +00:00
renovate[bot]
b53f3b80e1 chore(deps): update dependency @types/lodash to v4.17.5 2024-06-08 10:10:13 +00:00
renovate[bot]
4f8f7b39ce chore(deps): update dependency eslint-plugin-jest to v28.6.0 2024-06-06 23:24:37 +00:00
renovate[bot]
ff86e79932 chore(deps): update dependency prettier to v3.3.1 2024-06-05 10:43:54 +00:00
renovate[bot]
14c7f454e7 chore(deps): update dependency @types/node to v20.14.2 2024-06-05 10:31:58 +00:00
renovate[bot]
cda0f1d381 chore(deps): update dependency eslint-plugin-github to v5.0.1 2024-06-04 23:08:52 +00:00
renovate[bot]
d44c8e3205 chore(deps): update dependency @types/node to v20.14.1 2024-06-04 01:02:53 +00:00
renovate[bot]
6b3dabec4c chore(deps): update typescript-eslint monorepo to v7.12.0 2024-06-03 18:44:25 +00:00
renovate[bot]
bce8e36722
chore(deps): update dependency eslint-plugin-github to v5 (#2126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-03 16:40:52 +00:00
renovate[bot]
b376795801 chore(deps): lock file maintenance 2024-06-03 12:39:52 +00:00
renovate[bot]
d41df78c17
chore(deps): update tj-actions/eslint-changed-files action to v25 (#2125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-03 12:27:44 +00:00
Tonye Jack
4ae1154663
chore: downgrade tj-actions/eslint-changed-files pending move to eslint 9 (#2124)
Co-authored-by: GitHub Action <action@github.com>
2024-06-03 06:08:32 -06:00
renovate[bot]
60268df189
fix(deps): update dependency yaml to v2.4.3 (#2120)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-02 20:35:23 -06:00
renovate[bot]
f52993ba02 chore(deps): update dependency @types/node to v20.14.0 2024-06-02 22:31:32 +00:00
renovate[bot]
3b13fed1b0 chore(deps): update dependency prettier to v3.3.0 2024-06-01 19:41:52 +00:00
renovate[bot]
338ea071b0 chore(deps): update dependency @types/node to v20.12.14 2024-05-31 19:43:46 +00:00
tj-actions[bot]
25cb66210f
Upgraded to v44.5.2 (#2116)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-05-30 05:22:17 +00:00
Tonye Jack
d6babd6899
fix: warning with fetch_missing_history_max_retries using REST API (#2114) 2024-05-30 05:05:34 +00:00
renovate[bot]
0a79e54e1f chore(deps): update dependency @types/node to v20.12.13 2024-05-29 19:47:23 +00:00
renovate[bot]
9d06a2a6a9 chore(deps): update dependency ts-jest to v29.1.4 2024-05-28 07:10:44 +00:00
renovate[bot]
7e8e88bd35 chore(deps): update typescript-eslint monorepo to v7.11.0 2024-05-27 22:39:58 +00:00
renovate[bot]
b510737b96 chore(deps): lock file maintenance 2024-05-27 15:52:00 +00:00
renovate[bot]
2e70979353 chore(deps): lock file maintenance 2024-05-27 02:35:45 +00:00
tj-actions[bot]
625929d27d
Upgraded to v44.5.1 (#2108)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-05-24 04:56:51 +00:00
Tonye Jack
03334d095e
fix: bug detecting previous tag when workflow is rerun (#2107)
Co-authored-by: GitHub Action <action@github.com>
2024-05-24 04:46:34 +00:00
GitHub Action
8a0655f075 Added missing changes and modified dist assets. 2024-05-22 11:55:42 +00:00
renovate[bot]
98e187efcd fix(deps): update dependency micromatch to v4.0.7 2024-05-22 11:55:42 +00:00
GitHub Action
96f65726ea Added missing changes and modified dist assets. 2024-05-21 17:28:01 +00:00
renovate[bot]
bf548e4af2 fix(deps): update dependency micromatch to v4.0.6 2024-05-21 17:28:01 +00:00
tj-actions[bot]
8b07fd3b11
Upgraded to v44.5.0 (#2101)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2024-05-21 09:59:35 -06:00
renovate[bot]
d195e6e7c2 chore(deps): update dependency ts-jest to v29.1.3 2024-05-21 04:54:11 +00:00
tj-actions[bot]
1754cd4b9e
Updated README.md (#2099)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-05-20 22:21:52 -06:00
Tonye Jack
03c184259a
feat: add support for providing patterns to match tags (#2098)
Co-authored-by: GitHub Action <action@github.com>
2024-05-21 04:17:52 +00:00
renovate[bot]
5f0139347a chore(deps): update typescript-eslint monorepo to v7.10.0 2024-05-20 22:14:31 +00:00
renovate[bot]
58a98867a7 chore(deps): update dependency @types/lodash to v4.17.4 2024-05-17 05:16:35 +00:00
renovate[bot]
9216b0cec2 chore(deps): update dependency @types/lodash to v4.17.3 2024-05-16 21:22:57 +00:00
renovate[bot]
0e3a6c3e99 chore(deps): update dependency @types/node to v20.12.12 2024-05-14 09:26:49 +00:00
renovate[bot]
e86678fe3a chore(deps): update typescript-eslint monorepo to v7.9.0 2024-05-13 20:27:08 +00:00
renovate[bot]
35d5a4d79f chore(deps): lock file maintenance 2024-05-13 01:27:13 +00:00
tj-actions[bot]
887f93673c
Upgraded to v44.4.0 (#2086)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-05-12 20:23:48 +00:00
renovate[bot]
a29e8b5656 chore(deps): update dependency @types/node to v20.12.11 2024-05-08 13:08:12 +00:00
renovate[bot]
5a127050b2 chore(deps): update codacy/codacy-analysis-cli-action action to v4.4.1 2024-05-08 11:24:48 +00:00
renovate[bot]
581934340b chore(deps): update dependency @types/node to v20.12.10 2024-05-06 20:38:32 +00:00
renovate[bot]
5587afbef7 chore(deps): update dependency @types/node to v20.12.9 2024-05-06 16:06:25 +00:00
renovate[bot]
0f039f361b chore(deps): lock file maintenance 2024-05-06 00:55:37 +00:00
renovate[bot]
6d4230d4f0
chore(deps): update tj-actions/verify-changed-files action to v20 (#2079)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-04 17:01:00 +00:00
renovate[bot]
1711887607 chore(deps): update dependency @types/lodash to v4.17.1 2024-05-04 10:31:51 +00:00
GitHub Action
c393672835 Added missing changes and modified dist assets. 2024-05-03 21:36:59 +00:00
renovate[bot]
396e5a51d5 fix(deps): update dependency @octokit/rest to v20.1.1 2024-05-03 21:36:59 +00:00
renovate[bot]
47a2d62412 chore(deps): update dependency eslint-plugin-jest to v28.5.0 2024-05-03 21:28:22 +00:00
renovate[bot]
c73b12cc6d chore(deps): update dependency eslint-plugin-jest to v28.4.0 2024-05-03 03:20:34 +00:00
dependabot[bot]
41ce994be9
chore(deps-dev): bump @types/node from 20.12.7 to 20.12.8 (#2074)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 01:38:04 +00:00
renovate[bot]
192e174507 chore(deps): lock file maintenance 2024-05-01 13:48:00 +00:00
renovate[bot]
5e85e31a01 chore(deps): update typescript-eslint monorepo to v7.8.0 2024-04-29 19:04:36 +00:00
renovate[bot]
7871e848ad chore(deps): lock file maintenance 2024-04-29 01:36:07 +00:00
GitHub Action
15fa7fb955 Added missing changes and modified dist assets. 2024-04-28 10:28:51 +00:00
renovate[bot]
1c5b7dc5f4 fix(deps): update dependency yaml to v2.4.2 2024-04-28 10:28:51 +00:00
renovate[bot]
4765b9f775
chore(deps): update tj-actions/eslint-changed-files action to v25 (#2069)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-28 07:23:14 +00:00
tj-actions[bot]
0c82494d63
Updated README.md (#2068)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-27 10:01:05 +00:00
renovate[bot]
7d02310f6e chore(deps): update dependency eslint-plugin-jest to v28.3.0 2024-04-27 09:50:02 +00:00
renovate[bot]
0df48f8409 chore(deps): update peter-evans/create-pull-request action to v6.0.5 2024-04-25 10:44:21 +00:00
renovate[bot]
b76e23c88a chore(deps): update typescript-eslint monorepo to v7.7.1 2024-04-22 17:40:54 +00:00
renovate[bot]
549c203ec2 chore(deps): lock file maintenance 2024-04-22 01:39:30 +00:00
tj-actions[bot]
cee950d742
Updated README.md (#2061)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-04-20 04:26:05 +00:00
Tonye Jack
44ce9f4341
feat: reduce the default fetch_depth from 50 to 25 and increase fetch_missing_history_max_retries (#2060) 2024-04-20 04:15:07 +00:00
tj-actions[bot]
7b65c377b1
Updated README.md (#2059)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-04-18 15:18:18 -06:00
Tonye Jack
532b66aa5c
Update action.yml 2024-04-18 15:09:11 -06:00
tj-actions[bot]
d9384bba72
Upgraded to v44.3.0 (#2058)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-04-18 15:07:59 -06:00
tj-actions[bot]
461ea4f9bf
Updated README.md (#2057)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-04-18 15:04:48 -06:00
Tonye Jack
0874344d6e
feat: add support for returning posix path separator on windows (#2056)
Co-authored-by: GitHub Action <action@github.com>
2024-04-18 15:03:38 -06:00
Tonye Jack
9f8300f8b4
fix: add a fallback value for the max number for retries to fetch missing history (#2055)
Co-authored-by: GitHub Action <action@github.com>
2024-04-18 19:12:36 +00:00
tj-actions[bot]
a06b9e80ae
Upgraded to v44.2.0 (#2054)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-04-18 13:02:55 -06:00
tj-actions[bot]
4c5f5d698f
Updated README.md (#2053)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-04-18 12:52:38 -06:00
Tonye Jack
07c64e5618
feat: add support for specifying the max number for retries to fetch missing history (#2052)
Co-authored-by: GitHub Action <action@github.com>
2024-04-18 12:45:07 -06:00
tj-actions[bot]
5bd333239b
Upgraded to v44.1.0 (#2050)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-04-17 16:40:08 +00:00
tj-actions[bot]
831e892562
Updated README.md (#2049)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2024-04-17 10:26:15 -06:00
Tonye Jack
e052d30e1c
feat: add option to exclude submodules when detecting changes (#2047)
Co-authored-by: GitHub Action <action@github.com>
2024-04-17 16:24:26 +00:00
renovate[bot]
23a449039c chore(deps): update peter-evans/create-pull-request action to v6.0.4 2024-04-17 14:08:27 +00:00
renovate[bot]
60e2739e15 chore(deps): update typescript-eslint monorepo to v7.7.0 2024-04-15 19:13:52 +00:00
renovate[bot]
0f319d7425 chore(deps): lock file maintenance 2024-04-15 03:20:08 +00:00
GitHub Action
d477ae513d Added missing changes and modified dist assets. 2024-04-15 02:12:15 +00:00
renovate[bot]
5891cbdfd5 chore(deps): lock file maintenance 2024-04-15 02:12:15 +00:00
renovate[bot]
c9eaa5c000 chore(deps): update dependency @types/micromatch to v4.0.7 2024-04-13 20:46:50 +00:00
renovate[bot]
fd91508dbb chore(deps): update peter-evans/create-pull-request action to v6.0.3 2024-04-12 11:18:54 +00:00
renovate[bot]
e8a7e82269 chore(deps): update dependency typescript to v5.4.5 2024-04-10 15:33:05 +00:00
tj-actions[bot]
159b05372c
Upgraded to v44.0.1 (#2037)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-04-09 23:54:32 +00:00
renovate[bot]
635f118699 chore(deps): update dependency @types/node to v20.12.7 2024-04-09 22:45:21 +00:00
renovate[bot]
634b61511e chore(deps): update dependency @types/node to v20.12.6 2024-04-09 07:28:13 +00:00
renovate[bot]
77fcf43160 chore(deps): update typescript-eslint monorepo to v7.6.0 2024-04-08 19:14:43 +00:00
GitHub Action
5f084a52a4 Added missing changes and modified dist assets. 2024-04-08 14:42:53 +00:00
renovate[bot]
ff2cb1b4f2 chore(deps): lock file maintenance 2024-04-08 14:42:53 +00:00
renovate[bot]
5d5da31340 chore(deps): update dependency eslint-plugin-jest to v28.2.0 2024-04-07 02:26:15 +00:00
renovate[bot]
29bc0d3fd9 chore(deps): update dependency eslint-plugin-jest to v28.1.1 2024-04-06 23:12:23 +00:00
renovate[bot]
c9f9d5784e
chore(deps): update dependency eslint-plugin-jest to v28 (#2030)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-06 10:04:57 +00:00
renovate[bot]
a4fba0109c chore(deps): update dependency @types/node to v20.12.5 2024-04-05 23:24:24 +00:00
dependabot[bot]
8a6546164a
chore(deps): bump undici from 5.28.3 to 5.28.4 (#2026)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2024-04-04 18:55:07 +00:00
renovate[bot]
bad2eb6859 chore(deps): update dependency typescript to v5.4.4 2024-04-04 18:45:28 +00:00
renovate[bot]
b2dbd4264a chore(deps): update dependency @types/node to v20.12.4 2024-04-04 00:49:09 +00:00
renovate[bot]
57d40e662d fix(deps): update dependency @octokit/rest to v20.1.0 2024-04-03 20:00:38 +00:00
renovate[bot]
185549c022 chore(deps): update dependency @types/node to v20.12.3 2024-04-02 22:09:40 +00:00
renovate[bot]
f853fd0592 chore(deps): update typescript-eslint monorepo to v7.5.0 2024-04-02 00:11:13 +00:00
renovate[bot]
cd3c6e6bbd chore(deps): lock file maintenance 2024-04-01 00:51:33 +00:00
renovate[bot]
e5ce44a301 chore(deps): update dependency @types/node to v20.12.2 2024-03-30 07:12:07 +00:00
renovate[bot]
ccdcd17ffd
chore(deps): update tj-actions/eslint-changed-files action to v24 (#2019)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-29 14:37:20 +00:00
tj-actions[bot]
e4b8dafc5d
Upgraded to v44 (#2017)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-03-26 20:33:57 -06:00
tj-actions[bot]
2d756ea4c5
Updated README.md (#2016)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-03-26 19:52:24 -06:00
tonyejack1
ce497c39e9
chore: update description of outputs removing asterisks (#2015) 2024-03-26 19:50:35 -06:00
Tonye Jack
2d21bbb405
Update README.md 2024-03-26 19:32:02 -06:00
Tonye Jack
90941b398f
remove: unused code (#2014) 2024-03-26 22:49:39 +00:00
tj-actions[bot]
2ca8dc42f6
Updated README.md (#2013)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-03-26 16:16:41 -06:00
tonyejack1
ee096d679e
chore: update description of other_deleted_files output (#2008)
Co-authored-by: Tonye Jack <jtonye@ymail.com>
2024-03-26 16:15:39 -06:00
tonyejack1
4621617d4b
Update README.md 2024-03-26 13:31:35 -06:00
Tonye Jack
4bbd49b998
fix: ensure the fork remote doesn't exists before creating it (#2012)
Co-authored-by: GitHub Action <action@github.com>
2024-03-26 19:12:21 +00:00
Tonye Jack
c6557ed000
Update README.md 2024-03-26 12:50:59 -06:00
Tonye Jack
f0e7702ccc
fix: update previos sha for forks (#2011)
Co-authored-by: GitHub Action <action@github.com>
2024-03-26 18:46:29 +00:00
Tonye Jack
6354e6c542
fix: update to add the fork remote (#2010) 2024-03-26 18:28:16 +00:00
Tonye Jack
117616472f
fix: check for setting remote urls for forks (#2009) 2024-03-26 12:10:44 -06:00
Tonye Jack
4ff79362e5
fix: bug with prs from forks returning incorrect set of changed files (#2007)
Co-authored-by: GitHub Action <action@github.com>
2024-03-26 11:47:25 -06:00
Tonye Jack
0713a11242
Update README.md 2024-03-26 11:42:41 -06:00
renovate[bot]
064742427d chore(deps): update typescript-eslint monorepo to v7.4.0 2024-03-25 19:10:31 +00:00
renovate[bot]
efe5e6c7a4 chore(deps): lock file maintenance 2024-03-25 01:33:42 +00:00
tj-actions[bot]
01e9662a12
Upgraded to v43.0.1 (#2004)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-03-21 00:42:37 +00:00
renovate[bot]
20576b4b9e chore(deps): update dependency typescript to v5.4.3 2024-03-20 21:58:07 +00:00
Tonye Jack
077b23f6a6
fix: remove warning with detecting the local git repository when using Github's REST API (#2002)
Co-authored-by: GitHub Action <action@github.com>
2024-03-20 19:20:51 +00:00
Tonye Jack
02768050b1
chore: update inputs.ts adding comment about fetch_depth (#2000) 2024-03-20 14:29:59 +00:00
renovate[bot]
427adf47f0 chore(deps): update dependency @types/node to v20.11.30 2024-03-19 13:28:54 +00:00
dependabot[bot]
5c6aa49478
Bump @typescript-eslint/eslint-plugin from 7.3.0 to 7.3.1 (#1995)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2024-03-18 22:27:06 -06:00
renovate[bot]
aa0b62a2d0 chore(deps): update dependency @typescript-eslint/eslint-plugin to v7.3.1 2024-03-19 02:09:15 +00:00
dependabot[bot]
0320702dd5
Bump @typescript-eslint/parser from 7.3.0 to 7.3.1 (#1996)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 01:47:18 +00:00
renovate[bot]
38903688b4 chore(deps): update dependency @types/node to v20.11.29 2024-03-18 21:43:53 +00:00
renovate[bot]
98a74d2cd6 chore(deps): update typescript-eslint monorepo to v7.3.0 2024-03-18 17:46:43 +00:00
renovate[bot]
068000d9c6 chore(deps): lock file maintenance 2024-03-18 02:16:34 +00:00
renovate[bot]
490ac3999e chore(deps): update dependency @types/node to v20.11.28 2024-03-15 10:23:14 +00:00
Tonye Jack
2859a60726
Update README.md 2024-03-13 21:43:22 -06:00
tj-actions[bot]
d03038e4e4
Upgraded to v43 (#1990)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-03-13 17:06:28 -06:00
tj-actions[bot]
77af4bed28
Updated README.md (#1989)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2024-03-13 22:28:45 +00:00
Tonye Jack
a5cf6aa30c
feat: add support for returning true for any_{changed, modified, deleted} outputs when no patterns are specified (#1988)
Co-authored-by: GitHub Action <action@github.com>
2024-03-13 22:19:50 +00:00
renovate[bot]
15807c9c84 chore(deps): update dependency @types/node to v20.11.27 2024-03-13 16:39:47 +00:00
renovate[bot]
dc458cf753 chore(deps): update peter-evans/create-pull-request action to v6.0.2 2024-03-12 16:01:39 +00:00
renovate[bot]
92ca3eebd0 chore(deps): update dependency @types/lodash to v4.17.0 2024-03-12 11:21:16 +00:00
renovate[bot]
f591d0c7f0 chore(deps): update dependency @typescript-eslint/eslint-plugin to v7.2.0 2024-03-11 23:32:55 +00:00
renovate[bot]
35023362e2 chore(deps): update dependency @types/node to v20.11.26 2024-03-11 23:20:54 +00:00
renovate[bot]
e436cb6d85 chore(deps): update dependency @typescript-eslint/parser to v7.2.0 2024-03-11 18:12:31 +00:00
renovate[bot]
257d47dfba chore(deps): lock file maintenance 2024-03-11 01:16:09 +00:00
tj-actions[bot]
4918e11830
Upgraded to v42.1.0 (#1977)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-03-09 20:14:28 +00:00
tj-actions[bot]
aa08304bd4
Updated README.md (#1976)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2024-03-09 01:29:44 +00:00
Tonye Jack
008ba8ceec
feat: add matrix alias to simplify using outputs for matrix jobs (#1975)
Co-authored-by: GitHub Action <action@github.com>
2024-03-09 01:20:45 +00:00
tj-actions[bot]
fe6c3ea0ca
Upgraded to v42.0.7 (#1974)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-03-07 22:21:22 +00:00
GitHub Action
7fc073d922 Added missing changes and modified dist assets. 2024-03-07 22:11:09 +00:00
renovate[bot]
7e4bfc2f1f chore(deps): lock file maintenance 2024-03-07 22:11:09 +00:00
Tonye Jack
ef3a7f51d6
chore: add test for detecting changed-files in a nested directory (#1972) 2024-03-07 21:34:48 +00:00
Tonye Jack
a65c2f2100
Update README.md 2024-03-06 21:25:13 -07:00
GitHub Action
ea042d8095 Added missing changes and modified dist assets. 2024-03-06 18:49:07 +00:00
renovate[bot]
8293f8c984 chore(deps): update dependency typescript to v5.4.2 2024-03-06 18:49:07 +00:00
renovate[bot]
0ff732eeb3 chore(deps): update dependency @types/node to v20.11.25 2024-03-06 18:39:17 +00:00
tj-actions[bot]
8df6fc260f
Upgraded to v42.0.6 (#1968)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-03-06 16:42:51 +00:00
GitHub Action
d516645658 Added missing changes and modified dist assets. 2024-03-06 12:50:33 +00:00
renovate[bot]
2c97e7ea24 fix(deps): update dependency yaml to v2.4.1 2024-03-06 12:50:33 +00:00
renovate[bot]
1c8e606958 chore(deps): update typescript-eslint monorepo to v7.1.1 2024-03-04 18:15:53 +00:00
GitHub Action
74605cb326 Added missing changes and modified dist assets. 2024-03-04 00:18:25 +00:00
renovate[bot]
aa15b58e8a chore(deps): lock file maintenance 2024-03-04 00:18:25 +00:00
renovate[bot]
0a392e7438 chore(deps): update dependency eslint-plugin-github to v4.10.2 2024-02-29 23:36:05 +00:00
renovate[bot]
85efc7df8e chore(deps): update dependency @types/node to v20.11.24 2024-02-29 18:22:25 +00:00
renovate[bot]
2a095d24c2 chore(deps): update dependency @types/node to v20.11.23 2024-02-29 12:45:48 +00:00
renovate[bot]
ac3dc5e392
chore(deps): update tj-actions/verify-changed-files action to v19 (#1960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 01:16:44 +00:00
renovate[bot]
dd7e9d3b17 chore(deps): update dependency @types/node to v20.11.22 2024-02-28 20:16:24 +00:00
renovate[bot]
0647a31f54 chore(deps): update peter-evans/create-pull-request action to v6.0.1 2024-02-28 04:49:44 +00:00
renovate[bot]
9d67dd3dbe chore(deps): update dependency @types/node to v20.11.21 2024-02-28 00:41:14 +00:00
renovate[bot]
5acd7e3646 chore(deps): update typescript-eslint monorepo to v7.1.0 2024-02-26 20:18:46 +00:00
tj-actions[bot]
9f4af73d05
Upgraded to v42.0.5 (#1955)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-02-26 07:25:53 +00:00
renovate[bot]
800a282599 chore(deps): lock file maintenance 2024-02-26 02:02:02 +00:00
GitHub Action
31c4d150e6 Added missing changes and modified dist assets. 2024-02-25 16:58:14 +00:00
renovate[bot]
2a2a5b6b9c fix(deps): update dependency yaml to v2.4.0 2024-02-25 16:58:14 +00:00
Tonye Jack
d8dcc13244
chore: Update README.md (#1952) 2024-02-25 16:48:32 +00:00
renovate[bot]
639ce0e105 chore(deps): update dependency eslint to v8.57.0 2024-02-23 22:38:47 +00:00
GitHub Action
9d447b9959 Added missing changes and modified dist assets. 2024-02-23 04:24:39 +00:00
renovate[bot]
83bfc72efa chore(deps): lock file maintenance 2024-02-23 04:24:39 +00:00
renovate[bot]
879c8388c8 chore(deps): update dependency @types/node to v20.11.20 2024-02-22 19:58:37 +00:00
Tonye Jack
bb7502bd15
Update README.md 2024-02-21 07:20:22 -07:00
renovate[bot]
5c5539ced9 chore(deps): update typescript-eslint monorepo to v7.0.2 2024-02-19 19:54:17 +00:00
GitHub Action
c2039de114 Added missing changes and modified dist assets. 2024-02-19 00:16:07 +00:00
renovate[bot]
0cbc9bc448 chore(deps): lock file maintenance 2024-02-19 00:16:07 +00:00
tj-actions[bot]
9ef20a69dd
Updated README.md (#1943)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-02-18 05:12:36 +00:00
Tonye Jack
a617853c0f
chore: update action.yml (#1942) 2024-02-17 21:58:39 -07:00
tj-actions[bot]
5c1bceb76c
Upgraded to v42.0.4 (#1941)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-02-18 03:31:45 +00:00
Tonye Jack
3f54ebb830
chore: update formatting and add missing dist changes (#1940) 2024-02-17 20:20:58 -07:00
tj-actions[bot]
6f070cff38
Upgraded to v42.0.3 (#1939)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2024-02-17 22:43:08 +00:00
tj-actions[bot]
ec75ae5ab7
Updated README.md (#1938)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-02-17 15:32:19 -07:00
allcontributors[bot]
4333ab5b20
docs: add codesculpture as a contributor for code, and bug (#1937)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2024-02-17 15:31:24 -07:00
Aravind
e3cac49049
fix(payload_api, git_diff): Accessing correct property in payload and Replacing --quiet with --no-patch in git diff (#1934) 2024-02-17 15:31:02 -07:00
renovate[bot]
68bd4537bd
chore(deps): update github artifact actions to v4 (major) (#1936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-17 13:36:07 +00:00
renovate[bot]
f0ce41b71c chore(deps): update dependency eslint-plugin-jest to v27.9.0 2024-02-16 19:21:56 +00:00
renovate[bot]
ce451bf430 chore(deps): update dependency @types/node to v20.11.19 2024-02-15 19:08:56 +00:00
renovate[bot]
7592e9e855 chore(deps): update dependency @types/node to v20.11.18 2024-02-15 14:12:15 +00:00
renovate[bot]
999653c672 chore(deps): lock file maintenance 2024-02-13 21:04:48 +00:00
renovate[bot]
6cf4c21fdf chore(deps): update dependency eslint-plugin-jest to v27.8.0 2024-02-13 18:16:15 +00:00
Tonye Jack
09ee51bee3
chore: update codacy-analysis.yml (#1929) 2024-02-13 16:34:23 +00:00
Tonye Jack
8eced8a5df
Update README.md 2024-02-13 09:20:59 -07:00
renovate[bot]
13fa1402a7
chore(deps): update typescript-eslint monorepo to v7 (major) (#1927)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-12 22:21:01 +00:00
GitHub Action
07ac0ac168 Added missing changes and modified dist assets. 2024-02-12 01:14:37 +00:00
renovate[bot]
049d7fd639 chore(deps): lock file maintenance 2024-02-12 01:14:37 +00:00
renovate[bot]
2e90fbb74b chore(deps): update dependency @types/node to v20.11.17 2024-02-08 21:32:12 +00:00
renovate[bot]
2a9db54a6d chore(deps): update codacy/codacy-analysis-cli-action action to v4.4.0 2024-02-08 16:41:50 +00:00
renovate[bot]
d0d5671ef7 chore(deps): update actions/setup-node action to v4.0.2 2024-02-07 05:44:30 +00:00
Tonye Jack
97120ff1f5
chore: update README.md (#1922) 2024-02-06 22:33:30 -07:00
Tonye Jack
b2d4e1b488
Update README.md 2024-02-06 20:33:25 -07:00
Tonye Jack
9299962a59
chore: update workflow-run-example.yml (#1921) 2024-02-06 20:29:12 -07:00
KeisukeYamashita
ea35f7ea00
fix: broken link to matrix example workflow (#1918)
Co-authored-by: Tonye Jack <jtonye@ymail.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2024-02-06 20:18:39 -07:00
tj-actions[bot]
3399f8837f
Updated README.md (#1920)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-02-06 16:50:49 -07:00
allcontributors[bot]
ac897da4f1
docs: add KeisukeYamashita as a contributor for doc (#1919)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2024-02-06 16:48:51 -07:00
tj-actions[bot]
8e56bc097a
Updated README.md (#1917)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-02-05 19:51:58 +00:00
Tonye Jack
f6d3fe5179
Update action.yml 2024-02-05 12:42:54 -07:00
Tonye Jack
efa99ea361
Update README.md 2024-02-05 12:38:05 -07:00
Tonye Jack
6d8f9bd379
Update README.md 2024-02-05 12:34:02 -07:00
renovate[bot]
589fb70c81 chore(deps): update typescript-eslint monorepo to v6.21.0 2024-02-05 19:18:51 +00:00
tj-actions[bot]
7daee9e7cf
Updated README.md (#1915)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-02-05 05:03:52 +00:00
Tonye Jack
99c80bdd47
Update README.md 2024-02-04 21:55:53 -07:00
renovate[bot]
5e7cbf5fdb chore(deps): update dependency prettier to v3.2.5 2024-02-04 06:22:00 +00:00
renovate[bot]
b4d6d28988 chore(deps): lock file maintenance 2024-02-04 04:15:55 +00:00
renovate[bot]
8370e6e6ef
chore(deps): update tj-actions/verify-changed-files action to v18 (#1912)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-03 23:01:22 +00:00
tj-actions[bot]
aa31060851
Updated README.md (#1911)
Co-authored-by: jackton1 <17484350+jackton1@users.noreply.github.com>
2024-02-02 06:23:08 -07:00
Daniel Hill
54c56103aa
correct bash loop in examples (#1908)
Co-authored-by: Tonye Jack <jtonye@ymail.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2024-02-02 06:21:28 -07:00
allcontributors[bot]
e57fb1b8eb
docs: add dan-hill2802 as a contributor for doc (#1910)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2024-02-02 06:20:26 -07:00
Tonye Jack
926735a61e
chore: create greetings workflow (#1909) 2024-02-02 13:15:54 +00:00
Tonye Jack
d3ac2a064b
Update README.md 2024-02-02 05:26:23 -07:00
renovate[bot]
91df40b882 chore(deps): update dependency @types/node to v20.11.16 2024-02-02 00:55:22 +00:00
renovate[bot]
28396e9658 chore(deps): update dependency @types/jest to v29.5.12 2024-02-01 21:32:44 +00:00
renovate[bot]
3a66e2a7e4 chore(deps): update dependency @types/node to v20.11.15 2024-02-01 14:05:35 +00:00
renovate[bot]
35f3202fd5 chore(deps): update dependency @types/node to v20.11.14 2024-01-31 23:17:50 +00:00
renovate[bot]
2b30af482a
chore(deps): update peter-evans/create-pull-request action to v6 (#1903)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 13:06:56 +00:00
renovate[bot]
a93bcf46e0 chore(deps): update dependency @types/node to v20.11.13 2024-01-31 00:55:34 +00:00
renovate[bot]
6d4c555c7d chore(deps): update dependency @types/node to v20.11.12 2024-01-30 22:58:15 +00:00
renovate[bot]
507a8c703d chore(deps): update dependency @types/node to v20.11.11 2024-01-30 20:28:06 +00:00
Tonye Jack
3a7052c24a
chore: update test (#1899) 2024-01-30 15:58:53 +00:00
renovate[bot]
782eb123a9 chore(deps): update typescript-eslint monorepo to v6.20.0 2024-01-29 17:33:03 +00:00
renovate[bot]
9134dac8f6 chore(deps): lock file maintenance 2024-01-29 02:23:13 +00:00
tj-actions[bot]
df12603b45
Updated README.md (#1896)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2024-01-28 23:00:58 +00:00
allcontributors[bot]
bb9b5e8363
docs: add levenleven as a contributor for doc (#1893)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2024-01-28 15:53:00 -07:00
tj-actions[bot]
31b9c0a541
Updated README.md (#1894)
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com>
2024-01-28 20:24:30 +00:00
renovate[bot]
ba0a561b13 chore(deps): update dependency @types/node to v20.11.10 2024-01-28 20:15:14 +00:00
Aleksey Levenstein
8d35cbb00f
chore: fix broken matrix example links (#1891)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2024-01-28 20:02:05 +00:00
renovate[bot]
82dd6547dc chore(deps): update dependency @types/node to v20.11.9 2024-01-28 11:16:18 +00:00
renovate[bot]
6d42539842 chore(deps): lock file maintenance 2024-01-28 02:15:30 +00:00
renovate[bot]
08dedfb681 chore(deps): update dependency @types/node to v20.11.8 2024-01-27 16:43:26 +00:00
renovate[bot]
f6d9fa10e0 chore(deps): update dependency @types/node to v20.11.7 2024-01-26 07:40:09 +00:00
renovate[bot]
9eb0d763ae chore(deps): update dependency @types/uuid to v9.0.8 2024-01-26 01:13:50 +00:00
tj-actions[bot]
51d2f88f07
Upgraded to v42.0.2 (#1886)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2024-01-25 19:37:33 +00:00
Tonye Jack
90a06d6ba9
feat: enhance error handling for non-git directories (#1885)
Co-authored-by: GitHub Action <action@github.com>
2024-01-25 18:46:48 +00:00
tj-actions[bot]
2cb2c9234e
Upgraded to v42.0.1 (#1884)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2024-01-24 22:06:48 -07:00
renovate[bot]
ac21d93904 chore(deps): update dependency @types/node to v20.11.6 2024-01-24 08:44:11 +00:00
renovate[bot]
a4637ea6e7 chore(deps): update typescript-eslint monorepo to v6.19.1 2024-01-22 19:25:19 +00:00
renovate[bot]
fd9998cf5f chore(deps): update dependency ts-jest to v29.1.2 2024-01-22 16:38:49 +00:00
GitHub Action
ea024b2d7f Added missing changes and modified dist assets. 2024-01-22 00:53:04 +00:00
renovate[bot]
db4e584844 chore(deps): lock file maintenance 2024-01-22 00:53:04 +00:00
Tonye Jack
c6543c497a
chore: rename example worflows from test to example (#1878) 2024-01-21 05:54:00 +00:00
Tonye Jack
88f9f3efbb
chore: update README.md (#1877) 2024-01-20 21:42:48 -07:00
GitHub Action
3af07c2040 Added missing changes and modified dist assets. 2024-01-18 05:49:14 +00:00
Tonye Jack
3680129aa2 Update env.ts 2024-01-18 05:49:14 +00:00
renovate[bot]
5d866cbe77 chore(deps): lock file maintenance 2024-01-18 05:49:14 +00:00
renovate[bot]
346f237a17
chore(deps): update tj-actions/eslint-changed-files action to v23 (#1875)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 05:36:12 +00:00
tj-actions[bot]
c037f1e7c5
Upgraded to v42 (#1874)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2024-01-18 05:12:24 +00:00
Tonye Jack
ae82ed4ae0
feat: add support for include/exclude all nested files when a directory is specified and ends with a slash (#1873)
Co-authored-by: GitHub Action <action@github.com>
2024-01-17 21:57:33 -07:00
Tonye Jack
cbd59070e8
rename: unsupported REST API inputs constant name (#1872) 2024-01-18 03:39:20 +00:00
Tonye Jack
6c9dcea443
fix: update input warning (#1870)
Co-authored-by: tj-actions[bot] <109116665+tj-actions-bot@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2024-01-17 20:27:20 -07:00
renovate[bot]
79b060d445 chore(deps): update dependency prettier to v3.2.4 2024-01-17 11:20:13 +00:00
tj-actions[bot]
434b67ebc3
Upgraded to v41.1.2 (#1869)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2024-01-17 01:02:16 -07:00
36 changed files with 21187 additions and 7681 deletions

View File

@ -208,6 +208,52 @@
"test", "test",
"bug" "bug"
] ]
},
{
"login": "levenleven",
"name": "Aleksey Levenstein",
"avatar_url": "https://avatars.githubusercontent.com/u/6463364?v=4",
"profile": "https://github.com/levenleven",
"contributions": [
"doc"
]
},
{
"login": "dan-hill2802",
"name": "Daniel Hill",
"avatar_url": "https://avatars.githubusercontent.com/u/5046322?v=4",
"profile": "https://github.com/dan-hill2802",
"contributions": [
"doc"
]
},
{
"login": "KeisukeYamashita",
"name": "KeisukeYamashita",
"avatar_url": "https://avatars.githubusercontent.com/u/23056537?v=4",
"profile": "https://keisukeyamashita.com",
"contributions": [
"doc"
]
},
{
"login": "codesculpture",
"name": "Aravind",
"avatar_url": "https://avatars.githubusercontent.com/u/63452117?v=4",
"profile": "https://github.com/codesculpture",
"contributions": [
"code",
"bug"
]
},
{
"login": "Whadup",
"name": "Lukas Pfahler",
"avatar_url": "https://avatars.githubusercontent.com/u/2308119?v=4",
"profile": "https://lukaspfahler.de",
"contributions": [
"code"
]
} }
], ],
"contributorsPerLine": 7, "contributorsPerLine": 7,

View File

@ -24,11 +24,6 @@ permissions:
jobs: jobs:
codacy-security-scan: codacy-security-scan:
# Cancel other workflows that are running for the same branch
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
name: Codacy Security Scan name: Codacy Security Scan
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -39,7 +34,7 @@ jobs:
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis # Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI - name: Run Codacy Analysis CLI
continue-on-error: true continue-on-error: true
uses: codacy/codacy-analysis-cli-action@v4.3.0 uses: codacy/codacy-analysis-cli-action@v4.4.5
with: with:
# Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository # Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository
# You can also omit the token and run the tools that support default configurations # You can also omit the token and run the tools that support default configurations

18
.github/workflows/greetings.yml vendored Normal file
View File

@ -0,0 +1,18 @@
name: Greetings
on: [pull_request_target, issues]
permissions:
pull-requests: write
issues: write
jobs:
greeting:
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
continue-on-error: true
with:
repo-token: ${{ secrets.PAT_TOKEN }}
issue-message: "Thanks for reporting this issue, don't forget to star this project if you haven't already to help us reach a wider audience."
pr-message: "Thanks for implementing a fix, could you ensure that the test covers your changes if applicable."

View File

@ -1,4 +1,4 @@
name: Issue Comment Test name: Issue Comment Job Example
permissions: permissions:
contents: read contents: read

View File

@ -1,4 +1,4 @@
name: Manual Test name: Manual Triggered Job Example
permissions: permissions:
contents: read contents: read
@ -6,7 +6,6 @@ permissions:
on: on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
test: test:
name: Test changed-files name: Test changed-files

View File

@ -1,4 +1,4 @@
name: Matrix Test name: Matrix Example
permissions: permissions:
contents: read contents: read
@ -24,8 +24,7 @@ jobs:
id: changed-files id: changed-files
uses: ./ uses: ./
with: with:
json: true matrix: true
escape_json: false
- name: List all changed files - name: List all changed files
run: echo '${{ steps.changed-files.outputs.all_changed_files }}' run: echo '${{ steps.changed-files.outputs.all_changed_files }}'

View File

@ -1,4 +1,4 @@
name: Multi Job Test name: Multi Job Example
permissions: permissions:
contents: read contents: read

View File

@ -37,7 +37,7 @@ jobs:
- name: Run git-cliff - name: Run git-cliff
uses: tj-actions/git-cliff@v1 uses: tj-actions/git-cliff@v1
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2 uses: peter-evans/create-pull-request@v7.0.5
with: with:
base: "main" base: "main"
labels: "merge when passing" labels: "merge when passing"

View File

@ -2,7 +2,6 @@ name: CI
permissions: permissions:
contents: read contents: read
pull-requests: write
on: on:
push: push:
@ -35,6 +34,9 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
files_changed: ${{ steps.changed_files.outputs.files_changed }} files_changed: ${{ steps.changed_files.outputs.files_changed }}
permissions:
contents: read
pull-requests: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
@ -43,7 +45,7 @@ jobs:
repository: ${{ github.event.pull_request.head.repo.full_name }} repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Use Node.js 20.x - name: Use Node.js 20.x
uses: actions/setup-node@v4.0.1 uses: actions/setup-node@v4.1.0
with: with:
cache: 'yarn' cache: 'yarn'
node-version: '20.x' node-version: '20.x'
@ -58,7 +60,7 @@ jobs:
yarn install yarn install
- name: Run eslint on changed files - name: Run eslint on changed files
uses: tj-actions/eslint-changed-files@v22 uses: tj-actions/eslint-changed-files@v25
if: github.event_name == 'pull_request' if: github.event_name == 'pull_request'
with: with:
token: ${{ secrets.PAT_TOKEN }} token: ${{ secrets.PAT_TOKEN }}
@ -68,9 +70,12 @@ jobs:
- name: Run build and test - name: Run build and test
run: | run: |
yarn all yarn all
env:
GITHUB_EVENT_PULL_REQUEST_HEAD_REPO_FORK: ${{ github.event.pull_request.head.repo.fork }}
- name: Verify Changed files - name: Verify Changed files
uses: tj-actions/verify-changed-files@v17 uses: tj-actions/verify-changed-files@v20
if: github.actor != 'dependabot[bot]'
id: changed_files id: changed_files
with: with:
files: | files: |
@ -94,7 +99,7 @@ jobs:
branch: ${{ github.head_ref }} branch: ${{ github.head_ref }}
- name: Upload build assets - name: Upload build assets
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: build-assets name: build-assets
path: dist path: dist
@ -111,6 +116,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps: steps:
- name: Checkout into dir1 - name: Checkout into dir1
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -121,7 +128,7 @@ jobs:
path: dir1 path: dir1
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
path: dir1/dist path: dir1/dist
@ -147,7 +154,7 @@ jobs:
bash bash
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
path: dir2/dist path: dir2/dist
@ -185,7 +192,8 @@ jobs:
needs: build needs: build
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event_name == 'push' && needs.build.outputs.files_changed != 'true' if: github.event_name == 'push' && needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps: steps:
- name: Checkout branch - name: Checkout branch
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -194,7 +202,7 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -243,6 +251,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps: steps:
- name: Checkout branch - name: Checkout branch
@ -252,7 +262,7 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -285,6 +295,8 @@ jobs:
github.event_name == 'push' || github.event_name == 'push' ||
github.event_name == 'pull_request' github.event_name == 'pull_request'
) && needs.build.outputs.files_changed != 'true' ) && needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps: steps:
- name: Checkout branch - name: Checkout branch
@ -294,7 +306,7 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -315,6 +327,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
strategy: strategy:
fail-fast: false fail-fast: false
@ -331,7 +345,7 @@ jobs:
fetch-depth: ${{ matrix.fetch-depth }} fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -354,6 +368,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: github.event_name != 'push' && needs.build.outputs.files_changed != 'true' if: github.event_name != 'push' && needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps: steps:
- name: Checkout branch - name: Checkout branch
@ -362,7 +378,7 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -381,6 +397,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: github.event_name != 'push' && needs.build.outputs.files_changed != 'true' if: github.event_name != 'push' && needs.build.outputs.files_changed != 'true'
permissions:
contents: read
strategy: strategy:
fail-fast: false fail-fast: false
max-parallel: 4 max-parallel: 4
@ -396,7 +414,7 @@ jobs:
repository: ${{ github.event.pull_request.head.repo.full_name }} repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -415,13 +433,14 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps: steps:
- name: Checkout branch - name: Checkout branch
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -469,13 +488,14 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps: steps:
- name: Checkout branch - name: Checkout branch
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -535,7 +555,7 @@ jobs:
path: dir1 path: dir1
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
path: dir1/dist path: dir1/dist
@ -550,11 +570,83 @@ jobs:
shell: shell:
bash bash
test-dir-names-nested-folder:
name: Test changed-files with dir-names in a nested folder
runs-on: ubuntu-latest
needs: build
if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
submodules: true
fetch-depth: 0
- name: Download build assets
uses: actions/download-artifact@v4
with:
name: build-assets
path: dist
- name: Get changed files in the .github folder
id: changed-files
uses: ./
with:
path: .github
json: true
escape_json: false
dir_names: true
dir_names_exclude_current_dir: true
- name: Show output
run: |
echo "${{ toJSON(steps.changed-files.outputs) }}"
shell:
bash
test-non-existing-repository:
name: Test changed-files with non existing repository
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'push' && needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps:
- name: Checkout into dir1
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
submodules: true
fetch-depth: 0
path: dir1
- name: Download build assets
uses: actions/download-artifact@v4
with:
name: build-assets
path: dir1/dist
- name: Run changed-files with non existing repository
id: changed-files
continue-on-error: true
uses: ./dir1
- name: Verify failed
if: steps.changed-files.outcome != 'failure'
run: |
echo "Expected: (failure) got ${{ steps.changed-files.outcome }}"
exit 1
test-submodules: test-submodules:
name: Test changed-files with submodule name: Test changed-files with submodule
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
strategy: strategy:
fail-fast: false fail-fast: false
max-parallel: 4 max-parallel: 4
@ -570,7 +662,7 @@ jobs:
fetch-depth: ${{ matrix.fetch-depth }} fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -593,11 +685,34 @@ jobs:
echo "${{ toJSON(steps.changed-files.outputs) }}" echo "${{ toJSON(steps.changed-files.outputs) }}"
shell: shell:
bash bash
- name: Run changed-files excluding submodule
id: changed-files-exclude-submodule
uses: ./
with:
base_sha: "85bd869"
sha: "adde7bb"
fetch_depth: 60000
exclude_submodules: true
- name: Verify no added files
if: steps.changed-files-exclude-submodule.outputs.added_files != ''
run: |
echo "Expected: ('') got ${{ steps.changed-files-exclude-submodule.outputs.added_files }}"
exit 1
- name: Show output
run: |
echo "${{ toJSON(steps.changed-files-exclude-submodule.outputs) }}"
shell:
bash
test-yaml: test-yaml:
name: Test changed-files with yaml name: Test changed-files with yaml
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
strategy: strategy:
fail-fast: false fail-fast: false
max-parallel: 4 max-parallel: 4
@ -613,7 +728,7 @@ jobs:
fetch-depth: ${{ matrix.fetch-depth }} fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -645,6 +760,24 @@ jobs:
shell: shell:
bash bash
- name: Run changed-files with files_yaml, files_ignore_yaml
id: changed-files-ignore
uses: ./
with:
files_yaml: |
test:
- test/**.txt
- test/**.md
files_ignore_yaml: |
test:
- test/test.txt
- name: Show output
run: |
echo "${{ toJSON(steps.changed-files-ignore.outputs) }}"
shell:
bash
- name: Run changed-files with files_yaml, json and write_output_files - name: Run changed-files with files_yaml, json and write_output_files
id: changed-files-json-write-output-files id: changed-files-json-write-output-files
uses: ./ uses: ./
@ -673,6 +806,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
strategy: strategy:
fail-fast: false fail-fast: false
max-parallel: 4 max-parallel: 4
@ -688,7 +823,7 @@ jobs:
fetch-depth: ${{ matrix.fetch-depth }} fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -863,6 +998,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps: steps:
- name: Checkout branch - name: Checkout branch
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -893,14 +1030,19 @@ jobs:
bash bash
test-dir-names-deleted-files-include-only-deleted-dirs-directory: test-dir-names-deleted-files-include-only-deleted-dirs-directory:
name: Test dir names deleted files include only deleted dirs name: Test dir names deleted files include only deleted dirs
runs-on: ubuntu-latest runs-on: ${{ matrix.platform }}
needs: build needs: build
strategy:
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps: steps:
- name: Checkout branch - name: Checkout branch
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
ref: cd1e384723e4d1a184568182ac2b27c53ebf017f ref: ${{ github.event.pull_request.head.sha }}
repository: ${{ github.event.pull_request.head.repo.full_name }} repository: ${{ github.event.pull_request.head.repo.full_name }}
submodules: true submodules: true
fetch-depth: 2 fetch-depth: 2
@ -912,6 +1054,7 @@ jobs:
sha: cd1e384723e4d1a184568182ac2b27c53ebf017f sha: cd1e384723e4d1a184568182ac2b27c53ebf017f
dir_names: true dir_names: true
dir_names_deleted_files_include_only_deleted_dirs: true dir_names_deleted_files_include_only_deleted_dirs: true
fetch_depth: 60000
- name: Show output - name: Show output
run: | run: |
echo '${{ toJSON(steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory.outputs) }}' echo '${{ toJSON(steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory.outputs) }}'
@ -931,12 +1074,43 @@ jobs:
exit 1 exit 1
shell: shell:
bash bash
- name: Run changed-files with dir_names and dir_names_deleted_files_include_only_deleted_dirs with the test directory deleted returns posix path separator
id: changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory-posix-path-separator
uses: ./
with:
base_sha: a52f8621d26d5d9f54b80f74bda2d9eedff94693
sha: cd1e384723e4d1a184568182ac2b27c53ebf017f
dir_names: true
dir_names_deleted_files_include_only_deleted_dirs: true
use_posix_path_separator: true
fetch_depth: 60000
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory-posix-path-separator.outputs) }}'
shell:
bash
- name: Check deleted_files output on non windows platform
if: steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory-posix-path-separator.outputs.deleted_files != 'test/test3' && runner.os != 'Windows'
run: |
echo "Invalid output: Expected (test/test3) got (${{ steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory-posix-path-separator.outputs.deleted_files }})"
exit 1
shell:
bash
- name: Check deleted_files output on windows platform
if: "!contains(steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory-posix-path-separator.outputs.deleted_files, 'test/test3') && runner.os == 'Windows'"
run: |
echo "Invalid output: Expected (test/test3) got (${{ steps.changed-files-dir-names-deleted-files-include-only-deleted-dirs-directory-posix-path-separator.outputs.deleted_files }})"
exit 1
shell:
bash
test-since-last-remote-commit: test-since-last-remote-commit:
name: Test changed-files since last remote commit name: Test changed-files since last remote commit
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
strategy: strategy:
fail-fast: false fail-fast: false
max-parallel: 4 max-parallel: 4
@ -953,7 +1127,7 @@ jobs:
fetch-depth: ${{ matrix.fetch-depth }} fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
@ -964,10 +1138,10 @@ jobs:
with: with:
since_last_remote_commit: true since_last_remote_commit: true
- name: Verify failed - name: Verify succeeded pull_request(closed)
if: steps.changed-files-since-last-remote-commit.outcome != 'failure' && matrix.fetch-depth == 1 && github.event.action == 'closed' && github.event_name == 'pull_request' if: steps.changed-files-since-last-remote-commit.outcome != 'success' && matrix.fetch-depth == 1 && github.event.action == 'closed' && github.event_name == 'pull_request'
run: | run: |
echo "Expected: (failure) got ${{ steps.changed-files-since-last-remote-commit.outcome }}" echo "Expected: (success) got ${{ steps.changed-files-since-last-remote-commit.outcome }}"
exit 1 exit 1
- name: Verify succeeded - name: Verify succeeded
@ -987,6 +1161,8 @@ jobs:
runs-on: ${{ matrix.platform }} runs-on: ${{ matrix.platform }}
needs: build needs: build
if: needs.build.outputs.files_changed != 'true' if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
strategy: strategy:
fail-fast: false fail-fast: false
max-parallel: 4 max-parallel: 4
@ -1002,7 +1178,7 @@ jobs:
repository: ${{ github.event.pull_request.head.repo.full_name }} repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: ${{ matrix.fetch-depth }} fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets - name: Download build assets
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: build-assets name: build-assets
- name: Dump GitHub context - name: Dump GitHub context
@ -1017,7 +1193,7 @@ jobs:
echo '${{ toJSON(steps.changed-files.outputs) }}' echo '${{ toJSON(steps.changed-files.outputs) }}'
shell: shell:
bash bash
- name: Run changed-files with dir name - name: Run changed-files with dir name pattern
id: changed-files-dir-name id: changed-files-dir-name
uses: ./ uses: ./
with: with:

View File

@ -27,7 +27,7 @@ jobs:
uses: tj-actions/remark@v3 uses: tj-actions/remark@v3
- name: Verify Changed files - name: Verify Changed files
uses: tj-actions/verify-changed-files@v17 uses: tj-actions/verify-changed-files@v20
id: verify_changed_files id: verify_changed_files
with: with:
files: | files: |
@ -41,7 +41,7 @@ jobs:
- name: Create Pull Request - name: Create Pull Request
if: failure() if: failure()
uses: peter-evans/create-pull-request@v5 uses: peter-evans/create-pull-request@v7
with: with:
base: "main" base: "main"
labels: "merge when passing" labels: "merge when passing"

View File

@ -0,0 +1,41 @@
name: Workflow Run Example
on:
workflow_run:
workflows: [Matrix Example]
types: [completed]
permissions:
contents: read
jobs:
on-success:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: ./
- name: Echo list of changed files on success
run: |
echo "Changed files on success:"
echo "${{ steps.changed-files.outputs.all_changed_files }}"
on-failure:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: ./
- name: Echo list of changed files on failure
run: |
echo "Changed files on failure:"
echo "${{ steps.changed-files.outputs.all_changed_files }}"

View File

@ -1,20 +0,0 @@
name: Workflow Run Example
on:
workflow_run:
workflows: [Matrix Test]
types: [completed]
permissions:
contents: read
jobs:
on-success:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- run: echo 'The triggering workflow passed'
on-failure:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- run: echo 'The triggering workflow failed'

1356
HISTORY.md

File diff suppressed because it is too large Load Diff

455
README.md
View File

@ -1,7 +1,7 @@
[![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge\&logo=ubuntu\&logoColor=white)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) [![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge\&logo=ubuntu\&logoColor=white)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)
[![Mac OS](https://img.shields.io/badge/mac%20os-000000?style=for-the-badge\&logo=macos\&logoColor=F0F0F0)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) [![Mac OS](https://img.shields.io/badge/mac%20os-000000?style=for-the-badge\&logo=macos\&logoColor=F0F0F0)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)
[![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\&logo=windows\&logoColor=white)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) [![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\&logo=windows\&logoColor=white)](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)
[![Public workflows that use this action.](https://img.shields.io/endpoint?style=for-the-badge\&url=https%3A%2F%2Fused-by.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3Dtj-actions%2Fchanged-files%26badge%3Dtrue)](https://github.com/search?o=desc\&q=tj-actions+changed-files+language%3AYAML\&s=\&type=Code) [![Public workflows that use this action.](https://img.shields.io/endpoint?style=for-the-badge\&url=https%3A%2F%2Fused-by.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3Dtj-actions%2Fchanged-files%26package_id%3DUGFja2FnZS0yOTQyNTU4MDk5%26badge%3Dtrue)](https://github.com/search?o=desc\&q=tj-actions+changed-files+language%3AYAML\&s=\&type=Code)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/4fe2f49c3ab144b0bbe4effc85a061a0)](https://app.codacy.com/gh/tj-actions/changed-files/dashboard?utm_source=gh\&utm_medium=referral\&utm_content=\&utm_campaign=Badge_grade) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/4fe2f49c3ab144b0bbe4effc85a061a0)](https://app.codacy.com/gh/tj-actions/changed-files/dashboard?utm_source=gh\&utm_medium=referral\&utm_content=\&utm_campaign=Badge_grade)
[![CI](https://github.com/tj-actions/changed-files/actions/workflows/test.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/test.yml) [![CI](https://github.com/tj-actions/changed-files/actions/workflows/test.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/test.yml)
@ -9,26 +9,26 @@
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-22-orange.svg?style=flat-square)](#contributors-) [![All Contributors](https://img.shields.io/badge/all_contributors-27-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END --> <!-- ALL-CONTRIBUTORS-BADGE:END -->
## changed-files ## changed-files
Effortlessly track all changed files and directories relative to a target branch, preceding commit or the last remote commit returning **relative paths** from the project root using this GitHub action. Effortlessly track all changed files and directories relative to a target branch, the current branch (preceding commit or the last remote commit), multiple branches, or custom commits returning **relative paths** from the project root using this GitHub action.
> \[!NOTE] > \[!NOTE]
> >
> * This action solely identifies files that have changed within the context of events such as `pull_request*`, `push`, and more. However, it doesn't detect pending uncommitted changes created during the workflow execution. > * This action solely identifies files that have changed for events such as [`pull_request*`, `push`, `merge_group`, `release`, and many more](#other-supported-events-electron). However, it doesn't detect pending uncommitted changes created during the workflow execution.
> >
> See: https://github.com/tj-actions/verify-changed-files instead > See: https://github.com/tj-actions/verify-changed-files instead.
## Table of contents ## Table of contents
* [Features 🚀](#features-) * [Features 🚀](#features-)
* [Usage 💻](#usage-) * [Usage 💻](#usage-)
* [On `pull_request` 🔀](#on-pull_request-) * [On `pull_request` 🔀](#on-pull_request-)
* [Using local .git history 📁](#using-local-git-history-) * [Using local .git directory 📁](#using-local-git-directory-)
* [Using Github's API :octocat:](#using-githubs-api-octocat) * [Using Github's API :octocat:](#using-githubs-api-octocat)
* [On `push` ⬆️](#on-push-) * [On `push` ⬆️](#on-push-)
* [Other supported events :electron:](#other-supported-events-electron) * [Other supported events :electron:](#other-supported-events-electron)
@ -49,18 +49,18 @@ Effortlessly track all changed files and directories relative to a target branch
## Features 🚀 ## Features 🚀
* Fast execution, averaging 0-10 seconds. * Fast execution, averaging 0-10 seconds.
* Leverages either [Github's REST API](https://docs.github.com/en/rest/reference/repos#list-commits) or [Git's native diff](https://git-scm.com/docs/git-diff) to determine changed files. * Leverages either [Github's REST API](https://docs.github.com/en/rest/reference/repos#list-commits) or [Git's native diff command](https://git-scm.com/docs/git-diff) to determine changed files.
* Facilitates easy debugging. * Facilitates easy debugging.
* Scales to handle large/mono repositories. * Scales to handle large/mono repositories.
* Supports Git submodules. * Supports Git submodules.
* Supports [merge queues](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) for pull requests. * Supports [merge queues](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) for pull requests.
* Generates escaped [JSON output for running matrix jobs](https://github.com/tj-actions/changed-files/blob/main/.github/workflows/matrix-test.yml) based on changed files. * Generates escaped [JSON output for running matrix jobs](https://github.com/tj-actions/changed-files/blob/main/.github/workflows/matrix-example.yml) based on changed files.
* Lists changed directories. * Lists changed directories.
* Limits matching changed directories to a specified maximum depth. * Limits matching changed directories to a specified maximum depth.
* Optionally excludes the current directory. * Optionally excludes the current directory.
* Writes outputs to a designated `.txt` or `.json` file for further processing. * Writes outputs to a designated `.txt` or `.json` file for further processing.
* Restores deleted files to their previous location or a newly specified location. * Restores deleted files to their previous location or a newly specified location.
* Supports fetching a fixed number of commits which improves performance. * Supports fetching a fixed number of commits, which improves performance.
* Compatible with all platforms (Linux, MacOS, Windows). * Compatible with all platforms (Linux, MacOS, Windows).
* Supports [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners). * Supports [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners).
* Supports [GitHub Enterprise Server](https://docs.github.com/en/enterprise-server@3.3/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server). * Supports [GitHub Enterprise Server](https://docs.github.com/en/enterprise-server@3.3/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server).
@ -97,7 +97,7 @@ Visit the [discussions for more information](https://github.com/tj-actions/chang
Detect changes to all files in a Pull request relative to the target branch or since the last pushed commit. Detect changes to all files in a Pull request relative to the target branch or since the last pushed commit.
#### Using local .git history 📁 #### Using local .git directory 📁
```yaml ```yaml
name: CI name: CI
@ -116,13 +116,13 @@ jobs:
name: Test changed-files name: Test changed-files
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
# -----------------------------------------------------------------------------------------------------------
# Example 1 # Example 1
# -----------------------------------------------------------------------------------------------------------
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
# To compare changes between the current commit and the last pushed remote commit set `since_last_remote_commit: true`. e.g # To compare changes between the current commit and the last pushed remote commit set `since_last_remote_commit: true`. e.g
# with: # with:
# since_last_remote_commit: true # since_last_remote_commit: true
@ -131,32 +131,37 @@ jobs:
env: env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: | run: |
for file in "$ALL_CHANGED_FILES"; do for file in ${ALL_CHANGED_FILES}; do
echo "$file was changed" echo "$file was changed"
done done
# -----------------------------------------------------------------------------------------------------------
# Example 2 # Example 2
# -----------------------------------------------------------------------------------------------------------
- name: Get all changed markdown files - name: Get all changed markdown files
id: changed-markdown-files id: changed-markdown-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
# Avoid using single or double quotes for multiline patterns # Avoid using single or double quotes for multiline patterns
files: | files: |
**.md **.md
docs/**.md
- name: List all changed files markdown files - name: List all changed files markdown files
if: steps.changed-markdown-files.outputs.any_changed == 'true' if: steps.changed-markdown-files.outputs.any_changed == 'true'
env: env:
ALL_CHANGED_FILES: ${{ steps.changed-markdown-files.outputs.all_changed_files }} ALL_CHANGED_FILES: ${{ steps.changed-markdown-files.outputs.all_changed_files }}
run: | run: |
for file in "$ALL_CHANGED_FILES"; do for file in ${ALL_CHANGED_FILES}; do
echo "$file was changed" echo "$file was changed"
done done
# -----------------------------------------------------------------------------------------------------------
# Example 3 # Example 3
# -----------------------------------------------------------------------------------------------------------
- name: Get all test, doc and src files that have changed - name: Get all test, doc and src files that have changed
id: changed-files-yaml id: changed-files-yaml
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
files_yaml: | files_yaml: |
doc: doc:
@ -186,10 +191,12 @@ jobs:
echo "One or more doc file(s) has changed." echo "One or more doc file(s) has changed."
echo "List all the files that have changed: $DOC_ALL_CHANGED_FILES" echo "List all the files that have changed: $DOC_ALL_CHANGED_FILES"
# Example 3 # -----------------------------------------------------------------------------------------------------------
# Example 4
# -----------------------------------------------------------------------------------------------------------
- name: Get changed files in the docs folder - name: Get changed files in the docs folder
id: changed-files-specific id: changed-files-specific
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
files: docs/*.{js,html} # Alternatively using: `docs/**` files: docs/*.{js,html} # Alternatively using: `docs/**`
files_ignore: docs/static.js files_ignore: docs/static.js
@ -221,7 +228,7 @@ jobs:
# NOTE: # NOTE:
# - This is limited to pull_request* events and would raise an error for other events. # - This is limited to pull_request* events and would raise an error for other events.
# - A maximum of 3000 files can be returned. # - A maximum of 3000 files can be returned.
# - For more flexibility and no limitations see "Using local .git history" above. # - For more flexibility and no limitations see "Using local .git directory" above.
runs-on: ubuntu-latest # windows-latest || macos-latest runs-on: ubuntu-latest # windows-latest || macos-latest
name: Test changed-files name: Test changed-files
@ -231,13 +238,13 @@ jobs:
steps: steps:
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
- name: List all changed files - name: List all changed files
env: env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: | run: |
for file in "$ALL_CHANGED_FILES"; do for file in ${ALL_CHANGED_FILES}; do
echo "$file was changed" echo "$file was changed"
done done
``` ```
@ -274,14 +281,14 @@ jobs:
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
# NOTE: `since_last_remote_commit: true` is implied by default and falls back to the previous local commit. # NOTE: `since_last_remote_commit: true` is implied by default and falls back to the previous local commit.
- name: List all changed files - name: List all changed files
env: env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: | run: |
for file in "$ALL_CHANGED_FILES"; do for file in ${ALL_CHANGED_FILES}; do
echo "$file was changed" echo "$file was changed"
done done
... ...
@ -292,6 +299,7 @@ jobs:
* [schedule](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule) * [schedule](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule)
* [release](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release) * [release](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release)
* [workflow\_dispatch](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch) * [workflow\_dispatch](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch)
* [workflow\_run](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run)
* [merge\_group](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#merge_group) * [merge\_group](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#merge_group)
* [issue\_comment](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#issue_comment) * [issue\_comment](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#issue_comment)
* ...and many more * ...and many more
@ -312,14 +320,15 @@ Support this project with a :star:
> >
> * When using `files_yaml*` inputs: > * When using `files_yaml*` inputs:
> * All keys must start with a letter or `_` and contain only alphanumeric characters, `-`, or `_`. > * All keys must start with a letter or `_` and contain only alphanumeric characters, `-`, or `_`.
> For example, `test` or `test_key` or `tesT-key` are all valid. >
> For example, `test` or `test_key` or `test-key` or `_test_key` are all valid choices.
## Inputs ⚙️ ## Inputs ⚙️
<!-- AUTO-DOC-INPUT:START - Do not remove or modify this section --> <!-- AUTO-DOC-INPUT:START - Do not remove or modify this section -->
```yaml ```yaml
- uses: tj-actions/changed-files@v41 - uses: tj-actions/changed-files@v45
id: changed-files id: changed-files
with: with:
# Github API URL. # Github API URL.
@ -327,52 +336,68 @@ Support this project with a :star:
# Default: "${{ github.api_url }}" # Default: "${{ github.api_url }}"
api_url: '' api_url: ''
# Specify a different base commit SHA or branch used # Specify a different base commit
# for comparing changes # SHA or branch used for
# comparing changes
# Type: string # Type: string
base_sha: '' base_sha: ''
# Exclude changes outside the current directory and show path # Exclude changes outside the current
# names relative to it. NOTE: This requires you to # directory and show path names
# specify the top-level directory via the `path` input. # relative to it. NOTE: This
# requires you to specify the
# top-level directory via the `path`
# input.
# Type: boolean # Type: boolean
# Default: "true" # Default: "true"
diff_relative: '' diff_relative: ''
# Output unique changed directories instead of filenames. NOTE: This # Output unique changed directories instead
# returns `.` for changed files located in the current # of filenames. NOTE: This returns
# working directory which defaults to `$GITHUB_WORKSPACE`. # `.` for changed files located
# in the current working directory
# which defaults to `$GITHUB_WORKSPACE`.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
dir_names: '' dir_names: ''
# Include only directories that have been deleted as opposed # Include only directories that have
# to directory names of files that have been deleted # been deleted as opposed to
# in the `deleted_files` output when `dir_names` is set to # directory names of files that
# `true`. # have been deleted in the
# `deleted_files` output when `dir_names` is
# set to `true`.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
dir_names_deleted_files_include_only_deleted_dirs: '' dir_names_deleted_files_include_only_deleted_dirs: ''
# Exclude the current directory represented by `.` from the # Exclude the current directory represented
# output when `dir_names` is set to `true`. # by `.` from the output
# when `dir_names` is set to
# `true`.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
dir_names_exclude_current_dir: '' dir_names_exclude_current_dir: ''
# File and directory patterns to include in the output # File and directory patterns to
# when `dir_names` is set to `true`. NOTE: This returns # include in the output when
# only the matching files and also the directory names. # `dir_names` is set to `true`.
# NOTE: This returns only the
# matching files and also the
# directory names.
# Type: string # Type: string
dir_names_include_files: '' dir_names_include_files: ''
# Separator used to split the `dir_names_include_files` input # Separator used to split the
# `dir_names_include_files` input
# Type: string # Type: string
# Default: "\n" # Default: "\n"
dir_names_include_files_separator: '' dir_names_include_files_separator: ''
# Limit the directory output to a maximum depth e.g # Limit the directory output to
# `test/test1/test2` with max depth of `2` returns `test/test1`. # a maximum depth e.g `test/test1/test2`
# with max depth of `2`
# returns `test/test1`.
# Type: string # Type: string
dir_names_max_depth: '' dir_names_max_depth: ''
@ -381,12 +406,19 @@ Support this project with a :star:
# Default: "true" # Default: "true"
escape_json: '' escape_json: ''
# Fail when the initial diff fails. # Exclude changes to submodules.
# Type: boolean
# Default: "false"
exclude_submodules: ''
# Fail when the initial diff
# fails.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
fail_on_initial_diff_error: '' fail_on_initial_diff_error: ''
# Fail when the submodule diff fails. # Fail when the submodule diff
# fails.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
fail_on_submodule_diff_error: '' fail_on_submodule_diff_error: ''
@ -396,105 +428,140 @@ Support this project with a :star:
# Default: "false" # Default: "false"
fetch_additional_submodule_history: '' fetch_additional_submodule_history: ''
# Depth of additional branch history fetched. NOTE: This can # Depth of additional branch history
# be adjusted to resolve errors with insufficient history. # fetched. NOTE: This can be
# adjusted to resolve errors with
# insufficient history.
# Type: string # Type: string
# Default: "50" # Default: "25"
fetch_depth: '' fetch_depth: ''
# File and directory patterns used to detect changes (Defaults to the entire repo if unset). # Maximum number of retries to
# NOTE: Multiline file/directory patterns should not include quotes. # fetch missing history.
# Type: string
# Default: "20"
fetch_missing_history_max_retries: ''
# File and directory patterns used
# to detect changes (Defaults to the entire repo if unset). NOTE:
# Multiline file/directory patterns should not
# include quotes.
# Type: string # Type: string
files: '' files: ''
# Source file(s) used to populate the `files` input. # Source file(s) used to populate
# the `files` input.
# Type: string # Type: string
files_from_source_file: '' files_from_source_file: ''
# Separator used to split the `files_from_source_file` input. # Separator used to split the
# `files_from_source_file` input.
# Type: string # Type: string
# Default: "\n" # Default: "\n"
files_from_source_file_separator: '' files_from_source_file_separator: ''
# Ignore changes to these file(s). NOTE: Multiline file/directory patterns # Ignore changes to these file(s).
# should not include quotes. # NOTE: Multiline file/directory patterns should
# not include quotes.
# Type: string # Type: string
files_ignore: '' files_ignore: ''
# Source file(s) used to populate the `files_ignore` input # Source file(s) used to populate
# the `files_ignore` input
# Type: string # Type: string
files_ignore_from_source_file: '' files_ignore_from_source_file: ''
# Separator used to split the `files_ignore_from_source_file` input # Separator used to split the
# `files_ignore_from_source_file` input
# Type: string # Type: string
# Default: "\n" # Default: "\n"
files_ignore_from_source_file_separator: '' files_ignore_from_source_file_separator: ''
# Separator used to split the `files_ignore` input # Separator used to split the
# `files_ignore` input
# Type: string # Type: string
# Default: "\n" # Default: "\n"
files_ignore_separator: '' files_ignore_separator: ''
# YAML used to define a set of file patterns # YAML used to define a
# to ignore changes # set of file patterns to
# ignore changes
# Type: string # Type: string
files_ignore_yaml: '' files_ignore_yaml: ''
# Source file(s) used to populate the `files_ignore_yaml` input. Example: # Source file(s) used to populate
# https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml # the `files_ignore_yaml` input. Example: https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml
# Type: string # Type: string
files_ignore_yaml_from_source_file: '' files_ignore_yaml_from_source_file: ''
# Separator used to split the `files_ignore_yaml_from_source_file` input # Separator used to split the
# `files_ignore_yaml_from_source_file` input
# Type: string # Type: string
# Default: "\n" # Default: "\n"
files_ignore_yaml_from_source_file_separator: '' files_ignore_yaml_from_source_file_separator: ''
# Separator used to split the `files` input # Separator used to split the
# `files` input
# Type: string # Type: string
# Default: "\n" # Default: "\n"
files_separator: '' files_separator: ''
# YAML used to define a set of file patterns # YAML used to define a
# to detect changes # set of file patterns to
# detect changes
# Type: string # Type: string
files_yaml: '' files_yaml: ''
# Source file(s) used to populate the `files_yaml` input. Example: # Source file(s) used to populate
# https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml # the `files_yaml` input. Example: https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml
# Type: string # Type: string
files_yaml_from_source_file: '' files_yaml_from_source_file: ''
# Separator used to split the `files_yaml_from_source_file` input # Separator used to split the
# `files_yaml_from_source_file` input
# Type: string # Type: string
# Default: "\n" # Default: "\n"
files_yaml_from_source_file_separator: '' files_yaml_from_source_file_separator: ''
# Include `all_old_new_renamed_files` output. Note this can generate a large # Include `all_old_new_renamed_files` output. Note this
# output See: #501. # can generate a large output
# See: #501.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
include_all_old_new_renamed_files: '' include_all_old_new_renamed_files: ''
# Output list of changed files in a JSON formatted # Output list of changed files
# string which can be used for matrix jobs. Example: # in a JSON formatted string
# https://github.com/tj-actions/changed-files/blob/main/.github/workflows/matrix-test.yml # which can be used for
# matrix jobs. Example: https://github.com/tj-actions/changed-files/blob/main/.github/workflows/matrix-example.yml
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
json: '' json: ''
# Apply the negation patterns first. NOTE: This affects how # Output changed files in a
# changed files are matched. # format that can be used
# for matrix jobs. Alias for
# setting inputs `json` to `true`
# and `escape_json` to `false`.
# Type: boolean
# Default: "false"
matrix: ''
# Apply the negation patterns first.
# NOTE: This affects how changed
# files are matched.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
negation_patterns_first: '' negation_patterns_first: ''
# Split character for old and new renamed filename pairs. # Split character for old and
# new renamed filename pairs.
# Type: string # Type: string
# Default: " " # Default: " "
old_new_files_separator: '' old_new_files_separator: ''
# Split character for old and new filename pairs. # Split character for old and
# new filename pairs.
# Type: string # Type: string
# Default: "," # Default: ","
old_new_separator: '' old_new_separator: ''
@ -504,19 +571,22 @@ Support this project with a :star:
# Default: ".github/outputs" # Default: ".github/outputs"
output_dir: '' output_dir: ''
# Output renamed files as deleted and added files. # Output renamed files as deleted
# and added files.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
output_renamed_files_as_deleted_and_added: '' output_renamed_files_as_deleted_and_added: ''
# Specify a relative path under `$GITHUB_WORKSPACE` to locate the # Specify a relative path under
# repository. # `$GITHUB_WORKSPACE` to locate the repository.
# Type: string # Type: string
# Default: "." # Default: "."
path: '' path: ''
# Use non-ASCII characters to match files and output the # Use non-ASCII characters to match
# filenames completely verbatim by setting this to `false` # files and output the filenames
# completely verbatim by setting this
# to `false`
# Type: boolean # Type: boolean
# Default: "true" # Default: "true"
quotepath: '' quotepath: ''
@ -526,35 +596,41 @@ Support this project with a :star:
# Default: "false" # Default: "false"
recover_deleted_files: '' recover_deleted_files: ''
# Recover deleted files to a new destination directory, defaults # Recover deleted files to a
# to the original location. # new destination directory, defaults to
# the original location.
# Type: string # Type: string
recover_deleted_files_to_destination: '' recover_deleted_files_to_destination: ''
# File and directory patterns used to recover deleted files, # File and directory patterns used
# defaults to the patterns provided via the `files`, `files_from_source_file`, # to recover deleted files, defaults
# `files_ignore` and `files_ignore_from_source_file` inputs or all deleted files if # to the patterns provided via
# no patterns are provided. # the `files`, `files_from_source_file`, `files_ignore` and
# `files_ignore_from_source_file` inputs or all deleted
# files if no patterns are
# provided.
# Type: string # Type: string
recover_files: '' recover_files: ''
# File and directory patterns to ignore when recovering deleted # File and directory patterns to
# files. # ignore when recovering deleted files.
# Type: string # Type: string
recover_files_ignore: '' recover_files_ignore: ''
# Separator used to split the `recover_files_ignore` input # Separator used to split the
# `recover_files_ignore` input
# Type: string # Type: string
# Default: "\n" # Default: "\n"
recover_files_ignore_separator: '' recover_files_ignore_separator: ''
# Separator used to split the `recover_files` input # Separator used to split the
# `recover_files` input
# Type: string # Type: string
# Default: "\n" # Default: "\n"
recover_files_separator: '' recover_files_separator: ''
# Apply sanitization to output filenames before being set as # Apply sanitization to output filenames
# output. # before being set as output.
# Type: boolean # Type: boolean
# Default: "true" # Default: "true"
safe_output: '' safe_output: ''
@ -564,53 +640,83 @@ Support this project with a :star:
# Default: " " # Default: " "
separator: '' separator: ''
# Specify a different commit SHA or branch used for # Specify a different commit SHA
# comparing changes # or branch used for comparing
# changes
# Type: string # Type: string
sha: '' sha: ''
# Get changed files for commits whose timestamp is older # Get changed files for commits
# than the given time. # whose timestamp is older than
# the given time.
# Type: string # Type: string
since: '' since: ''
# Use the last commit on the remote branch as # Use the last commit on
# the `base_sha`. Defaults to the last non-merge commit on # the remote branch as the
# the target branch for pull request events and the # `base_sha`. Defaults to the last
# previous remote commit of the current branch for push # non-merge commit on the target
# events. # branch for pull request events
# and the previous remote commit
# of the current branch for
# push events.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
since_last_remote_commit: '' since_last_remote_commit: ''
# Skip the initial fetch to improve performance for shallow # Skip initially fetching additional history
# repositories. NOTE: This could lead to errors with missing # to improve performance for shallow
# history and the intended use is limited to when # repositories. NOTE: This could lead
# you've fetched the history necessary to perform the diff. # to errors with missing history.
# It's intended to be used
# when you've fetched all necessary
# history to perform the diff.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
skip_initial_fetch: '' skip_initial_fetch: ''
# GitHub token used to fetch changed files from Github's # Tags pattern to ignore.
# API. # Type: string
tags_ignore_pattern: ''
# Tags pattern to include.
# Type: string
# Default: "*"
tags_pattern: ''
# GitHub token used to fetch
# changed files from Github's API.
# Type: string # Type: string
# Default: "${{ github.token }}" # Default: "${{ github.token }}"
token: '' token: ''
# Get changed files for commits whose timestamp is earlier # Get changed files for commits
# than the given time. # whose timestamp is earlier than
# the given time.
# Type: string # Type: string
until: '' until: ''
# Force the use of Github's REST API even when # Use POSIX path separator `/`
# a local copy of the repository exists # for output file paths on
# Windows.
# Type: boolean
# Default: "false"
use_posix_path_separator: ''
# Force the use of Github's
# REST API even when a
# local copy of the repository
# exists
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
use_rest_api: '' use_rest_api: ''
# Write outputs to the `output_dir` defaults to `.github/outputs` folder. # Write outputs to the `output_dir`
# NOTE: This creates a `.txt` file by default and # defaults to `.github/outputs` folder. NOTE:
# a `.json` file if `json` is set to `true`. # This creates a `.txt` file
# by default and a `.json`
# file if `json` is set
# to `true`.
# Type: boolean # Type: boolean
# Default: "false" # Default: "false"
write_output_files: '' write_output_files: ''
@ -647,33 +753,33 @@ Support this project with a :star:
|------------------------------------------------------------------------------------------------------------------------------------------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |------------------------------------------------------------------------------------------------------------------------------------------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| <a name="output_added_files"></a>[added\_files](#output_added_files) | string | Returns only files that are <br>Added (A). | | <a name="output_added_files"></a>[added\_files](#output_added_files) | string | Returns only files that are <br>Added (A). |
| <a name="output_added_files_count"></a>[added\_files\_count](#output_added_files_count) | string | Returns the number of `added_files` | | <a name="output_added_files_count"></a>[added\_files\_count](#output_added_files_count) | string | Returns the number of `added_files` |
| <a name="output_all_changed_and_modified_files"></a>[all\_changed\_and\_modified\_files](#output_all_changed_and_modified_files) | string | Returns all changed and modified <br>files i.e. *a combination of (ACMRDTUX)* | | <a name="output_all_changed_and_modified_files"></a>[all\_changed\_and\_modified\_files](#output_all_changed_and_modified_files) | string | Returns all changed and modified <br>files i.e. a combination of <br>(ACMRDTUX) |
| <a name="output_all_changed_and_modified_files_count"></a>[all\_changed\_and\_modified\_files\_count](#output_all_changed_and_modified_files_count) | string | Returns the number of `all_changed_and_modified_files` | | <a name="output_all_changed_and_modified_files_count"></a>[all\_changed\_and\_modified\_files\_count](#output_all_changed_and_modified_files_count) | string | Returns the number of `all_changed_and_modified_files` |
| <a name="output_all_changed_files"></a>[all\_changed\_files](#output_all_changed_files) | string | Returns all changed files i.e. <br>*a combination of all added, copied, modified and renamed files (ACMR)* | | <a name="output_all_changed_files"></a>[all\_changed\_files](#output_all_changed_files) | string | Returns all changed files i.e. <br>a combination of all added, <br>copied, modified and renamed files <br>(ACMR) |
| <a name="output_all_changed_files_count"></a>[all\_changed\_files\_count](#output_all_changed_files_count) | string | Returns the number of `all_changed_files` | | <a name="output_all_changed_files_count"></a>[all\_changed\_files\_count](#output_all_changed_files_count) | string | Returns the number of `all_changed_files` |
| <a name="output_all_modified_files"></a>[all\_modified\_files](#output_all_modified_files) | string | Returns all changed files i.e. <br>*a combination of all added, copied, modified, renamed and deleted files (ACMRD)*. | | <a name="output_all_modified_files"></a>[all\_modified\_files](#output_all_modified_files) | string | Returns all changed files i.e. <br>a combination of all added, <br>copied, modified, renamed and deleted <br>files (ACMRD). |
| <a name="output_all_modified_files_count"></a>[all\_modified\_files\_count](#output_all_modified_files_count) | string | Returns the number of `all_modified_files` | | <a name="output_all_modified_files_count"></a>[all\_modified\_files\_count](#output_all_modified_files_count) | string | Returns the number of `all_modified_files` |
| <a name="output_all_old_new_renamed_files"></a>[all\_old\_new\_renamed\_files](#output_all_old_new_renamed_files) | string | Returns only files that are <br>Renamed and lists their old <br>and new names. **NOTE:** This <br>requires setting `include_all_old_new_renamed_files` to `true`. <br>Also, keep in mind that <br>this output is global and <br>wouldn't be nested in outputs <br>generated when the `*_yaml_*` input <br>is used. (R) | | <a name="output_all_old_new_renamed_files"></a>[all\_old\_new\_renamed\_files](#output_all_old_new_renamed_files) | string | Returns only files that are <br>Renamed and lists their old <br>and new names. **NOTE:** This <br>requires setting `include_all_old_new_renamed_files` to `true`. <br>Also, keep in mind that <br>this output is global and <br>wouldn't be nested in outputs <br>generated when the `*_yaml_*` input <br>is used. (R) |
| <a name="output_all_old_new_renamed_files_count"></a>[all\_old\_new\_renamed\_files\_count](#output_all_old_new_renamed_files_count) | string | Returns the number of `all_old_new_renamed_files` | | <a name="output_all_old_new_renamed_files_count"></a>[all\_old\_new\_renamed\_files\_count](#output_all_old_new_renamed_files_count) | string | Returns the number of `all_old_new_renamed_files` |
| <a name="output_any_changed"></a>[any\_changed](#output_any_changed) | string | Returns `true` when any of <br>the filenames provided using the <br>`files*` or `files_ignore*` inputs has changed. i.e. <br>*includes a combination of all added, copied, modified and renamed files (ACMR)*. | | <a name="output_any_changed"></a>[any\_changed](#output_any_changed) | string | Returns `true` when any of <br>the filenames provided using the <br>`files*` or `files_ignore*` inputs have changed. This <br>defaults to `true` when no <br>patterns are specified. i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*. |
| <a name="output_any_deleted"></a>[any\_deleted](#output_any_deleted) | string | Returns `true` when any of <br>the filenames provided using the <br>`files*` or `files_ignore*` inputs has been deleted. <br>(D) | | <a name="output_any_deleted"></a>[any\_deleted](#output_any_deleted) | string | Returns `true` when any of <br>the filenames provided using the <br>`files*` or `files_ignore*` inputs have been deleted. <br>This defaults to `true` when <br>no patterns are specified. (D) |
| <a name="output_any_modified"></a>[any\_modified](#output_any_modified) | string | Returns `true` when any of <br>the filenames provided using the <br>`files*` or `files_ignore*` inputs has been modified. <br>i.e. *includes a combination of all added, copied, modified, renamed, and deleted files (ACMRD)*. | | <a name="output_any_modified"></a>[any\_modified](#output_any_modified) | string | Returns `true` when any of <br>the filenames provided using the <br>`files*` or `files_ignore*` inputs have been modified. <br>This defaults to `true` when <br>no patterns are specified. i.e. <br>*includes a combination of all added, copied, modified, renamed, and deleted files (ACMRD)*. |
| <a name="output_changed_keys"></a>[changed\_keys](#output_changed_keys) | string | Returns all changed YAML keys <br>when the `files_yaml` input is <br>used. i.e. *key that contains any path that has either been added, copied, modified, and renamed (ACMR)* | | <a name="output_changed_keys"></a>[changed\_keys](#output_changed_keys) | string | Returns all changed YAML keys <br>when the `files_yaml` input is <br>used. i.e. key that contains <br>any path that has either <br>been added, copied, modified, and <br>renamed (ACMR) |
| <a name="output_copied_files"></a>[copied\_files](#output_copied_files) | string | Returns only files that are <br>Copied (C). | | <a name="output_copied_files"></a>[copied\_files](#output_copied_files) | string | Returns only files that are <br>Copied (C). |
| <a name="output_copied_files_count"></a>[copied\_files\_count](#output_copied_files_count) | string | Returns the number of `copied_files` | | <a name="output_copied_files_count"></a>[copied\_files\_count](#output_copied_files_count) | string | Returns the number of `copied_files` |
| <a name="output_deleted_files"></a>[deleted\_files](#output_deleted_files) | string | Returns only files that are <br>Deleted (D). | | <a name="output_deleted_files"></a>[deleted\_files](#output_deleted_files) | string | Returns only files that are <br>Deleted (D). |
| <a name="output_deleted_files_count"></a>[deleted\_files\_count](#output_deleted_files_count) | string | Returns the number of `deleted_files` | | <a name="output_deleted_files_count"></a>[deleted\_files\_count](#output_deleted_files_count) | string | Returns the number of `deleted_files` |
| <a name="output_modified_files"></a>[modified\_files](#output_modified_files) | string | Returns only files that are <br>Modified (M). | | <a name="output_modified_files"></a>[modified\_files](#output_modified_files) | string | Returns only files that are <br>Modified (M). |
| <a name="output_modified_files_count"></a>[modified\_files\_count](#output_modified_files_count) | string | Returns the number of `modified_files` | | <a name="output_modified_files_count"></a>[modified\_files\_count](#output_modified_files_count) | string | Returns the number of `modified_files` |
| <a name="output_modified_keys"></a>[modified\_keys](#output_modified_keys) | string | Returns all modified YAML keys <br>when the `files_yaml` input is <br>used. i.e. *key that contains any path that has either been added, copied, modified, and deleted (ACMRD)* | | <a name="output_modified_keys"></a>[modified\_keys](#output_modified_keys) | string | Returns all modified YAML keys <br>when the `files_yaml` input is <br>used. i.e. key that contains <br>any path that has either <br>been added, copied, modified, and <br>deleted (ACMRD) |
| <a name="output_only_changed"></a>[only\_changed](#output_only_changed) | string | Returns `true` when only files <br>provided using the `files*` or `files_ignore*` inputs <br>has changed. i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*. | | <a name="output_only_changed"></a>[only\_changed](#output_only_changed) | string | Returns `true` when only files <br>provided using the `files*` or `files_ignore*` inputs <br>have changed. i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*. |
| <a name="output_only_deleted"></a>[only\_deleted](#output_only_deleted) | string | Returns `true` when only files <br>provided using the `files*` or `files_ignore*` inputs <br>has been deleted. (D) | | <a name="output_only_deleted"></a>[only\_deleted](#output_only_deleted) | string | Returns `true` when only files <br>provided using the `files*` or `files_ignore*` inputs <br>have been deleted. (D) |
| <a name="output_only_modified"></a>[only\_modified](#output_only_modified) | string | Returns `true` when only files <br>provided using the `files*` or `files_ignore*` inputs <br>has been modified. (ACMRD). | | <a name="output_only_modified"></a>[only\_modified](#output_only_modified) | string | Returns `true` when only files <br>provided using the `files*` or `files_ignore*` inputs <br>have been modified. (ACMRD). |
| <a name="output_other_changed_files"></a>[other\_changed\_files](#output_other_changed_files) | string | Returns all other changed files <br>not listed in the files <br>input i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*. | | <a name="output_other_changed_files"></a>[other\_changed\_files](#output_other_changed_files) | string | Returns all other changed files <br>not listed in the files <br>input i.e. includes a combination <br>of all added, copied, modified <br>and renamed files (ACMR). |
| <a name="output_other_changed_files_count"></a>[other\_changed\_files\_count](#output_other_changed_files_count) | string | Returns the number of `other_changed_files` | | <a name="output_other_changed_files_count"></a>[other\_changed\_files\_count](#output_other_changed_files_count) | string | Returns the number of `other_changed_files` |
| <a name="output_other_deleted_files"></a>[other\_deleted\_files](#output_other_deleted_files) | string | Returns all other deleted files <br>not listed in the files <br>input i.e. *a combination of all deleted files (D)* | | <a name="output_other_deleted_files"></a>[other\_deleted\_files](#output_other_deleted_files) | string | Returns all other deleted files <br>not listed in the files <br>input i.e. a combination of <br>all deleted files (D) |
| <a name="output_other_deleted_files_count"></a>[other\_deleted\_files\_count](#output_other_deleted_files_count) | string | Returns the number of `other_deleted_files` | | <a name="output_other_deleted_files_count"></a>[other\_deleted\_files\_count](#output_other_deleted_files_count) | string | Returns the number of `other_deleted_files` |
| <a name="output_other_modified_files"></a>[other\_modified\_files](#output_other_modified_files) | string | Returns all other modified files <br>not listed in the files <br>input i.e. *a combination of all added, copied, modified, and deleted files (ACMRD)* | | <a name="output_other_modified_files"></a>[other\_modified\_files](#output_other_modified_files) | string | Returns all other modified files <br>not listed in the files <br>input i.e. a combination of <br>all added, copied, modified, and <br>deleted files (ACMRD) |
| <a name="output_other_modified_files_count"></a>[other\_modified\_files\_count](#output_other_modified_files_count) | string | Returns the number of `other_modified_files` | | <a name="output_other_modified_files_count"></a>[other\_modified\_files\_count](#output_other_modified_files_count) | string | Returns the number of `other_modified_files` |
| <a name="output_renamed_files"></a>[renamed\_files](#output_renamed_files) | string | Returns only files that are <br>Renamed (R). | | <a name="output_renamed_files"></a>[renamed\_files](#output_renamed_files) | string | Returns only files that are <br>Renamed (R). |
| <a name="output_renamed_files_count"></a>[renamed\_files\_count](#output_renamed_files_count) | string | Returns the number of `renamed_files` | | <a name="output_renamed_files_count"></a>[renamed\_files\_count](#output_renamed_files_count) | string | Returns the number of `renamed_files` |
@ -707,7 +813,7 @@ The format of the version string is as follows:
... ...
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
... ...
``` ```
@ -720,7 +826,7 @@ The format of the version string is as follows:
... ...
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
safe_output: false # set to false because we are using an environment variable to store the output and avoid command injection. safe_output: false # set to false because we are using an environment variable to store the output and avoid command injection.
@ -728,7 +834,7 @@ The format of the version string is as follows:
env: env:
ADDED_FILES: ${{ steps.changed-files.outputs.added_files }} ADDED_FILES: ${{ steps.changed-files.outputs.added_files }}
run: | run: |
for file in "$ADDED_FILES"; do for file in ${ADDED_FILES}; do
echo "$file was added" echo "$file was added"
done done
... ...
@ -743,7 +849,7 @@ The format of the version string is as follows:
... ...
- name: Get all changed files and use a comma separator in the output - name: Get all changed files and use a comma separator in the output
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
separator: "," separator: ","
... ...
@ -760,13 +866,13 @@ See [inputs](#inputs) for more information.
... ...
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
- name: List all added files - name: List all added files
env: env:
ADDED_FILES: ${{ steps.changed-files.outputs.added_files }} ADDED_FILES: ${{ steps.changed-files.outputs.added_files }}
run: | run: |
for file in "$ADDED_FILES"; do for file in ${ADDED_FILES}; do
echo "$file was added" echo "$file was added"
done done
... ...
@ -783,7 +889,7 @@ See [outputs](#outputs) for a list of all available outputs.
... ...
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
- name: Run a step if my-file.txt was modified - name: Run a step if my-file.txt was modified
if: contains(steps.changed-files.outputs.modified_files, 'my-file.txt') if: contains(steps.changed-files.outputs.modified_files, 'my-file.txt')
@ -804,7 +910,7 @@ See [outputs](#outputs) for a list of all available outputs.
- name: Get changed files and write the outputs to a Txt file - name: Get changed files and write the outputs to a Txt file
id: changed-files-write-output-files-txt id: changed-files-write-output-files-txt
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
write_output_files: true write_output_files: true
@ -823,7 +929,7 @@ See [outputs](#outputs) for a list of all available outputs.
... ...
- name: Get changed files and write the outputs to a JSON file - name: Get changed files and write the outputs to a JSON file
id: changed-files-write-output-files-json id: changed-files-write-output-files-json
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
json: true json: true
write_output_files: true write_output_files: true
@ -843,7 +949,7 @@ See [outputs](#outputs) for a list of all available outputs.
... ...
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
files: | files: |
my-file.txt my-file.txt
@ -866,7 +972,7 @@ See [inputs](#inputs) for more information.
... ...
- name: Get changed files - name: Get changed files
id: changed-files-specific id: changed-files-specific
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
files: | files: |
my-file.txt my-file.txt
@ -891,7 +997,7 @@ See [inputs](#inputs) for more information.
env: env:
DELETED_FILES: ${{ steps.changed-files-specific.outputs.deleted_files }} DELETED_FILES: ${{ steps.changed-files-specific.outputs.deleted_files }}
run: | run: |
for file in "$DELETED_FILES"; do for file in ${DELETED_FILES}; do
echo "$file was deleted" echo "$file was deleted"
done done
@ -900,7 +1006,7 @@ See [inputs](#inputs) for more information.
env: env:
DELETED_FILES: ${{ steps.changed-files-specific.outputs.deleted_files }} DELETED_FILES: ${{ steps.changed-files-specific.outputs.deleted_files }}
run: | run: |
for file in "$DELETED_FILES"; do for file in ${DELETED_FILES}; do
echo "$file was deleted" echo "$file was deleted"
done done
... ...
@ -917,7 +1023,7 @@ See [outputs](#outputs) for a list of all available outputs.
... ...
- name: Get changed files using a source file or list of file(s) to populate to files input. - name: Get changed files using a source file or list of file(s) to populate to files input.
id: changed-files-specific-source-file id: changed-files-specific-source-file
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
files_from_source_file: test/changed-files-list.txt files_from_source_file: test/changed-files-list.txt
... ...
@ -934,7 +1040,7 @@ See [inputs](#inputs) for more information.
... ...
- name: Get changed files using a source file or list of file(s) to populate to files input and optionally specify more files. - name: Get changed files using a source file or list of file(s) to populate to files input and optionally specify more files.
id: changed-files-specific-source-file-and-specify-files id: changed-files-specific-source-file-and-specify-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
files_from_source_file: | files_from_source_file: |
test/changed-files-list.txt test/changed-files-list.txt
@ -955,7 +1061,7 @@ See [inputs](#inputs) for more information.
... ...
- name: Get changed files using a different SHA - name: Get changed files using a different SHA
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
sha: ${{ github.event.pull_request.head.sha }} sha: ${{ github.event.pull_request.head.sha }}
... ...
@ -972,7 +1078,7 @@ See [inputs](#inputs) for more information.
... ...
- name: Get changed files using a different base SHA - name: Get changed files using a different base SHA
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
base_sha: ${{ github.event.pull_request.base.sha }} base_sha: ${{ github.event.pull_request.base.sha }}
... ...
@ -1004,13 +1110,18 @@ jobs:
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
- name: List changed files
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
echo "List all the files that have changed: $ALL_CHANGED_FILES"
- name: Get changed files in the .github folder - name: Get changed files in the .github folder
id: changed-files-specific id: changed-files-specific
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
base_sha: ${{ steps.get-base-sha.outputs.base_sha }}
files: .github/** files: .github/**
- name: Run step if any file(s) in the .github folder change - name: Run step if any file(s) in the .github folder change
@ -1040,16 +1151,15 @@ See [inputs](#inputs) for more information.
- name: Run changed-files with defaults in dir1 - name: Run changed-files with defaults in dir1
id: changed-files-for-dir1 id: changed-files-for-dir1
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
path: dir1 path: dir1
- name: List all added files in dir1 - name: List all added files in dir1
env: env:
ADDED_FILES: |- ADDED_FILES: ${{ steps.changed-files-for-dir1.outputs.added_files }}
${{ steps.changed-files-for-dir1.outputs.added_files }}
run: | run: |
for file in "$ADDED_FILES"; do for file in ${ADDED_FILES}; do
echo "$file was added" echo "$file was added"
done done
... ...
@ -1066,13 +1176,13 @@ See [inputs](#inputs) for more information.
... ...
- name: Run changed-files with quotepath disabled - name: Run changed-files with quotepath disabled
id: changed-files-quotepath id: changed-files-quotepath
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
quotepath: "false" quotepath: "false"
- name: Run changed-files with quotepath disabled for a specified list of file(s) - name: Run changed-files with quotepath disabled for a specified list of file(s)
id: changed-files-quotepath-specific id: changed-files-quotepath-specific
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
files: test/test-è.txt files: test/test-è.txt
quotepath: "false" quotepath: "false"
@ -1105,7 +1215,7 @@ See [inputs](#inputs) for more information.
- name: Run changed-files with the commit of the last successful test workflow run - name: Run changed-files with the commit of the last successful test workflow run
id: changed-files-base-sha-push id: changed-files-base-sha-push
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
base_sha: ${{ steps.last_successful_commit_push.outputs.base }} base_sha: ${{ steps.last_successful_commit_push.outputs.base }}
... ...
@ -1132,7 +1242,7 @@ See [inputs](#inputs) for more information.
- name: Run changed-files with the commit of the last successful test workflow run on the main branch - name: Run changed-files with the commit of the last successful test workflow run on the main branch
id: changed-files-base-sha-pull-request id: changed-files-base-sha-pull-request
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
base_sha: ${{ steps.last_successful_commit_pull_request.outputs.base }} base_sha: ${{ steps.last_successful_commit_pull_request.outputs.base }}
... ...
@ -1158,7 +1268,7 @@ See [inputs](#inputs) for more information.
... ...
- name: Run changed-files with dir_names - name: Run changed-files with dir_names
id: changed-files-dir-names id: changed-files-dir-names
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
dir_names: "true" dir_names: "true"
... ...
@ -1175,7 +1285,7 @@ See [inputs](#inputs) for more information.
... ...
- name: Run changed-files with JSON output - name: Run changed-files with JSON output
id: changed-files-json id: changed-files-json
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
json: "true" json: "true"
... ...
@ -1192,13 +1302,13 @@ See [inputs](#inputs) for more information.
... ...
- name: Get changed-files since 2022-08-19 - name: Get changed-files since 2022-08-19
id: changed-files-since id: changed-files-since
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
since: "2022-08-19" since: "2022-08-19"
- name: Get changed-files until 2022-08-20 - name: Get changed-files until 2022-08-20
id: changed-files-until id: changed-files-until
uses: tj-actions/changed-files@v41 uses: tj-actions/changed-files@v45
with: with:
until: "2022-08-20" until: "2022-08-20"
... ...
@ -1218,7 +1328,7 @@ See [inputs](#inputs) for more information.
* [coder/code-server: uses tj-actions/changed-files to automate detecting changes and run steps based on the outcome](https://github.com/coder/code-server/blob/c32a31d802f679846876b8ad9aacff6cf7b5361d/.github/workflows/build.yaml#L48) * [coder/code-server: uses tj-actions/changed-files to automate detecting changes and run steps based on the outcome](https://github.com/coder/code-server/blob/c32a31d802f679846876b8ad9aacff6cf7b5361d/.github/workflows/build.yaml#L48)
* [tldr-pages/tldr: uses tj-actions/changed-files to automate detecting spelling errors](https://github.com/tldr-pages/tldr/blob/main/.github/workflows/codespell.yml#L14) * [tldr-pages/tldr: uses tj-actions/changed-files to automate detecting spelling errors](https://github.com/tldr-pages/tldr/blob/c1b714c55cb0048037b79a681a10d7f3ddb0164c/.github/workflows/codespell.yml#L18-L26)
* [nodejs/docker-node: uses tj-actions/changed-files to generate matrix jobs based on changes detected](https://github.com/nodejs/docker-node/blob/3c4fa6daf06a4786d202f2f610351837806a0380/.github/workflows/build-test.yml#L29) * [nodejs/docker-node: uses tj-actions/changed-files to generate matrix jobs based on changes detected](https://github.com/nodejs/docker-node/blob/3c4fa6daf06a4786d202f2f610351837806a0380/.github/workflows/build-test.yml#L29)
@ -1226,10 +1336,14 @@ See [inputs](#inputs) for more information.
* [aws-doc-sdk-examples: uses tj-actions/changed-files to automate testing](https://github.com/awsdocs/aws-doc-sdk-examples/blob/2393723ef6b0cad9502f4852f5c72f7be58ca89d/.github/workflows/javascript.yml#L22) * [aws-doc-sdk-examples: uses tj-actions/changed-files to automate testing](https://github.com/awsdocs/aws-doc-sdk-examples/blob/2393723ef6b0cad9502f4852f5c72f7be58ca89d/.github/workflows/javascript.yml#L22)
* [nhost: uses tj-actions/changed-files to automate testing based on changes detected](https://github.com/nhost/nhost/blob/main/.github/workflows/ci.yaml#L44-L48) * [nhost: uses tj-actions/changed-files to automate testing based on changes detected](https://github.com/nhost/nhost/blob/71a8ce444618a8ac4d660518172fba4883c4014b/.github/workflows/ci.yaml#L44-L48)
* [qmk\_firmware uses tj-actions/changed-files to run linters](https://github.com/qmk/qmk_firmware/blob/7a737235ffd49c32d2c5561e8fe53fd96baa7f96/.github/workflows/lint.yml#L30) * [qmk\_firmware uses tj-actions/changed-files to run linters](https://github.com/qmk/qmk_firmware/blob/7a737235ffd49c32d2c5561e8fe53fd96baa7f96/.github/workflows/lint.yml#L30)
* [argo-cd uses tj-actions/changed-files to detect changed frontend or backend files](https://github.com/argoproj/argo-cd/blob/5bc1850aa1d26301043be9f2fb825d88c80c111c/.github/workflows/ci-build.yaml#L33)
* [argo-workflows uses tj-actions/changed-files to run specific jobs based on changes detected](https://github.com/argoproj/argo-workflows/blob/baef4856ff2603c76dbe277c825eaa3f9788fc91/.github/workflows/ci-build.yaml#L34)
And many more... And many more...
### Scalability Example 📈 ### Scalability Example 📈
@ -1283,7 +1397,7 @@ Report bugs at https://github.com/tj-actions/changed-files/issues.
If you are reporting a bug, please include: If you are reporting a bug, please include:
* Your operating system name and version. * Your operating system name and version.
* Any details about your workflow that might be helpful in troubleshooting. (**NOTE**: Ensure that you include full log outputs with debugging enabled) * All essential details about your workflow that might be helpful in troubleshooting. (**NOTE**: Ensure that you include full log outputs with debugging enabled)
* Detailed steps to reproduce the bug. * Detailed steps to reproduce the bug.
## Contributors ✨ ## Contributors ✨
@ -1327,6 +1441,11 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
</tr> </tr>
<tr> <tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rodrigorfk"><img src="https://avatars.githubusercontent.com/u/1995033?v=4?s=100" width="100px;" alt="Rodrigo Fior Kuntzer"/><br /><sub><b>Rodrigo Fior Kuntzer</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=rodrigorfk" title="Code">💻</a> <a href="https://github.com/tj-actions/changed-files/commits?author=rodrigorfk" title="Tests">⚠️</a> <a href="https://github.com/tj-actions/changed-files/issues?q=author%3Arodrigorfk" title="Bug reports">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/rodrigorfk"><img src="https://avatars.githubusercontent.com/u/1995033?v=4?s=100" width="100px;" alt="Rodrigo Fior Kuntzer"/><br /><sub><b>Rodrigo Fior Kuntzer</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=rodrigorfk" title="Code">💻</a> <a href="https://github.com/tj-actions/changed-files/commits?author=rodrigorfk" title="Tests">⚠️</a> <a href="https://github.com/tj-actions/changed-files/issues?q=author%3Arodrigorfk" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/levenleven"><img src="https://avatars.githubusercontent.com/u/6463364?v=4?s=100" width="100px;" alt="Aleksey Levenstein"/><br /><sub><b>Aleksey Levenstein</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=levenleven" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dan-hill2802"><img src="https://avatars.githubusercontent.com/u/5046322?v=4?s=100" width="100px;" alt="Daniel Hill"/><br /><sub><b>Daniel Hill</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=dan-hill2802" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://keisukeyamashita.com"><img src="https://avatars.githubusercontent.com/u/23056537?v=4?s=100" width="100px;" alt="KeisukeYamashita"/><br /><sub><b>KeisukeYamashita</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=KeisukeYamashita" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/codesculpture"><img src="https://avatars.githubusercontent.com/u/63452117?v=4?s=100" width="100px;" alt="Aravind"/><br /><sub><b>Aravind</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=codesculpture" title="Code">💻</a> <a href="https://github.com/tj-actions/changed-files/issues?q=author%3Acodesculpture" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://lukaspfahler.de"><img src="https://avatars.githubusercontent.com/u/2308119?v=4?s=100" width="100px;" alt="Lukas Pfahler"/><br /><sub><b>Lukas Pfahler</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=Whadup" title="Code">💻</a></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -127,7 +127,7 @@ inputs:
required: false required: false
default: "false" default: "false"
json: json:
description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs. Example: https://github.com/tj-actions/changed-files/blob/main/.github/workflows/matrix-test.yml" description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs. Example: https://github.com/tj-actions/changed-files/blob/main/.github/workflows/matrix-example.yml"
required: false required: false
default: "false" default: "false"
escape_json: escape_json:
@ -141,11 +141,11 @@ inputs:
fetch_depth: fetch_depth:
description: "Depth of additional branch history fetched. NOTE: This can be adjusted to resolve errors with insufficient history." description: "Depth of additional branch history fetched. NOTE: This can be adjusted to resolve errors with insufficient history."
required: false required: false
default: "50" default: "25"
skip_initial_fetch: skip_initial_fetch:
description: | description: |
Skip the initial fetch to improve performance for shallow repositories. Skip initially fetching additional history to improve performance for shallow repositories.
NOTE: This could lead to errors with missing history and the intended use is limited to when you've fetched the history necessary to perform the diff. NOTE: This could lead to errors with missing history. It's intended to be used when you've fetched all necessary history to perform the diff.
required: false required: false
default: "false" default: "false"
fetch_additional_submodule_history: fetch_additional_submodule_history:
@ -219,6 +219,31 @@ inputs:
description: "Apply the negation patterns first. NOTE: This affects how changed files are matched." description: "Apply the negation patterns first. NOTE: This affects how changed files are matched."
required: false required: false
default: "false" default: "false"
matrix:
description: "Output changed files in a format that can be used for matrix jobs. Alias for setting inputs `json` to `true` and `escape_json` to `false`."
required: false
default: "false"
exclude_submodules:
description: "Exclude changes to submodules."
required: false
default: "false"
fetch_missing_history_max_retries:
description: "Maximum number of retries to fetch missing history."
required: false
default: "20"
use_posix_path_separator:
description: "Use POSIX path separator `/` for output file paths on Windows."
required: false
default: "false"
tags_pattern:
description: "Tags pattern to include."
required: false
default: "*"
tags_ignore_pattern:
description: "Tags pattern to ignore."
required: false
default: ""
outputs: outputs:
added_files: added_files:
@ -258,45 +283,45 @@ outputs:
unknown_files_count: unknown_files_count:
description: "Returns the number of `unknown_files`" description: "Returns the number of `unknown_files`"
all_changed_and_modified_files: all_changed_and_modified_files:
description: "Returns all changed and modified files i.e. *a combination of (ACMRDTUX)*" description: "Returns all changed and modified files i.e. a combination of (ACMRDTUX)"
all_changed_and_modified_files_count: all_changed_and_modified_files_count:
description: "Returns the number of `all_changed_and_modified_files`" description: "Returns the number of `all_changed_and_modified_files`"
all_changed_files: all_changed_files:
description: "Returns all changed files i.e. *a combination of all added, copied, modified and renamed files (ACMR)*" description: "Returns all changed files i.e. a combination of all added, copied, modified and renamed files (ACMR)"
all_changed_files_count: all_changed_files_count:
description: "Returns the number of `all_changed_files`" description: "Returns the number of `all_changed_files`"
any_changed: any_changed:
description: "Returns `true` when any of the filenames provided using the `files*` or `files_ignore*` inputs has changed. i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*." description: "Returns `true` when any of the filenames provided using the `files*` or `files_ignore*` inputs have changed. This defaults to `true` when no patterns are specified. i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*."
only_changed: only_changed:
description: "Returns `true` when only files provided using the `files*` or `files_ignore*` inputs has changed. i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*." description: "Returns `true` when only files provided using the `files*` or `files_ignore*` inputs have changed. i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*."
other_changed_files: other_changed_files:
description: "Returns all other changed files not listed in the files input i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*." description: "Returns all other changed files not listed in the files input i.e. includes a combination of all added, copied, modified and renamed files (ACMR)."
other_changed_files_count: other_changed_files_count:
description: "Returns the number of `other_changed_files`" description: "Returns the number of `other_changed_files`"
all_modified_files: all_modified_files:
description: "Returns all changed files i.e. *a combination of all added, copied, modified, renamed and deleted files (ACMRD)*." description: "Returns all changed files i.e. a combination of all added, copied, modified, renamed and deleted files (ACMRD)."
all_modified_files_count: all_modified_files_count:
description: "Returns the number of `all_modified_files`" description: "Returns the number of `all_modified_files`"
any_modified: any_modified:
description: "Returns `true` when any of the filenames provided using the `files*` or `files_ignore*` inputs has been modified. i.e. *includes a combination of all added, copied, modified, renamed, and deleted files (ACMRD)*." description: "Returns `true` when any of the filenames provided using the `files*` or `files_ignore*` inputs have been modified. This defaults to `true` when no patterns are specified. i.e. *includes a combination of all added, copied, modified, renamed, and deleted files (ACMRD)*."
only_modified: only_modified:
description: "Returns `true` when only files provided using the `files*` or `files_ignore*` inputs has been modified. (ACMRD)." description: "Returns `true` when only files provided using the `files*` or `files_ignore*` inputs have been modified. (ACMRD)."
other_modified_files: other_modified_files:
description: "Returns all other modified files not listed in the files input i.e. *a combination of all added, copied, modified, and deleted files (ACMRD)*" description: "Returns all other modified files not listed in the files input i.e. a combination of all added, copied, modified, and deleted files (ACMRD)"
other_modified_files_count: other_modified_files_count:
description: "Returns the number of `other_modified_files`" description: "Returns the number of `other_modified_files`"
any_deleted: any_deleted:
description: "Returns `true` when any of the filenames provided using the `files*` or `files_ignore*` inputs has been deleted. (D)" description: "Returns `true` when any of the filenames provided using the `files*` or `files_ignore*` inputs have been deleted. This defaults to `true` when no patterns are specified. (D)"
only_deleted: only_deleted:
description: "Returns `true` when only files provided using the `files*` or `files_ignore*` inputs has been deleted. (D)" description: "Returns `true` when only files provided using the `files*` or `files_ignore*` inputs have been deleted. (D)"
other_deleted_files: other_deleted_files:
description: "Returns all other deleted files not listed in the files input i.e. *a combination of all deleted files (D)*" description: "Returns all other deleted files not listed in the files input i.e. a combination of all deleted files (D)"
other_deleted_files_count: other_deleted_files_count:
description: "Returns the number of `other_deleted_files`" description: "Returns the number of `other_deleted_files`"
modified_keys: modified_keys:
description: "Returns all modified YAML keys when the `files_yaml` input is used. i.e. *key that contains any path that has either been added, copied, modified, and deleted (ACMRD)*" description: "Returns all modified YAML keys when the `files_yaml` input is used. i.e. key that contains any path that has either been added, copied, modified, and deleted (ACMRD)"
changed_keys: changed_keys:
description: "Returns all changed YAML keys when the `files_yaml` input is used. i.e. *key that contains any path that has either been added, copied, modified, and renamed (ACMR)*" description: "Returns all changed YAML keys when the `files_yaml` input is used. i.e. key that contains any path that has either been added, copied, modified, and renamed (ACMR)"
runs: runs:
using: 'node20' using: 'node20'

17111
dist/index.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

5264
dist/licenses.txt generated vendored

File diff suppressed because it is too large Load Diff

2
dist/sourcemap-register.js generated vendored

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,5 @@
const path = require('path') const path = require('path')
process.env.TESTING = "1"
process.env.GITHUB_WORKSPACE = path.join( process.env.GITHUB_WORKSPACE = path.join(
path.resolve(__dirname, '..'), '.' path.resolve(__dirname, '..'), '.'
) )

View File

@ -1,6 +1,6 @@
{ {
"name": "@tj-actions/changed-files", "name": "@tj-actions/changed-files",
"version": "41.1.1", "version": "45.0.4",
"description": "Github action to retrieve all (added, copied, modified, deleted, renamed, type changed, unmerged, unknown) files and directories.", "description": "Github action to retrieve all (added, copied, modified, deleted, renamed, type changed, unmerged, unknown) files and directories.",
"main": "lib/main.js", "main": "lib/main.js",
"publishConfig": { "publishConfig": {
@ -14,6 +14,7 @@
"lint:fix": "eslint --fix src/*.ts src/**/*.ts", "lint:fix": "eslint --fix src/*.ts src/**/*.ts",
"package": "ncc build lib/main.js --source-map --license licenses.txt", "package": "ncc build lib/main.js --source-map --license licenses.txt",
"test": "jest --coverage", "test": "jest --coverage",
"update-snapshot": "jest -u",
"all": "yarn build && yarn format && yarn lint && yarn package && yarn test" "all": "yarn build && yarn format && yarn lint && yarn package && yarn test"
}, },
"repository": { "repository": {
@ -35,7 +36,8 @@
"@actions/core": "^1.10.0", "@actions/core": "^1.10.0",
"@actions/exec": "^1.1.1", "@actions/exec": "^1.1.1",
"@actions/github": "^6.0.0", "@actions/github": "^6.0.0",
"@octokit/rest": "^20.0.1", "@octokit/rest": "^21.0.0",
"@stdlib/utils-convert-path": "^0.2.1",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"micromatch": "^4.0.5", "micromatch": "^4.0.5",
"yaml": "^2.3.1" "yaml": "^2.3.1"
@ -44,16 +46,16 @@
"@types/jest": "^29.5.2", "@types/jest": "^29.5.2",
"@types/lodash": "^4.14.195", "@types/lodash": "^4.14.195",
"@types/micromatch": "^4.0.2", "@types/micromatch": "^4.0.2",
"@types/node": "^20.3.2", "@types/node": "^22.0.0",
"@types/uuid": "^9.0.2", "@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/eslint-plugin": "^7.0.0",
"@typescript-eslint/parser": "^6.0.0", "@typescript-eslint/parser": "^7.0.0",
"@vercel/ncc": "^0.38.0", "@vercel/ncc": "^0.38.0",
"eslint": "^8.43.0", "eslint": "^8.43.0",
"eslint-plugin-github": "^4.8.0",
"eslint-plugin-jest": "^27.2.2",
"eslint-plugin-prettier": "^5.0.0-alpha.2",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^9.0.0",
"eslint-plugin-github": "^5.0.0",
"eslint-plugin-jest": "^28.0.0",
"eslint-plugin-prettier": "^5.0.0-alpha.2",
"jest": "^29.5.0", "jest": "^29.5.0",
"prettier": "^3.0.0", "prettier": "^3.0.0",
"ts-jest": "^29.1.0", "ts-jest": "^29.1.0",

View File

@ -0,0 +1,373 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`getInputs should correctly parse boolean inputs 1`] = `
{
"apiUrl": "",
"baseSha": "",
"diffRelative": "false",
"dirNames": "false",
"dirNamesDeletedFilesIncludeOnlyDeletedDirs": "false",
"dirNamesExcludeCurrentDir": "false",
"dirNamesIncludeFiles": "",
"dirNamesIncludeFilesSeparator": "",
"escapeJson": false,
"excludeSubmodules": "false",
"failOnInitialDiffError": "false",
"failOnSubmoduleDiffError": "false",
"fetchAdditionalSubmoduleHistory": "false",
"fetchMissingHistoryMaxRetries": 20,
"files": "",
"filesFromSourceFile": "",
"filesFromSourceFileSeparator": "",
"filesIgnore": "",
"filesIgnoreFromSourceFile": "",
"filesIgnoreFromSourceFileSeparator": "",
"filesIgnoreSeparator": "",
"filesIgnoreYaml": "",
"filesIgnoreYamlFromSourceFile": "",
"filesIgnoreYamlFromSourceFileSeparator": "",
"filesSeparator": "",
"filesYaml": "",
"filesYamlFromSourceFile": "",
"filesYamlFromSourceFileSeparator": "",
"includeAllOldNewRenamedFiles": "false",
"json": true,
"negationPatternsFirst": "false",
"oldNewFilesSeparator": " ",
"oldNewSeparator": ",",
"outputDir": "",
"outputRenamedFilesAsDeletedAndAdded": "false",
"path": ".",
"quotepath": "false",
"recoverDeletedFiles": "false",
"recoverDeletedFilesToDestination": "",
"recoverFiles": "",
"recoverFilesIgnore": "",
"recoverFilesIgnoreSeparator": "
",
"recoverFilesSeparator": "
",
"safeOutput": "false",
"separator": "",
"sha": "",
"since": "",
"sinceLastRemoteCommit": "false",
"skipInitialFetch": "true",
"tagsIgnorePattern": "",
"tagsPattern": "*",
"token": "",
"until": "",
"usePosixPathSeparator": "false",
"useRestApi": "false",
"writeOutputFiles": "false",
}
`;
exports[`getInputs should correctly parse numeric inputs 1`] = `
{
"apiUrl": "",
"baseSha": "",
"diffRelative": true,
"dirNames": false,
"dirNamesDeletedFilesIncludeOnlyDeletedDirs": false,
"dirNamesExcludeCurrentDir": false,
"dirNamesIncludeFiles": "",
"dirNamesIncludeFilesSeparator": "",
"dirNamesMaxDepth": 2,
"escapeJson": false,
"excludeSubmodules": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
"fetchDepth": 5,
"files": "",
"filesFromSourceFile": "",
"filesFromSourceFileSeparator": "",
"filesIgnore": "",
"filesIgnoreFromSourceFile": "",
"filesIgnoreFromSourceFileSeparator": "",
"filesIgnoreSeparator": "",
"filesIgnoreYaml": "",
"filesIgnoreYamlFromSourceFile": "",
"filesIgnoreYamlFromSourceFileSeparator": "",
"filesSeparator": "",
"filesYaml": "",
"filesYamlFromSourceFile": "",
"filesYamlFromSourceFileSeparator": "",
"includeAllOldNewRenamedFiles": false,
"json": false,
"negationPatternsFirst": false,
"oldNewFilesSeparator": "",
"oldNewSeparator": "",
"outputDir": "",
"outputRenamedFilesAsDeletedAndAdded": false,
"path": "",
"quotepath": true,
"recoverDeletedFiles": false,
"recoverDeletedFilesToDestination": "",
"recoverFiles": "",
"recoverFilesIgnore": "",
"recoverFilesIgnoreSeparator": "",
"recoverFilesSeparator": "",
"safeOutput": false,
"separator": "",
"sha": "",
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"tagsIgnorePattern": "",
"tagsPattern": "",
"token": "",
"until": "",
"usePosixPathSeparator": false,
"useRestApi": false,
"writeOutputFiles": false,
}
`;
exports[`getInputs should correctly parse string inputs 1`] = `
{
"apiUrl": "https://api.github.com",
"baseSha": "",
"diffRelative": true,
"dirNames": false,
"dirNamesDeletedFilesIncludeOnlyDeletedDirs": false,
"dirNamesExcludeCurrentDir": false,
"dirNamesIncludeFiles": "",
"dirNamesIncludeFilesSeparator": "",
"escapeJson": false,
"excludeSubmodules": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
"files": "",
"filesFromSourceFile": "",
"filesFromSourceFileSeparator": "",
"filesIgnore": "",
"filesIgnoreFromSourceFile": "",
"filesIgnoreFromSourceFileSeparator": "",
"filesIgnoreSeparator": "",
"filesIgnoreYaml": "",
"filesIgnoreYamlFromSourceFile": "",
"filesIgnoreYamlFromSourceFileSeparator": "",
"filesSeparator": "",
"filesYaml": "",
"filesYamlFromSourceFile": "",
"filesYamlFromSourceFileSeparator": "",
"includeAllOldNewRenamedFiles": false,
"json": false,
"negationPatternsFirst": false,
"oldNewFilesSeparator": "",
"oldNewSeparator": "",
"outputDir": "",
"outputRenamedFilesAsDeletedAndAdded": false,
"path": "",
"quotepath": true,
"recoverDeletedFiles": false,
"recoverDeletedFilesToDestination": "",
"recoverFiles": "",
"recoverFilesIgnore": "",
"recoverFilesIgnoreSeparator": "",
"recoverFilesSeparator": "",
"safeOutput": false,
"separator": "",
"sha": "",
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"tagsIgnorePattern": "",
"tagsPattern": "",
"token": "token",
"until": "",
"usePosixPathSeparator": false,
"useRestApi": false,
"writeOutputFiles": false,
}
`;
exports[`getInputs should handle invalid numeric inputs correctly 1`] = `
{
"apiUrl": "",
"baseSha": "",
"diffRelative": true,
"dirNames": false,
"dirNamesDeletedFilesIncludeOnlyDeletedDirs": false,
"dirNamesExcludeCurrentDir": false,
"dirNamesIncludeFiles": "",
"dirNamesIncludeFilesSeparator": "",
"dirNamesMaxDepth": 2,
"escapeJson": false,
"excludeSubmodules": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
"fetchDepth": NaN,
"files": "",
"filesFromSourceFile": "",
"filesFromSourceFileSeparator": "",
"filesIgnore": "",
"filesIgnoreFromSourceFile": "",
"filesIgnoreFromSourceFileSeparator": "",
"filesIgnoreSeparator": "",
"filesIgnoreYaml": "",
"filesIgnoreYamlFromSourceFile": "",
"filesIgnoreYamlFromSourceFileSeparator": "",
"filesSeparator": "",
"filesYaml": "",
"filesYamlFromSourceFile": "",
"filesYamlFromSourceFileSeparator": "",
"includeAllOldNewRenamedFiles": false,
"json": false,
"negationPatternsFirst": false,
"oldNewFilesSeparator": "",
"oldNewSeparator": "",
"outputDir": "",
"outputRenamedFilesAsDeletedAndAdded": false,
"path": "",
"quotepath": true,
"recoverDeletedFiles": false,
"recoverDeletedFilesToDestination": "",
"recoverFiles": "",
"recoverFilesIgnore": "",
"recoverFilesIgnoreSeparator": "",
"recoverFilesSeparator": "",
"safeOutput": false,
"separator": "",
"sha": "",
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"tagsIgnorePattern": "",
"tagsPattern": "",
"token": "",
"until": "",
"usePosixPathSeparator": false,
"useRestApi": false,
"writeOutputFiles": false,
}
`;
exports[`getInputs should handle negative numeric inputs correctly 1`] = `
{
"apiUrl": "",
"baseSha": "",
"diffRelative": true,
"dirNames": false,
"dirNamesDeletedFilesIncludeOnlyDeletedDirs": false,
"dirNamesExcludeCurrentDir": false,
"dirNamesIncludeFiles": "",
"dirNamesIncludeFilesSeparator": "",
"dirNamesMaxDepth": -2,
"escapeJson": false,
"excludeSubmodules": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
"fetchDepth": 2,
"files": "",
"filesFromSourceFile": "",
"filesFromSourceFileSeparator": "",
"filesIgnore": "",
"filesIgnoreFromSourceFile": "",
"filesIgnoreFromSourceFileSeparator": "",
"filesIgnoreSeparator": "",
"filesIgnoreYaml": "",
"filesIgnoreYamlFromSourceFile": "",
"filesIgnoreYamlFromSourceFileSeparator": "",
"filesSeparator": "",
"filesYaml": "",
"filesYamlFromSourceFile": "",
"filesYamlFromSourceFileSeparator": "",
"includeAllOldNewRenamedFiles": false,
"json": false,
"negationPatternsFirst": false,
"oldNewFilesSeparator": "",
"oldNewSeparator": "",
"outputDir": "",
"outputRenamedFilesAsDeletedAndAdded": false,
"path": "",
"quotepath": true,
"recoverDeletedFiles": false,
"recoverDeletedFilesToDestination": "",
"recoverFiles": "",
"recoverFilesIgnore": "",
"recoverFilesIgnoreSeparator": "",
"recoverFilesSeparator": "",
"safeOutput": false,
"separator": "",
"sha": "",
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"tagsIgnorePattern": "",
"tagsPattern": "",
"token": "",
"until": "",
"usePosixPathSeparator": false,
"useRestApi": false,
"writeOutputFiles": false,
}
`;
exports[`getInputs should return default values when no inputs are provided 1`] = `
{
"apiUrl": "",
"baseSha": "",
"diffRelative": true,
"dirNames": false,
"dirNamesDeletedFilesIncludeOnlyDeletedDirs": false,
"dirNamesExcludeCurrentDir": false,
"dirNamesIncludeFiles": "",
"dirNamesIncludeFilesSeparator": "",
"escapeJson": false,
"excludeSubmodules": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
"fetchMissingHistoryMaxRetries": 20,
"files": "",
"filesFromSourceFile": "",
"filesFromSourceFileSeparator": "",
"filesIgnore": "",
"filesIgnoreFromSourceFile": "",
"filesIgnoreFromSourceFileSeparator": "",
"filesIgnoreSeparator": "",
"filesIgnoreYaml": "",
"filesIgnoreYamlFromSourceFile": "",
"filesIgnoreYamlFromSourceFileSeparator": "",
"filesSeparator": "",
"filesYaml": "",
"filesYamlFromSourceFile": "",
"filesYamlFromSourceFileSeparator": "",
"includeAllOldNewRenamedFiles": false,
"json": false,
"negationPatternsFirst": false,
"oldNewFilesSeparator": " ",
"oldNewSeparator": ",",
"outputDir": "",
"outputRenamedFilesAsDeletedAndAdded": false,
"path": ".",
"quotepath": true,
"recoverDeletedFiles": false,
"recoverDeletedFilesToDestination": "",
"recoverFiles": "",
"recoverFilesIgnore": "",
"recoverFilesIgnoreSeparator": "
",
"recoverFilesSeparator": "
",
"safeOutput": false,
"separator": "",
"sha": "",
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"tagsIgnorePattern": "",
"tagsPattern": "*",
"token": "",
"until": "",
"usePosixPathSeparator": false,
"useRestApi": false,
"writeOutputFiles": false,
}
`;

View File

@ -0,0 +1,153 @@
import * as core from '@actions/core'
import {getInputs, Inputs} from '../inputs'
import {DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS} from '../constant'
jest.mock('@actions/core')
describe('getInputs', () => {
afterEach(() => {
jest.clearAllMocks()
})
test('should return default values when no inputs are provided', () => {
;(core.getInput as jest.Mock).mockImplementation(name => {
const camelCaseName = name.replace(/_([a-z])/g, (g: string[]) => {
return g[1].toUpperCase()
}) as keyof Inputs
return (DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS[camelCaseName] ||
'') as string
})
;(core.getBooleanInput as jest.Mock).mockImplementation(name => {
const camelCaseName = name.replace(/_([a-z])/g, (g: string[]) => {
return g[1].toUpperCase()
}) as keyof Inputs
return (DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS[camelCaseName] ||
false) as boolean
})
expect(getInputs()).toMatchSnapshot()
})
test('should correctly parse boolean inputs', () => {
;(core.getInput as jest.Mock).mockImplementation(name => {
const camelCaseName = name.replace(/_([a-z])/g, (g: string[]) => {
return g[1].toUpperCase()
}) as keyof Inputs
return (DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS[camelCaseName] ||
'') as string
})
;(core.getBooleanInput as jest.Mock).mockImplementation(name => {
switch (name) {
case 'matrix':
return 'true'
case 'skip_initial_fetch':
return 'true'
default:
return 'false'
}
})
expect(getInputs()).toMatchSnapshot()
})
test('should handle matrix alias correctly', () => {
;(core.getBooleanInput as jest.Mock).mockImplementation(name => {
return name === 'matrix' ? 'true' : 'false'
})
const inputs = getInputs()
expect(inputs).toHaveProperty('json', true)
expect(inputs).toHaveProperty('escapeJson', false)
})
test('should correctly parse string inputs', () => {
;(core.getInput as jest.Mock).mockImplementation(name => {
switch (name) {
case 'token':
return 'token'
case 'api_url':
return 'https://api.github.com'
default:
return ''
}
})
;(core.getBooleanInput as jest.Mock).mockImplementation(name => {
const camelCaseName = name.replace(/_([a-z])/g, (g: string[]) => {
return g[1].toUpperCase()
}) as keyof Inputs
return (DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS[camelCaseName] ||
false) as boolean
})
expect(getInputs()).toMatchSnapshot()
})
test('should correctly parse numeric inputs', () => {
;(core.getInput as jest.Mock).mockImplementation(name => {
switch (name) {
case 'fetch_depth':
return '5'
case 'dir_names_max_depth':
return '2'
default:
return ''
}
})
;(core.getBooleanInput as jest.Mock).mockImplementation(name => {
const camelCaseName = name.replace(/_([a-z])/g, (g: string[]) => {
return g[1].toUpperCase()
}) as keyof Inputs
return (DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS[camelCaseName] ||
false) as boolean
})
expect(getInputs()).toMatchSnapshot()
})
test('should handle invalid numeric inputs correctly', () => {
;(core.getInput as jest.Mock).mockImplementation(name => {
// TODO: Add validation for invalid numbers which should result in an error instead of NaN
switch (name) {
case 'fetch_depth':
return 'invalid'
case 'dir_names_max_depth':
return '2'
default:
return ''
}
})
;(core.getBooleanInput as jest.Mock).mockImplementation(name => {
const camelCaseName = name.replace(/_([a-z])/g, (g: string[]) => {
return g[1].toUpperCase()
}) as keyof Inputs
return (DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS[camelCaseName] ||
false) as boolean
})
expect(getInputs()).toMatchSnapshot()
})
test('should handle negative numeric inputs correctly', () => {
;(core.getInput as jest.Mock).mockImplementation(name => {
// TODO: Add validation for negative numbers which should result in an error
switch (name) {
case 'fetch_depth':
return '-5'
case 'dir_names_max_depth':
return '-2'
default:
return ''
}
})
;(core.getBooleanInput as jest.Mock).mockImplementation(name => {
const camelCaseName = name.replace(/_([a-z])/g, (g: string[]) => {
return g[1].toUpperCase()
}) as keyof Inputs
return (DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS[camelCaseName] ||
false) as boolean
})
expect(getInputs()).toMatchSnapshot()
})
})

View File

@ -1,18 +1,17 @@
import * as core from '@actions/core' import * as core from '@actions/core'
import {promises as fs} from 'fs' import * as exec from '@actions/exec'
import path from 'path'
import {ChangeTypeEnum} from '../changedFiles' import {ChangeTypeEnum} from '../changedFiles'
import {Inputs} from '../inputs' import {Inputs} from '../inputs'
import { import {
getDirname, getDirname,
getDirnameMaxDepth, getDirnameMaxDepth,
getFilteredChangedFiles, getFilteredChangedFiles,
getPreviousGitTag,
normalizeSeparators, normalizeSeparators,
warnUnsupportedRESTAPIInputs warnUnsupportedRESTAPIInputs
} from '../utils' } from '../utils'
const originalPlatform = process.platform const originalPlatform = process.platform
const ACTION_PATH = path.resolve(__dirname, '..', '..', 'action.yml')
function mockedPlatform(platform: string): void { function mockedPlatform(platform: string): void {
Object.defineProperty(process, 'platform', { Object.defineProperty(process, 'platform', {
@ -638,103 +637,125 @@ describe('utils test', () => {
failOnInitialDiffError: false, failOnInitialDiffError: false,
failOnSubmoduleDiffError: false, failOnSubmoduleDiffError: false,
negationPatternsFirst: false, negationPatternsFirst: false,
useRestApi: false useRestApi: false,
excludeSubmodules: false,
fetchMissingHistoryMaxRetries: 20,
usePosixPathSeparator: false,
tagsPattern: '*',
tagsIgnorePattern: ''
} }
const coreWarningSpy = jest.spyOn(core, 'warning') const coreWarningSpy = jest.spyOn(core, 'warning')
await warnUnsupportedRESTAPIInputs({ await warnUnsupportedRESTAPIInputs({
actionPath: ACTION_PATH,
inputs inputs
}) })
expect(coreWarningSpy).toHaveBeenCalledWith( expect(coreWarningSpy).toHaveBeenCalledWith(
'Input "sha" is not supported when using GitHub\'s REST API to get changed files' 'Input "sha" is not supported when using GitHub\'s REST API to get changed files'
) )
expect(coreWarningSpy).toHaveBeenCalledTimes(1)
})
})
describe('getPreviousGitTag', () => {
// Check if the environment variable GITHUB_REPOSITORY_OWNER is 'tj-actions'
const shouldSkip = !!process.env.GITHUB_EVENT_PULL_REQUEST_HEAD_REPO_FORK
// Function returns the second-latest tag and its SHA
it('should return the second latest tag and its SHA when multiple tags are present', async () => {
if (shouldSkip) {
return
}
const result = await getPreviousGitTag({
cwd: '.',
tagsPattern: '*',
tagsIgnorePattern: '',
currentBranch: 'v1.0.1'
})
expect(result).toEqual({
tag: 'v1.0.0',
sha: 'f0751de6af436d4e79016e2041cf6400e0833653'
})
})
// Tags are filtered by a specified pattern when 'tagsPattern' is provided
it('should filter tags by the specified pattern', async () => {
if (shouldSkip) {
return
}
const result = await getPreviousGitTag({
cwd: '.',
tagsPattern: 'v1.*',
tagsIgnorePattern: '',
currentBranch: 'v1.0.1'
})
expect(result).toEqual({
tag: 'v1.0.0',
sha: 'f0751de6af436d4e79016e2041cf6400e0833653'
})
})
// Tags are excluded by a specified ignore pattern when 'tagsIgnorePattern' is provided
it('should exclude tags by the specified ignore pattern', async () => {
if (shouldSkip) {
return
}
const result = await getPreviousGitTag({
cwd: '.',
tagsPattern: '*',
tagsIgnorePattern: 'v0.*.*',
currentBranch: 'v1.0.1'
})
expect(result).toEqual({
tag: 'v1.0.0',
sha: 'f0751de6af436d4e79016e2041cf6400e0833653'
})
}) })
// Throws an error if there are YAML errors in the action file. // No tags are available in the repository
it('should throw an error if there are YAML errors in the action file', async () => { it('should return empty values when no tags are available in the repository', async () => {
const actionPath = './path/to/action.yml' jest.spyOn(exec, 'getExecOutput').mockResolvedValueOnce({
const inputs: Inputs = { stdout: '',
files: '', stderr: '',
filesSeparator: '\n', exitCode: 0
filesFromSourceFile: '', })
filesFromSourceFileSeparator: '\n', const result = await getPreviousGitTag({
filesYaml: '', cwd: '.',
filesYamlFromSourceFile: '', tagsPattern: '*',
filesYamlFromSourceFileSeparator: '\n', tagsIgnorePattern: '',
filesIgnore: '', currentBranch: ''
filesIgnoreSeparator: '\n', })
filesIgnoreFromSourceFile: '', expect(result).toEqual({tag: '', sha: ''})
filesIgnoreFromSourceFileSeparator: '\n', })
filesIgnoreYaml: '',
filesIgnoreYamlFromSourceFile: '',
filesIgnoreYamlFromSourceFileSeparator: '\n',
separator: ' ',
includeAllOldNewRenamedFiles: false,
oldNewSeparator: ',',
oldNewFilesSeparator: ' ',
sha: '1313123',
baseSha: '',
since: '',
until: '',
path: '.',
quotepath: true,
diffRelative: true,
dirNames: false,
dirNamesMaxDepth: undefined,
dirNamesExcludeCurrentDir: false,
dirNamesIncludeFiles: '',
dirNamesIncludeFilesSeparator: '\n',
dirNamesDeletedFilesIncludeOnlyDeletedDirs: false,
json: false,
escapeJson: true,
safeOutput: true,
fetchDepth: 50,
fetchAdditionalSubmoduleHistory: false,
sinceLastRemoteCommit: false,
writeOutputFiles: false,
outputDir: '.github/outputs',
outputRenamedFilesAsDeletedAndAdded: false,
recoverDeletedFiles: false,
recoverDeletedFilesToDestination: '',
recoverFiles: '',
recoverFilesSeparator: '\n',
recoverFilesIgnore: '',
recoverFilesIgnoreSeparator: '\n',
token: '${{ github.token }}',
apiUrl: '${{ github.api_url }}',
skipInitialFetch: false,
failOnInitialDiffError: false,
failOnSubmoduleDiffError: false,
negationPatternsFirst: false,
useRestApi: false
}
// Mocking readFile to return action file contents with errors // Only one tag is available, making it impossible to find a previous tag
jest.spyOn(fs, 'readFile').mockResolvedValue(` it('should return empty values when only one tag is available', async () => {
inputs: jest.spyOn(exec, 'getExecOutput').mockResolvedValueOnce({
files: stdout:
description: Files 'v1.0.1|f0751de6af436d4e79016e2041cf6400e0833653|2021-01-01T00:00:00Z',
required: true stderr: '',
default: "" exitCode: 0
sha: })
description: SHA const result = await getPreviousGitTag({
required: true cwd: '.',
default: abc123 tagsPattern: '*',
token: tagsIgnorePattern: '',
description: Token currentBranch: 'v1.0.1'
required: true })
default: my-token expect(result).toEqual({tag: '', sha: ''})
warnings: })
| Invalid input value`)
// Git commands fail and throw errors
it('should throw an error when git commands fail', async () => {
jest
.spyOn(exec, 'getExecOutput')
.mockRejectedValue(new Error('git command failed'))
await expect( await expect(
warnUnsupportedRESTAPIInputs({actionPath, inputs}) getPreviousGitTag({
).rejects.toThrow( cwd: '.',
/YAML errors in .\/path\/to\/action.yml: YAMLParseError: Not a YAML token: Invalid input value at line 16, column 13:/ tagsPattern: '*',
) tagsIgnorePattern: '',
currentBranch: 'v1.0.1'
})
).rejects.toThrow('git command failed')
}) })
}) })
}) })

View File

@ -2,6 +2,7 @@ import * as core from '@actions/core'
import * as github from '@actions/github' import * as github from '@actions/github'
import type {RestEndpointMethodTypes} from '@octokit/rest' import type {RestEndpointMethodTypes} from '@octokit/rest'
import flatten from 'lodash/flatten' import flatten from 'lodash/flatten'
import convertPath from '@stdlib/utils-convert-path'
import mm from 'micromatch' import mm from 'micromatch'
import * as path from 'path' import * as path from 'path'
import {setOutputsAndGetModifiedAndChangedFilesStatus} from './changedFilesOutput' import {setOutputsAndGetModifiedAndChangedFilesStatus} from './changedFilesOutput'
@ -121,13 +122,13 @@ export const processChangedFiles = async ({
export const getRenamedFiles = async ({ export const getRenamedFiles = async ({
inputs, inputs,
workingDirectory, workingDirectory,
hasSubmodule, diffSubmodule,
diffResult, diffResult,
submodulePaths submodulePaths
}: { }: {
inputs: Inputs inputs: Inputs
workingDirectory: string workingDirectory: string
hasSubmodule: boolean diffSubmodule: boolean
diffResult: DiffResult diffResult: DiffResult
submodulePaths: string[] submodulePaths: string[]
}): Promise<{paths: string; count: string}> => { }): Promise<{paths: string; count: string}> => {
@ -139,7 +140,7 @@ export const getRenamedFiles = async ({
oldNewSeparator: inputs.oldNewSeparator oldNewSeparator: inputs.oldNewSeparator
}) })
if (hasSubmodule) { if (diffSubmodule) {
for (const submodulePath of submodulePaths) { for (const submodulePath of submodulePaths) {
const submoduleShaResult = await gitSubmoduleDiffSHA({ const submoduleShaResult = await gitSubmoduleDiffSHA({
cwd: workingDirectory, cwd: workingDirectory,
@ -217,7 +218,7 @@ export type ChangedFiles = {
export const getAllDiffFiles = async ({ export const getAllDiffFiles = async ({
workingDirectory, workingDirectory,
hasSubmodule, diffSubmodule,
diffResult, diffResult,
submodulePaths, submodulePaths,
outputRenamedFilesAsDeletedAndAdded, outputRenamedFilesAsDeletedAndAdded,
@ -226,7 +227,7 @@ export const getAllDiffFiles = async ({
failOnSubmoduleDiffError failOnSubmoduleDiffError
}: { }: {
workingDirectory: string workingDirectory: string
hasSubmodule: boolean diffSubmodule: boolean
diffResult: DiffResult diffResult: DiffResult
submodulePaths: string[] submodulePaths: string[]
outputRenamedFilesAsDeletedAndAdded: boolean outputRenamedFilesAsDeletedAndAdded: boolean
@ -243,7 +244,7 @@ export const getAllDiffFiles = async ({
failOnInitialDiffError failOnInitialDiffError
}) })
if (hasSubmodule) { if (diffSubmodule) {
for (const submodulePath of submodulePaths) { for (const submodulePath of submodulePaths) {
const submoduleShaResult = await gitSubmoduleDiffSHA({ const submoduleShaResult = await gitSubmoduleDiffSHA({
cwd: workingDirectory, cwd: workingDirectory,
@ -355,9 +356,13 @@ function* getChangeTypeFilesGenerator({
filePaths, filePaths,
dirNamesIncludeFilePatterns dirNamesIncludeFilePatterns
})) { })) {
if (isWindows() && inputs.usePosixPathSeparator) {
yield convertPath(filePath, 'mixed')
} else {
yield filePath yield filePath
} }
} }
}
} }
export const getChangeTypeFiles = async ({ export const getChangeTypeFiles = async ({
@ -402,8 +407,12 @@ function* getAllChangeTypeFilesGenerator({
filePaths, filePaths,
dirNamesIncludeFilePatterns dirNamesIncludeFilePatterns
})) { })) {
if (isWindows() && inputs.usePosixPathSeparator) {
yield convertPath(filePath, 'mixed')
} else {
yield filePath yield filePath
} }
}
} }
export const getAllChangeTypeFiles = async ({ export const getAllChangeTypeFiles = async ({
@ -475,7 +484,7 @@ export const getChangedFilesFromGithubAPI = async ({
if (changeType === ChangeTypeEnum.Renamed) { if (changeType === ChangeTypeEnum.Renamed) {
if (inputs.outputRenamedFilesAsDeletedAndAdded) { if (inputs.outputRenamedFilesAsDeletedAndAdded) {
changedFiles[ChangeTypeEnum.Deleted].push(item.filename) changedFiles[ChangeTypeEnum.Deleted].push(item.previous_filename || '')
changedFiles[ChangeTypeEnum.Added].push(item.filename) changedFiles[ChangeTypeEnum.Added].push(item.filename)
} else { } else {
changedFiles[ChangeTypeEnum.Renamed].push(item.filename) changedFiles[ChangeTypeEnum.Renamed].push(item.filename)

View File

@ -247,7 +247,7 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
await setOutput({ await setOutput({
key: getOutputKey('any_changed', outputPrefix), key: getOutputKey('any_changed', outputPrefix),
value: allChangedFiles.paths.length > 0 && filePatterns.length > 0, value: allChangedFiles.paths.length > 0,
writeOutputFiles: inputs.writeOutputFiles, writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir, outputDir: inputs.outputDir,
json: inputs.json json: inputs.json
@ -336,7 +336,7 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
await setOutput({ await setOutput({
key: getOutputKey('any_modified', outputPrefix), key: getOutputKey('any_modified', outputPrefix),
value: allModifiedFiles.paths.length > 0 && filePatterns.length > 0, value: allModifiedFiles.paths.length > 0,
writeOutputFiles: inputs.writeOutputFiles, writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir, outputDir: inputs.outputDir,
json: inputs.json json: inputs.json
@ -442,7 +442,7 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
await setOutput({ await setOutput({
key: getOutputKey('any_deleted', outputPrefix), key: getOutputKey('any_deleted', outputPrefix),
value: deletedFiles.paths.length > 0 && filePatterns.length > 0, value: deletedFiles.paths.length > 0,
writeOutputFiles: inputs.writeOutputFiles, writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir, outputDir: inputs.outputDir,
json: inputs.json json: inputs.json
@ -496,7 +496,7 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
}) })
return { return {
anyModified: allModifiedFiles.paths.length > 0 && filePatterns.length > 0, anyModified: allModifiedFiles.paths.length > 0,
anyChanged: allChangedFiles.paths.length > 0 && filePatterns.length > 0 anyChanged: allChangedFiles.paths.length > 0
} }
} }

View File

@ -86,15 +86,27 @@ export interface DiffResult {
initialCommit?: boolean initialCommit?: boolean
} }
export const getSHAForNonPullRequestEvent = async ( interface SHAForNonPullRequestEvent {
inputs: Inputs, inputs: Inputs
env: Env, env: Env
workingDirectory: string, workingDirectory: string
isShallow: boolean, isShallow: boolean
hasSubmodule: boolean, diffSubmodule: boolean
gitFetchExtraArgs: string[], gitFetchExtraArgs: string[]
isTag: boolean isTag: boolean
): Promise<DiffResult> => { remoteName: string
}
export const getSHAForNonPullRequestEvent = async ({
inputs,
env,
workingDirectory,
isShallow,
diffSubmodule,
gitFetchExtraArgs,
isTag,
remoteName
}: SHAForNonPullRequestEvent): Promise<DiffResult> => {
let targetBranch = env.GITHUB_REF_NAME let targetBranch = env.GITHUB_REF_NAME
let currentBranch = targetBranch let currentBranch = targetBranch
let initialCommit = false let initialCommit = false
@ -122,8 +134,8 @@ export const getSHAForNonPullRequestEvent = async (
'-u', '-u',
'--progress', '--progress',
`--deepen=${inputs.fetchDepth}`, `--deepen=${inputs.fetchDepth}`,
'origin', remoteName,
`+refs/heads/${sourceBranch}:refs/remotes/origin/${sourceBranch}` `+refs/heads/${sourceBranch}:refs/remotes/${remoteName}/${sourceBranch}`
] ]
}) })
} else { } else {
@ -134,13 +146,13 @@ export const getSHAForNonPullRequestEvent = async (
'-u', '-u',
'--progress', '--progress',
`--deepen=${inputs.fetchDepth}`, `--deepen=${inputs.fetchDepth}`,
'origin', remoteName,
`+refs/heads/${targetBranch}:refs/remotes/origin/${targetBranch}` `+refs/heads/${targetBranch}:refs/remotes/${remoteName}/${targetBranch}`
] ]
}) })
} }
if (hasSubmodule) { if (diffSubmodule) {
await gitFetchSubmodules({ await gitFetchSubmodules({
cwd: workingDirectory, cwd: workingDirectory,
args: [ args: [
@ -152,7 +164,7 @@ export const getSHAForNonPullRequestEvent = async (
}) })
} }
} else { } else {
if (hasSubmodule && inputs.fetchAdditionalSubmoduleHistory) { if (diffSubmodule && inputs.fetchAdditionalSubmoduleHistory) {
await gitFetchSubmodules({ await gitFetchSubmodules({
cwd: workingDirectory, cwd: workingDirectory,
args: [ args: [
@ -228,7 +240,12 @@ export const getSHAForNonPullRequestEvent = async (
} }
} else if (isTag) { } else if (isTag) {
core.debug('Getting previous SHA for tag...') core.debug('Getting previous SHA for tag...')
const {sha, tag} = await getPreviousGitTag({cwd: workingDirectory}) const {sha, tag} = await getPreviousGitTag({
cwd: workingDirectory,
tagsPattern: inputs.tagsPattern,
tagsIgnorePattern: inputs.tagsIgnorePattern,
currentBranch
})
previousSha = sha previousSha = sha
targetBranch = tag targetBranch = tag
} else { } else {
@ -307,14 +324,23 @@ export const getSHAForNonPullRequestEvent = async (
} }
} }
export const getSHAForPullRequestEvent = async ( interface SHAForPullRequestEvent {
inputs: Inputs, inputs: Inputs
env: Env, workingDirectory: string
workingDirectory: string, isShallow: boolean
isShallow: boolean, diffSubmodule: boolean
hasSubmodule: boolean,
gitFetchExtraArgs: string[] gitFetchExtraArgs: string[]
): Promise<DiffResult> => { remoteName: string
}
export const getSHAForPullRequestEvent = async ({
inputs,
workingDirectory,
isShallow,
diffSubmodule,
gitFetchExtraArgs,
remoteName
}: SHAForPullRequestEvent): Promise<DiffResult> => {
let targetBranch = github.context.payload.pull_request?.base?.ref let targetBranch = github.context.payload.pull_request?.base?.ref
const currentBranch = github.context.payload.pull_request?.head?.ref const currentBranch = github.context.payload.pull_request?.head?.ref
if (inputs.sinceLastRemoteCommit) { if (inputs.sinceLastRemoteCommit) {
@ -330,7 +356,7 @@ export const getSHAForPullRequestEvent = async (
...gitFetchExtraArgs, ...gitFetchExtraArgs,
'-u', '-u',
'--progress', '--progress',
'origin', remoteName,
`pull/${github.context.payload.pull_request?.number}/head:${currentBranch}` `pull/${github.context.payload.pull_request?.number}/head:${currentBranch}`
] ]
}) })
@ -343,8 +369,8 @@ export const getSHAForPullRequestEvent = async (
'-u', '-u',
'--progress', '--progress',
`--deepen=${inputs.fetchDepth}`, `--deepen=${inputs.fetchDepth}`,
'origin', remoteName,
`+refs/heads/${currentBranch}*:refs/remotes/origin/${currentBranch}*` `+refs/heads/${currentBranch}*:refs/remotes/${remoteName}/${currentBranch}*`
] ]
}) })
} }
@ -354,8 +380,6 @@ export const getSHAForPullRequestEvent = async (
'Failed to fetch pull request branch. Please ensure "persist-credentials" is set to "true" when checking out the repository. See: https://github.com/actions/checkout#usage' 'Failed to fetch pull request branch. Please ensure "persist-credentials" is set to "true" when checking out the repository. See: https://github.com/actions/checkout#usage'
) )
} }
if (!inputs.sinceLastRemoteCommit) {
core.debug('Fetching target branch...') core.debug('Fetching target branch...')
await gitFetch({ await gitFetch({
cwd: workingDirectory, cwd: workingDirectory,
@ -364,12 +388,12 @@ export const getSHAForPullRequestEvent = async (
'-u', '-u',
'--progress', '--progress',
`--deepen=${inputs.fetchDepth}`, `--deepen=${inputs.fetchDepth}`,
'origin', remoteName,
`+refs/heads/${targetBranch}:refs/remotes/origin/${targetBranch}` `+refs/heads/${github.context.payload.pull_request?.base?.ref}:refs/remotes/${remoteName}/${github.context.payload.pull_request?.base?.ref}`
] ]
}) })
if (hasSubmodule) { if (diffSubmodule) {
await gitFetchSubmodules({ await gitFetchSubmodules({
cwd: workingDirectory, cwd: workingDirectory,
args: [ args: [
@ -380,9 +404,8 @@ export const getSHAForPullRequestEvent = async (
] ]
}) })
} }
}
} else { } else {
if (hasSubmodule && inputs.fetchAdditionalSubmoduleHistory) { if (diffSubmodule && inputs.fetchAdditionalSubmoduleHistory) {
await gitFetchSubmodules({ await gitFetchSubmodules({
cwd: workingDirectory, cwd: workingDirectory,
args: [ args: [
@ -427,10 +450,7 @@ export const getSHAForPullRequestEvent = async (
} }
} }
if ( if (!github.context.payload.pull_request?.base?.ref) {
!github.context.payload.pull_request?.base?.ref ||
github.context.payload.head?.repo?.fork === 'true'
) {
diff = '..' diff = '..'
} }
@ -487,17 +507,14 @@ export const getSHAForPullRequestEvent = async (
} }
} }
} else { } else {
if (github.context.payload.action === 'closed') {
previousSha = github.context.payload.pull_request?.base?.sha previousSha = github.context.payload.pull_request?.base?.sha
} else {
previousSha = await getRemoteBranchHeadSha({
cwd: workingDirectory,
branch: targetBranch
})
if (!previousSha) { if (!previousSha) {
previousSha = github.context.payload.pull_request?.base?.sha previousSha = await getRemoteBranchHeadSha({
} cwd: workingDirectory,
remoteName,
branch: targetBranch
})
} }
if (isShallow) { if (isShallow) {
@ -513,7 +530,11 @@ export const getSHAForPullRequestEvent = async (
'Merge base is not in the local history, fetching remote target branch...' 'Merge base is not in the local history, fetching remote target branch...'
) )
for (let i = 1; i <= 10; i++) { for (
let i = 1;
i <= (inputs.fetchMissingHistoryMaxRetries || 10);
i++
) {
await gitFetch({ await gitFetch({
cwd: workingDirectory, cwd: workingDirectory,
args: [ args: [
@ -521,8 +542,8 @@ export const getSHAForPullRequestEvent = async (
'-u', '-u',
'--progress', '--progress',
`--deepen=${inputs.fetchDepth}`, `--deepen=${inputs.fetchDepth}`,
'origin', remoteName,
`+refs/heads/${targetBranch}:refs/remotes/origin/${targetBranch}` `+refs/heads/${targetBranch}:refs/remotes/${remoteName}/${targetBranch}`
] ]
}) })

View File

@ -1,24 +1,29 @@
import {Inputs} from './inputs' import {Inputs} from './inputs'
export const UNSUPPORTED_REST_API_INPUTS: (keyof Inputs)[] = [ export const DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS: Partial<Inputs> = {
'sha', sha: '',
'baseSha', baseSha: '',
'since', since: '',
'until', until: '',
'path', path: '.',
'quotepath', quotepath: true,
'diffRelative', diffRelative: true,
'sinceLastRemoteCommit', sinceLastRemoteCommit: false,
'recoverDeletedFiles', recoverDeletedFiles: false,
'recoverDeletedFilesToDestination', recoverDeletedFilesToDestination: '',
'recoverFiles', recoverFiles: '',
'recoverFilesSeparator', recoverFilesSeparator: '\n',
'recoverFilesIgnore', recoverFilesIgnore: '',
'recoverFilesIgnoreSeparator', recoverFilesIgnoreSeparator: '\n',
'includeAllOldNewRenamedFiles', includeAllOldNewRenamedFiles: false,
'oldNewSeparator', oldNewSeparator: ',',
'oldNewFilesSeparator', oldNewFilesSeparator: ' ',
'skipInitialFetch', skipInitialFetch: false,
'fetchAdditionalSubmoduleHistory', fetchAdditionalSubmoduleHistory: false,
'dirNamesDeletedFilesIncludeOnlyDeletedDirs' dirNamesDeletedFilesIncludeOnlyDeletedDirs: false,
] excludeSubmodules: false,
fetchMissingHistoryMaxRetries: 20,
usePosixPathSeparator: false,
tagsPattern: '*',
tagsIgnorePattern: ''
}

View File

@ -1,13 +1,10 @@
import * as core from '@actions/core'
export type Env = { export type Env = {
GITHUB_REF_NAME: string GITHUB_REF_NAME: string
GITHUB_REF: string GITHUB_REF: string
GITHUB_WORKSPACE: string GITHUB_WORKSPACE: string
} }
export const getEnv = async (): Promise<Env> => {
core.debug(`Process Env: ${JSON.stringify(process.env, null, 2)}`)
export const getEnv = async (): Promise<Env> => {
return { return {
GITHUB_REF_NAME: process.env.GITHUB_REF_NAME || '', GITHUB_REF_NAME: process.env.GITHUB_REF_NAME || '',
GITHUB_REF: process.env.GITHUB_REF || '', GITHUB_REF: process.env.GITHUB_REF || '',

View File

@ -54,6 +54,11 @@ export type Inputs = {
failOnSubmoduleDiffError: boolean failOnSubmoduleDiffError: boolean
negationPatternsFirst: boolean negationPatternsFirst: boolean
useRestApi: boolean useRestApi: boolean
excludeSubmodules: boolean
fetchMissingHistoryMaxRetries?: number
usePosixPathSeparator: boolean
tagsPattern: string
tagsIgnorePattern?: string
} }
export const getInputs = (): Inputs => { export const getInputs = (): Inputs => {
@ -154,8 +159,15 @@ export const getInputs = (): Inputs => {
trimWhitespace: false trimWhitespace: false
} }
) )
const json = core.getBooleanInput('json', {required: false}) let json = core.getBooleanInput('json', {required: false})
const escapeJson = core.getBooleanInput('escape_json', {required: false}) let escapeJson = core.getBooleanInput('escape_json', {required: false})
const matrix = core.getBooleanInput('matrix', {required: false})
if (matrix) {
json = true
escapeJson = false
}
const safeOutput = core.getBooleanInput('safe_output', {required: false}) const safeOutput = core.getBooleanInput('safe_output', {required: false})
const fetchDepth = core.getInput('fetch_depth', {required: false}) const fetchDepth = core.getInput('fetch_depth', {required: false})
const sinceLastRemoteCommit = core.getBooleanInput( const sinceLastRemoteCommit = core.getBooleanInput(
@ -233,6 +245,31 @@ export const getInputs = (): Inputs => {
required: false required: false
}) })
const excludeSubmodules = core.getBooleanInput('exclude_submodules', {
required: false
})
const fetchMissingHistoryMaxRetries = core.getInput(
'fetch_missing_history_max_retries',
{required: false}
)
const usePosixPathSeparator = core.getBooleanInput(
'use_posix_path_separator',
{
required: false
}
)
const tagsPattern = core.getInput('tags_pattern', {
required: false,
trimWhitespace: false
})
const tagsIgnorePattern = core.getInput('tags_ignore_pattern', {
required: false,
trimWhitespace: false
})
const inputs: Inputs = { const inputs: Inputs = {
files, files,
filesSeparator, filesSeparator,
@ -272,6 +309,10 @@ export const getInputs = (): Inputs => {
skipInitialFetch, skipInitialFetch,
fetchAdditionalSubmoduleHistory, fetchAdditionalSubmoduleHistory,
dirNamesDeletedFilesIncludeOnlyDeletedDirs, dirNamesDeletedFilesIncludeOnlyDeletedDirs,
excludeSubmodules,
usePosixPathSeparator,
tagsPattern,
tagsIgnorePattern,
// End Not Supported via REST API // End Not Supported via REST API
dirNames, dirNames,
dirNamesExcludeCurrentDir, dirNamesExcludeCurrentDir,
@ -290,6 +331,7 @@ export const getInputs = (): Inputs => {
} }
if (fetchDepth) { if (fetchDepth) {
// Fallback to at least 2 if the fetch_depth is less than 2
inputs.fetchDepth = Math.max(parseInt(fetchDepth, 10), 2) inputs.fetchDepth = Math.max(parseInt(fetchDepth, 10), 2)
} }
@ -297,5 +339,13 @@ export const getInputs = (): Inputs => {
inputs.dirNamesMaxDepth = parseInt(dirNamesMaxDepth, 10) inputs.dirNamesMaxDepth = parseInt(dirNamesMaxDepth, 10)
} }
if (fetchMissingHistoryMaxRetries) {
// Fallback to at least 1 if the fetch_missing_history_max_retries is less than 1
inputs.fetchMissingHistoryMaxRetries = Math.max(
parseInt(fetchMissingHistoryMaxRetries, 10),
1
)
}
return inputs return inputs
} }

View File

@ -64,14 +64,26 @@ const getChangedFilesFromLocalGitHistory = async ({
} }
const isShallow = await isRepoShallow({cwd: workingDirectory}) const isShallow = await isRepoShallow({cwd: workingDirectory})
const hasSubmodule = await submoduleExists({cwd: workingDirectory}) let diffSubmodule = false
let gitFetchExtraArgs = ['--no-tags', '--prune', '--recurse-submodules'] let gitFetchExtraArgs = ['--no-tags', '--prune']
if (inputs.excludeSubmodules) {
core.info('Excluding submodules from the diff')
} else {
diffSubmodule = await submoduleExists({cwd: workingDirectory})
}
if (diffSubmodule) {
gitFetchExtraArgs.push('--recurse-submodules')
}
const isTag = env.GITHUB_REF?.startsWith('refs/tags/') const isTag = env.GITHUB_REF?.startsWith('refs/tags/')
const remoteName = 'origin'
const outputRenamedFilesAsDeletedAndAdded = const outputRenamedFilesAsDeletedAndAdded =
inputs.outputRenamedFilesAsDeletedAndAdded inputs.outputRenamedFilesAsDeletedAndAdded
let submodulePaths: string[] = [] let submodulePaths: string[] = []
if (hasSubmodule) { if (diffSubmodule) {
submodulePaths = await getSubmodulePath({cwd: workingDirectory}) submodulePaths = await getSubmodulePath({cwd: workingDirectory})
} }
@ -83,29 +95,30 @@ const getChangedFilesFromLocalGitHistory = async ({
if (!github.context.payload.pull_request?.base?.ref) { if (!github.context.payload.pull_request?.base?.ref) {
core.info(`Running on a ${github.context.eventName || 'push'} event...`) core.info(`Running on a ${github.context.eventName || 'push'} event...`)
diffResult = await getSHAForNonPullRequestEvent( diffResult = await getSHAForNonPullRequestEvent({
inputs, inputs,
env, env,
workingDirectory, workingDirectory,
isShallow, isShallow,
hasSubmodule, diffSubmodule,
gitFetchExtraArgs, gitFetchExtraArgs,
isTag isTag,
) remoteName
})
} else { } else {
core.info( core.info(
`Running on a ${github.context.eventName || 'pull_request'} (${ `Running on a ${github.context.eventName || 'pull_request'} (${
github.context.payload.action github.context.payload.action
}) event...` }) event...`
) )
diffResult = await getSHAForPullRequestEvent( diffResult = await getSHAForPullRequestEvent({
inputs, inputs,
env,
workingDirectory, workingDirectory,
isShallow, isShallow,
hasSubmodule, diffSubmodule,
gitFetchExtraArgs gitFetchExtraArgs,
) remoteName
})
} }
if (diffResult.initialCommit) { if (diffResult.initialCommit) {
@ -120,7 +133,7 @@ const getChangedFilesFromLocalGitHistory = async ({
const allDiffFiles = await getAllDiffFiles({ const allDiffFiles = await getAllDiffFiles({
workingDirectory, workingDirectory,
hasSubmodule, diffSubmodule,
diffResult, diffResult,
submodulePaths, submodulePaths,
outputRenamedFilesAsDeletedAndAdded, outputRenamedFilesAsDeletedAndAdded,
@ -146,7 +159,7 @@ const getChangedFilesFromLocalGitHistory = async ({
deletedFiles: allDiffFiles[ChangeTypeEnum.Deleted], deletedFiles: allDiffFiles[ChangeTypeEnum.Deleted],
recoverPatterns, recoverPatterns,
diffResult, diffResult,
hasSubmodule, diffSubmodule,
submodulePaths submodulePaths
}) })
} }
@ -164,7 +177,7 @@ const getChangedFilesFromLocalGitHistory = async ({
const allOldNewRenamedFiles = await getRenamedFiles({ const allOldNewRenamedFiles = await getRenamedFiles({
inputs, inputs,
workingDirectory, workingDirectory,
hasSubmodule, diffSubmodule,
diffResult, diffResult,
submodulePaths submodulePaths
}) })
@ -221,8 +234,6 @@ export async function run(): Promise<void> {
const inputs = getInputs() const inputs = getInputs()
core.debug(`Inputs: ${JSON.stringify(inputs, null, 2)}`) core.debug(`Inputs: ${JSON.stringify(inputs, null, 2)}`)
core.debug(`Github Context: ${JSON.stringify(github.context, null, 2)}`)
const workingDirectory = path.resolve( const workingDirectory = path.resolve(
env.GITHUB_WORKSPACE || process.cwd(), env.GITHUB_WORKSPACE || process.cwd(),
inputs.useRestApi ? '.' : inputs.path inputs.useRestApi ? '.' : inputs.path
@ -256,12 +267,7 @@ export async function run(): Promise<void> {
(!hasGitDirectory || inputs.useRestApi) (!hasGitDirectory || inputs.useRestApi)
) { ) {
core.info("Using GitHub's REST API to get changed files") core.info("Using GitHub's REST API to get changed files")
if (process.env.GITHUB_ACTION_PATH) { await warnUnsupportedRESTAPIInputs({inputs})
await warnUnsupportedRESTAPIInputs({
actionPath: path.join(process.env.GITHUB_ACTION_PATH, 'action.yml'),
inputs
})
}
await getChangedFilesFromRESTAPI({ await getChangedFilesFromRESTAPI({
inputs, inputs,
filePatterns, filePatterns,
@ -269,9 +275,8 @@ export async function run(): Promise<void> {
}) })
} else { } else {
if (!hasGitDirectory) { if (!hasGitDirectory) {
core.info(`Running on a ${github.context.eventName} event...`)
throw new Error( throw new Error(
`Can't find local .git in ${workingDirectory} directory. Please run actions/checkout before this action (Make sure the 'path' input is correct). If you intend to use Github's REST API note that only pull_request* events are supported.` `Unable to locate the git repository in the given path: ${workingDirectory}.\n Please run actions/checkout before this action (Make sure the 'path' input is correct).\n If you intend to use Github's REST API note that only pull_request* events are supported. Current event is "${github.context.eventName}".`
) )
} }
@ -286,11 +291,8 @@ export async function run(): Promise<void> {
} }
} }
/* istanbul ignore if */ // eslint-disable-next-line github/no-then
if (!process.env.TESTING) { run().catch(e => {
// eslint-disable-next-line github/no-then
run().catch(e => {
core.setFailed(e.message || e) core.setFailed(e.message || e)
process.exit(1) process.exit(1)
}) })
}

View File

@ -10,7 +10,7 @@ import {createInterface} from 'readline'
import {parseDocument} from 'yaml' import {parseDocument} from 'yaml'
import {ChangedFiles, ChangeTypeEnum} from './changedFiles' import {ChangedFiles, ChangeTypeEnum} from './changedFiles'
import {DiffResult} from './commitSha' import {DiffResult} from './commitSha'
import {UNSUPPORTED_REST_API_INPUTS} from './constant' import {DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS} from './constant'
import {Inputs} from './inputs' import {Inputs} from './inputs'
const MINIMUM_GIT_VERSION = '2.18.0' const MINIMUM_GIT_VERSION = '2.18.0'
@ -32,11 +32,13 @@ export const normalizeSeparators = (p: string): string => {
// Remove redundant slashes // Remove redundant slashes
const isUnc = /^\\\\+[^\\]/.test(p) // e.g. \\hello const isUnc = /^\\\\+[^\\]/.test(p) // e.g. \\hello
return (isUnc ? '\\' : '') + p.replace(/\\\\+/g, '\\') // preserve leading \\ for UNC p = (isUnc ? '\\' : '') + p.replace(/\\\\+/g, '\\') // preserve leading \\ for UNC
} else {
// Remove redundant slashes on Linux/macOS
p = p.replace(/\/\/+/g, '/')
} }
// Remove redundant slashes return p
return p.replace(/\/\/+/g, '/')
} }
/** /**
@ -171,15 +173,16 @@ async function* lineOfFileGenerator({
input: fileStream, input: fileStream,
crlfDelay: Infinity crlfDelay: Infinity
}) })
for await (const line of rl) { for await (let line of rl) {
if (!line.startsWith('#') && line !== '') { if (!line.startsWith('#') && line !== '') {
if (excludedFiles) { if (excludedFiles) {
if (line.startsWith('!')) { line = line.startsWith('!') ? line : `!${line}`
if (line.endsWith(path.sep)) {
line = `${line}**`
}
yield line yield line
} else { } else {
yield `!${line}` line = line.endsWith(path.sep) ? `${line}**` : line
}
} else {
yield line yield line
} }
} }
@ -684,14 +687,16 @@ export const isInsideWorkTree = async ({
export const getRemoteBranchHeadSha = async ({ export const getRemoteBranchHeadSha = async ({
cwd, cwd,
branch branch,
remoteName
}: { }: {
cwd: string cwd: string
branch: string branch: string
remoteName: string
}): Promise<string> => { }): Promise<string> => {
const {stdout} = await exec.getExecOutput( const {stdout} = await exec.getExecOutput(
'git', 'git',
['rev-parse', `origin/${branch}`], ['rev-parse', `${remoteName}/${branch}`],
{ {
cwd, cwd,
silent: !core.isDebug() silent: !core.isDebug()
@ -826,41 +831,80 @@ export const cleanShaInput = async ({
return stdout.trim() return stdout.trim()
} }
export const getPreviousGitTag = async ({ export const getPreviousGitTag = async ({
cwd cwd,
tagsPattern,
currentBranch,
tagsIgnorePattern
}: { }: {
cwd: string cwd: string
tagsPattern: string
currentBranch: string
tagsIgnorePattern?: string
}): Promise<{tag: string; sha: string}> => { }): Promise<{tag: string; sha: string}> => {
const ignorePatterns: string[] = []
let currentShaDate: Date | null = null
const {stdout} = await exec.getExecOutput( const {stdout} = await exec.getExecOutput(
'git', 'git',
['tag', '--sort=-creatordate'], [
'tag',
'--sort=-creatordate',
'--format=%(refname:short)|%(objectname)|%(creatordate:iso)'
],
{ {
cwd, cwd,
silent: !core.isDebug() silent: !core.isDebug()
} }
) )
if (tagsIgnorePattern) {
ignorePatterns.push(tagsIgnorePattern)
}
if (currentBranch) {
ignorePatterns.push(currentBranch)
try {
const {stdout: currentShaDateOutput} = await exec.getExecOutput(
'git',
['show', '-s', '--format=%ai', currentBranch],
{
cwd,
silent: !core.isDebug()
}
)
currentShaDate = new Date(currentShaDateOutput.trim())
} catch (error) {
// Handle the case where the current branch doesn't exist
// This might happen in detached head state
core.warning(`Failed to get date for current branch ${currentBranch}`)
}
}
const previousTag: {tag: string; sha: string} = {tag: '', sha: ''}
const tags = stdout.trim().split('\n') const tags = stdout.trim().split('\n')
for (const tagData of tags) {
const [tag, sha, dateString] = tagData.split('|')
if (!mm.isMatch(tag, tagsPattern) || mm.isMatch(tag, ignorePatterns)) {
continue
}
const date = new Date(dateString)
if (currentShaDate && date >= currentShaDate) {
continue
}
// Found a suitable tag, no need to continue
previousTag.tag = tag
previousTag.sha = sha
break
}
if (tags.length < 2) { if (!previousTag.tag) {
core.warning('No previous tag found') core.warning('No previous tag found')
return {tag: '', sha: ''}
} }
const previousTag = tags[1] return previousTag
const {stdout: stdout2} = await exec.getExecOutput(
'git',
['rev-parse', previousTag],
{
cwd,
silent: !core.isDebug()
}
)
const sha = stdout2.trim()
return {tag: previousTag, sha}
} }
export const canDiffCommits = async ({ export const canDiffCommits = async ({
@ -901,7 +945,7 @@ export const canDiffCommits = async ({
} else { } else {
const {exitCode, stderr} = await exec.getExecOutput( const {exitCode, stderr} = await exec.getExecOutput(
'git', 'git',
['diff', '--quiet', sha1, sha2], ['diff', '--no-patch', sha1, sha2],
{ {
cwd, cwd,
ignoreReturnCode: true, ignoreReturnCode: true,
@ -998,6 +1042,7 @@ export const getFilePatterns = async ({
if (inputs.files) { if (inputs.files) {
const filesPatterns = inputs.files const filesPatterns = inputs.files
.split(inputs.filesSeparator) .split(inputs.filesSeparator)
.map(p => (p.endsWith(path.sep) ? `${p}**` : p))
.filter(Boolean) .filter(Boolean)
cleanedFilePatterns.push(...filesPatterns) cleanedFilePatterns.push(...filesPatterns)
@ -1029,8 +1074,9 @@ export const getFilePatterns = async ({
.split(inputs.filesIgnoreSeparator) .split(inputs.filesIgnoreSeparator)
.filter(Boolean) .filter(Boolean)
.map(p => { .map(p => {
if (!p.startsWith('!')) { p = p.startsWith('!') ? p : `!${p}`
p = `!${p}` if (p.endsWith(path.sep)) {
p = `${p}**`
} }
return p return p
}) })
@ -1212,16 +1258,11 @@ export const getYamlFilePatterns = async ({
const newFilePatterns = await getYamlFilePatternsFromContents({filePath}) const newFilePatterns = await getYamlFilePatternsFromContents({filePath})
for (const key in newFilePatterns) { for (const key in newFilePatterns) {
if (key in filePatterns) { if (key in filePatterns) {
core.warning( filePatterns[key] = [...filePatterns[key], ...newFilePatterns[key]]
`files_yaml_from_source_file: Duplicated key ${key} detected in ${filePath}, the ${filePatterns[key]} will be overwritten by ${newFilePatterns[key]}.` } else {
) filePatterns[key] = newFilePatterns[key]
} }
} }
filePatterns = {
...filePatterns,
...newFilePatterns
}
} }
} }
@ -1233,9 +1274,12 @@ export const getYamlFilePatterns = async ({
for (const key in newIgnoreFilePatterns) { for (const key in newIgnoreFilePatterns) {
if (key in filePatterns) { if (key in filePatterns) {
core.warning( filePatterns[key] = [
`files_ignore_yaml: Duplicated key ${key} detected, the ${filePatterns[key]} will be overwritten by ${newIgnoreFilePatterns[key]}.` ...filePatterns[key],
) ...newIgnoreFilePatterns[key]
]
} else {
filePatterns[key] = newIgnoreFilePatterns[key]
} }
} }
} }
@ -1259,16 +1303,14 @@ export const getYamlFilePatterns = async ({
for (const key in newIgnoreFilePatterns) { for (const key in newIgnoreFilePatterns) {
if (key in filePatterns) { if (key in filePatterns) {
core.warning( filePatterns[key] = [
`files_ignore_yaml_from_source_file: Duplicated key ${key} detected in ${filePath}, the ${filePatterns[key]} will be overwritten by ${newIgnoreFilePatterns[key]}.` ...filePatterns[key],
) ...newIgnoreFilePatterns[key]
]
} else {
filePatterns[key] = newIgnoreFilePatterns[key]
} }
} }
filePatterns = {
...filePatterns,
...newIgnoreFilePatterns
}
} }
} }
@ -1408,7 +1450,7 @@ export const recoverDeletedFiles = async ({
deletedFiles, deletedFiles,
recoverPatterns, recoverPatterns,
diffResult, diffResult,
hasSubmodule, diffSubmodule,
submodulePaths submodulePaths
}: { }: {
inputs: Inputs inputs: Inputs
@ -1416,7 +1458,7 @@ export const recoverDeletedFiles = async ({
deletedFiles: string[] deletedFiles: string[]
recoverPatterns: string[] recoverPatterns: string[]
diffResult: DiffResult diffResult: DiffResult
hasSubmodule: boolean diffSubmodule: boolean
submodulePaths: string[] submodulePaths: string[]
}): Promise<void> => { }): Promise<void> => {
let recoverableDeletedFiles = deletedFiles let recoverableDeletedFiles = deletedFiles
@ -1446,7 +1488,7 @@ export const recoverDeletedFiles = async ({
const submodulePath = submodulePaths.find(p => deletedFile.startsWith(p)) const submodulePath = submodulePaths.find(p => deletedFile.startsWith(p))
if (hasSubmodule && submodulePath) { if (diffSubmodule && submodulePath) {
const submoduleShaResult = await gitSubmoduleDiffSHA({ const submoduleShaResult = await gitSubmoduleDiffSHA({
cwd: workingDirectory, cwd: workingDirectory,
parentSha1: diffResult.previousSha, parentSha1: diffResult.previousSha,
@ -1513,52 +1555,28 @@ export const hasLocalGitDirectory = async ({
/** /**
* Warns about unsupported inputs when using the REST API. * Warns about unsupported inputs when using the REST API.
* *
* @param actionPath - The path to the action file.
* @param inputs - The inputs object. * @param inputs - The inputs object.
*/ */
export const warnUnsupportedRESTAPIInputs = async ({ export const warnUnsupportedRESTAPIInputs = async ({
actionPath,
inputs inputs
}: { }: {
actionPath: string
inputs: Inputs inputs: Inputs
}): Promise<void> => { }): Promise<void> => {
const actionContents = await fs.readFile(actionPath, 'utf8') for (const key of Object.keys(DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS)) {
const actionYaml = parseDocument(actionContents, {schema: 'failsafe'})
if (actionYaml.errors.length > 0) {
throw new Error(
`YAML errors in ${actionPath}: ${actionYaml.errors.join(', ')}`
)
}
if (actionYaml.warnings.length > 0) {
throw new Error(
`YAML warnings in ${actionPath}: ${actionYaml.warnings.join(', ')}`
)
}
const action = actionYaml.toJS() as {
inputs: {
[key: string]: {description: string; required: boolean; default: string}
}
}
const actionInputs = action.inputs
for (const key of UNSUPPORTED_REST_API_INPUTS) {
const inputKey = snakeCase(key) as keyof Inputs
const defaultValue = Object.hasOwnProperty.call( const defaultValue = Object.hasOwnProperty.call(
actionInputs[inputKey], DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS,
'default' key
) )
? actionInputs[inputKey].default.toString() ? DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS[
key as keyof Inputs
]?.toString()
: '' : ''
if (defaultValue !== inputs[key]?.toString()) { if (defaultValue !== inputs[key as keyof Inputs]?.toString()) {
core.warning( core.warning(
`Input "${inputKey}" is not supported when using GitHub's REST API to get changed files` `Input "${snakeCase(
key
)}" is not supported when using GitHub's REST API to get changed files`
) )
} }
} }

1
test/new.md Normal file
View File

@ -0,0 +1 @@
This is a test markdown file

View File

@ -1 +1 @@
This is a test file. This is a test file...

View File

@ -1,6 +1,6 @@
{ {
"compilerOptions": { "compilerOptions": {
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ "target": "ES2018", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"outDir": "./lib", /* Redirect output structure to the directory. */ "outDir": "./lib", /* Redirect output structure to the directory. */
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */

2712
yarn.lock

File diff suppressed because it is too large Load Diff