Compare commits

...

194 Commits

Author SHA1 Message Date
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
renovate[bot]
cbda684547 chore(deps): update dependency @types/node to v20.11.5 2024-01-17 07:29:39 +00:00
Tonye Jack
3f8189989b fix: bug with incorrect action path (#1866)
Co-authored-by: GitHub Action <action@github.com>
2024-01-17 07:20:30 +00:00
renovate[bot]
67a1f54f6f chore(deps): update dependency prettier to v3.2.3 2024-01-17 05:17:08 +00:00
renovate[bot]
99248a4438 chore(deps): update tj-actions/eslint-changed-files action to v22 (#1864)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-16 22:31:01 +00:00
renovate[bot]
878743189b chore(deps): update dependency @types/node to v20.11.4 2024-01-16 11:36:30 +00:00
renovate[bot]
98d1d84e2f chore(deps): update dependency @types/node to v20.11.3 2024-01-15 22:18:38 +00:00
Tonye Jack
a60bf3759e feat: enhance error handling and working directory resolution (#1859)
Co-authored-by: GitHub Action <action@github.com>
2024-01-15 11:54:08 -07:00
renovate[bot]
bc46e4c422 chore(deps): update typescript-eslint monorepo to v6.19.0 2024-01-15 18:51:11 +00:00
renovate[bot]
fba4067348 chore(deps): update dependency @types/node to v20.11.2 2024-01-15 13:13:53 +00:00
renovate[bot]
e4b8674732 chore(deps): update dependency @types/node to v20.11.1 2024-01-15 04:26:58 +00:00
renovate[bot]
bc2b5aef20 chore(deps): lock file maintenance 2024-01-15 02:09:33 +00:00
renovate[bot]
63c36a563a chore(deps): update dependency prettier to v3.2.2 2024-01-14 05:44:42 +00:00
tj-actions[bot]
44b77505fe Upgraded to v41.1.1 (#1854)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2024-01-13 22:07:22 +00:00
Tonye Jack
62f4729b5d fix: bug with inaccurate warnings (#1853)
Co-authored-by: GitHub Action <action@github.com>
2024-01-13 21:53:17 +00:00
tj-actions[bot]
e0579abf95 Upgraded to v41.1.0 (#1852)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2024-01-13 10:27:11 +00:00
Tonye Jack
8e0194b29b fix: permission with release workflow (#1851) 2024-01-13 03:16:09 -07:00
tj-actions[bot]
3649d2842d Updated README.md (#1850)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2024-01-13 08:58:40 +00:00
Tonye Jack
0ca1c07b47 feat: add support for forcing the use of GitHub’s REST API (#1849)
Co-authored-by: GitHub Action <action@github.com>
2024-01-13 08:48:42 +00:00
Tonye Jack
a57f4dcc81 chore: update top level workflow permissions (#1848) 2024-01-13 07:31:45 +00:00
renovate[bot]
9c39b0b6e9 chore(deps): update dependency prettier to v3.2.1 2024-01-12 23:37:28 +00:00
renovate[bot]
8b141f3906 chore(deps): update dependency eslint-plugin-jest to v27.6.3 2024-01-12 17:54:52 +00:00
Tonye Jack
17e07d8bc0 chore: create multi-job-test.yml (#1843)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2024-01-12 17:43:51 +00:00
Tonye Jack
13fa1c06fc chore: update warning message (#1845)
Co-authored-by: GitHub Action <action@github.com>
2024-01-12 10:28:21 -07:00
renovate[bot]
0deb29d192 chore(deps): update dependency prettier to v3.2.0 2024-01-12 17:07:01 +00:00
renovate[bot]
28267ee8b7 chore(deps): update dependency @types/node to v20.11.0 2024-01-11 08:04:44 +00:00
renovate[bot]
094d3441f8 chore(deps): update dependency eslint-plugin-jest to v27.6.2 2024-01-10 11:27:40 +00:00
renovate[bot]
aeec36b035 chore(deps): update dependency eslint-plugin-prettier to v5.1.3 2024-01-10 05:05:32 +00:00
dependabot[bot]
2d0270c489 chore(deps-dev): bump @types/node from 20.10.7 to 20.10.8 (#1836)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-10 01:23:30 +00:00
renovate[bot]
0e0adfa0d3 chore(deps): update typescript-eslint monorepo to v6.18.1 2024-01-09 01:42:46 +00:00
Tonye Jack
5313e6bbe3 chore: update jest.config.js (#1834) 2024-01-08 13:53:44 +00:00
renovate[bot]
54789be3a1 chore(deps): lock file maintenance 2024-01-08 00:42:20 +00:00
renovate[bot]
1675238cfd chore(deps): update dependency @types/node to v20.10.7 2024-01-07 17:13:54 +00:00
tj-actions[bot]
3fbf5fb588 Updated README.md (#1830)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2024-01-07 06:40:56 -07:00
Tonye Jack
95230678db Update README.md 2024-01-07 06:37:07 -07:00
Tonye Jack
fdccafbb6e chore: create workflow-run-test.yml (#1828) 2024-01-06 10:50:54 -07:00
renovate[bot]
0e8d796ee0 chore(deps): update typescript-eslint monorepo to v6.18.0 2024-01-06 16:49:14 +00:00
renovate[bot]
0c6f2ac488 chore(deps): update dependency eslint-plugin-jest to v27.6.1 2024-01-01 22:49:49 +00:00
renovate[bot]
1db97adba4 chore(deps): update typescript-eslint monorepo to v6.17.0 2024-01-01 19:03:11 +00:00
renovate[bot]
fb8f6db383 chore(deps): lock file maintenance 2023-12-31 19:28:53 +00:00
renovate[bot]
efd7ecef11 chore(deps): update dependency @types/node to v20.10.6 2023-12-30 02:47:54 +00:00
renovate[bot]
4f8e12c098 chore(deps): update tj-actions/verify-changed-files action to v17 (#1820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 04:36:04 +00:00
Tonye Jack
032add13e8 Update README.md 2023-12-28 11:36:43 -07:00
renovate[bot]
0f0747e79d chore(deps): update typescript-eslint monorepo to v6.16.0 2023-12-25 20:16:19 +00:00
Tonye Jack
0c2a758b81 chore: update matrix-test.yml (#1814) 2023-12-24 18:06:18 +00:00
tj-actions[bot]
1b6d7b6fb6 Upgraded to v41.0.1 (#1816)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-12-24 17:48:54 +00:00
Tonye Jack
716b1e1304 fix: update characters escaped by safe output (#1815) 2023-12-24 16:32:32 +00:00
renovate[bot]
7aaf10d9ee chore(deps): update dependency eslint-plugin-prettier to v5.1.2 2023-12-24 06:35:07 +00:00
tj-actions[bot]
cc08e170f4 Upgraded to v41 (#1811)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-12-23 11:07:21 -07:00
Tonye Jack
6e79d6e3db Update README.md 2023-12-23 04:59:15 -07:00
Tonye Jack
d13ac1942f Update README.md 2023-12-23 04:52:19 -07:00
Tonye Jack
bb89f97963 Update README.md 2023-12-23 04:50:22 -07:00
tj-actions[bot]
1864078d0a Updated README.md (#1810)
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com>
2023-12-23 04:39:57 -07:00
renovate[bot]
f495a0321d chore(deps): lock file maintenance 2023-12-23 11:32:29 +00:00
Tonye Jack
47371c50e9 Update README.md (#1808) 2023-12-23 04:15:05 -07:00
Tonye Jack
4f573fed06 Revert "chore(deps): update actions/download-artifact action to v4" (#1806) 2023-12-23 04:11:47 -07:00
tj-actions[bot]
ff2f6e6b91 fix: update safe output regex and the docs (#1805)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Tonye Jack <jtonye@ymail.com>
2023-12-23 03:56:31 -07:00
Jorge
0102c07446 Merge pull request from GHSA-mcph-m25j-8j63
* feat: add `safe_output` input enabled by default

* fix: migrate README to safe uses of interpolation

* fix: README `uses` typo

* fix: README examples to account for newlines

* fix: README examples missing `safe_output`

* fix: remove sanitization of `'`

* fix: also sanitize `|&;`
2023-12-22 14:07:32 -07:00
renovate[bot]
089842a7a8 chore(deps): update dependency eslint-plugin-prettier to v5.1.1 2023-12-21 17:04:14 +00:00
renovate[bot]
787db0612e chore(deps): lock file maintenance 2023-12-20 06:15:16 +00:00
renovate[bot]
4ef6b56482 chore(deps): update dependency eslint-plugin-prettier to v5.1.0 2023-12-19 21:38:20 +00:00
tj-actions[bot]
f9480db177 Upgraded to v40.2.3 (#1800)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-12-18 20:13:17 +00:00
renovate[bot]
c9ae347dbb chore(deps): update typescript-eslint monorepo to v6.15.0 2023-12-18 19:31:19 +00:00
renovate[bot]
56284d8081 chore(deps): update actions/setup-node action to v4.0.1 2023-12-18 13:24:36 +00:00
renovate[bot]
35ad6787f5 chore(deps): lock file maintenance 2023-12-18 01:38:30 +00:00
renovate[bot]
ca0db0ea03 chore(deps): update dependency @types/node to v20.10.5 2023-12-18 01:37:56 +00:00
renovate[bot]
03fcd0b3bb chore(deps): update dependency eslint to v8.56.0 2023-12-16 01:15:44 +00:00
Tonye Jack
35da2a2e01 Update README.md 2023-12-14 14:57:20 -07:00
renovate[bot]
2329d9fb48 chore(deps): lock file maintenance 2023-12-14 20:17:28 +00:00
renovate[bot]
154ca89d2e chore(deps): update actions/download-artifact action to v4 (#1793)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tonye Jack <jtonye@ymail.com>
2023-12-14 13:00:10 -07:00
renovate[bot]
449352f10e chore(deps): update github/codeql-action action to v3 (#1792)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 17:06:49 +00:00
renovate[bot]
7c1826332f chore(deps): update typescript-eslint monorepo to v6.14.0 2023-12-11 18:39:28 +00:00
GitHub Action
af2816c654 Added missing changes and modified dist assets. 2023-12-10 19:45:40 +00:00
renovate[bot]
88be287f56 chore(deps): lock file maintenance 2023-12-10 19:45:40 +00:00
renovate[bot]
5513a5e205 chore(deps): update dependency prettier to v3.1.1 2023-12-10 11:22:16 +00:00
Tonye Jack
e7023fa1da Update README.md 2023-12-10 00:28:33 -07:00
tj-actions[bot]
46550b6fd9 Upgraded to v40.2.2 (#1787)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-12-10 07:24:06 +00:00
Tonye Jack
9454999946 fix: bug recovering deleted files for submodules (#1784)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-12-10 07:14:44 +00:00
tj-actions[bot]
7611ff348d Updated README.md (#1786)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-12-09 23:59:37 -07:00
allcontributors[bot]
187cf1e88c docs: add rodrigorfk as a contributor for code, test, and bug (#1785)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2023-12-09 23:55:41 -07:00
dependabot[bot]
e1e532cff0 chore(deps): bump tj-actions/branch-names from 7 to 8 (#1782)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-08 01:50:07 +00:00
renovate[bot]
dfecec4fb7 chore(deps): update dependency @types/node to v20.10.4 2023-12-07 10:15:47 +00:00
Tonye Jack
c116f52a15 Update README.md 2023-12-06 21:44:31 -07:00
tj-actions[bot]
0b0b6429e1 Updated README.md (#1779)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-12-07 04:22:32 +00:00
Tonye Jack
f732c371a4 Update README.md 2023-12-06 21:14:34 -07:00
tj-actions[bot]
04c00459a2 Updated README.md (#1778)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-12-07 03:56:05 +00:00
Tonye Jack
5cee511ba5 Update README.md 2023-12-06 20:39:16 -07:00
Tonye Jack
399525a994 Update README.md 2023-12-06 20:37:51 -07:00
Tonye Jack
c075bd2719 Update README.md 2023-12-06 20:37:03 -07:00
renovate[bot]
208b83f295 chore(deps): update dependency typescript to v5.3.3 2023-12-06 21:22:39 +00:00
dependabot[bot]
ccb109a584 chore(deps-dev): bump @types/jest from 29.5.10 to 29.5.11 (#1775)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-06 02:00:42 +00:00
Tonye Jack
2918913341 Update README.md 2023-12-05 12:58:01 -07:00
Tonye Jack
a66176714d Deleted .github/workflows/auto-approve.yml 2023-12-04 21:09:51 -07:00
Tonye Jack
95642a1ebb chore: Update package.json (#1774) 2023-12-05 04:09:37 +00:00
Tonye Jack
726e06f8ef chore: Create SECURITY.md (#1773) 2023-12-04 20:52:31 -07:00
renovate[bot]
d96fe5d997 chore(deps): update typescript-eslint monorepo to v6.13.2 2023-12-04 19:47:16 +00:00
tj-actions[bot]
4ae611e5c5 Upgraded to v40.2.1 (#1771)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-12-04 03:46:41 +00:00
GitHub Action
1c938490c8 Added missing changes and modified dist assets. 2023-12-03 20:29:21 -07:00
renovate[bot]
ba558db977 chore(deps): lock file maintenance 2023-12-03 20:29:21 -07:00
renovate[bot]
bf19fa23a6 chore(deps): update dependency @types/node to v20.10.3 2023-12-03 21:37:55 +00:00
tj-actions[bot]
66b77cbd0c Updated README.md (#1769)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-12-03 14:16:56 -07:00
Tonye Jack
10bfa980b7 Update README.md 2023-12-03 14:15:28 -07:00
tj-actions[bot]
9e46b4f7f7 Updated README.md (#1767)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
Co-authored-by: Tonye Jack <jtonye@ymail.com>
2023-12-03 14:14:48 -07:00
Tonye Jack
3bf6172534 Update README.md 2023-12-03 12:46:59 -07:00
renovate[bot]
45581f0044 chore(deps): update dependency eslint-config-prettier to v9.1.0 2023-12-02 14:24:35 +00:00
renovate[bot]
9ebb48b57a chore(deps): update dependency eslint to v8.55.0 2023-12-02 01:04:38 +00:00
renovate[bot]
4e2dca3ba5 chore(deps): update dependency @types/node to v20.10.2 2023-12-01 21:10:58 +00:00
Tonye Jack
af6bdde59a security: Update test.yml removing pull_request_review event (#1763) 2023-11-29 22:28:34 -07:00
Tonye Jack
fc1fb2b582 test: verify bug writing outputs when files_yaml is used (#1762) 2023-11-29 17:03:50 -07:00
renovate[bot]
883b4ccbdb chore(deps): update dependency @types/node to v20.10.1 2023-11-29 20:45:42 +00:00
Tonye Jack
f91c9fe8b1 Deleted .github/workflows/greetings.yml 2023-11-29 09:01:35 -07:00
Tonye Jack
3ca6b80013 security: remove usage of pull_request_target event from test.yml (#1758) 2023-11-29 04:22:26 +00:00
GitHub Action
ee5ef758aa Added missing changes and modified dist assets. 2023-11-28 23:43:36 +00:00
renovate[bot]
42fe158594 chore(deps): lock file maintenance 2023-11-28 23:43:36 +00:00
tj-actions[bot]
48427afe26 Updated README.md (#1755)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-11-28 18:23:42 +00:00
Tonye Jack
5c74583cb3 chore: remove unused job (#1754) 2023-11-28 11:01:22 -07:00
Tonye Jack
742ed362b6 Update README.md 2023-11-28 09:58:20 -07:00
renovate[bot]
44d340e48c chore(deps): update typescript-eslint monorepo to v6.13.1 2023-11-28 10:36:38 +00:00
renovate[bot]
2561448da0 chore(deps): update typescript-eslint monorepo to v6.13.0 2023-11-27 18:14:41 +00:00
tj-actions[bot]
86cabf5ea2 Updated README.md (#1750)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2023-11-27 17:57:48 +00:00
Tonye Jack
b5fc67a4f5 chore: update README.md (#1749) 2023-11-27 17:39:44 +00:00
tj-actions[bot]
0b22a52bff Upgraded to v40.2.0 (#1746)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-11-27 09:19:57 +00:00
Tonye Jack
da093c1609 fix: prevent similar commit hashes error when using the branch name (#1745)
Co-authored-by: GitHub Action <action@github.com>
2023-11-27 08:36:29 +00:00
Tonye Jack
c634be959b fix: prevent similar commit hashes error when using the branch name (#1744)
Co-authored-by: GitHub Action <action@github.com>
2023-11-27 07:54:44 +00:00
Tonye Jack
2139fa1b6f feat: add support for passing branch name to the base_sha and sha inputs (#1742) 2023-11-27 07:11:43 +00:00
Tonye Jack
6784c9e1ee Update README.md 2023-11-26 18:51:22 -07:00
GitHub Action
607d5ddbbf Added missing changes and modified dist assets. 2023-11-27 00:31:36 +00:00
renovate[bot]
d588360bfe chore(deps): lock file maintenance 2023-11-27 00:31:36 +00:00
Tonye Jack
90f2c0c1b1 Update greetings.yml 2023-11-26 00:11:12 -07:00
renovate[bot]
0d6e9b7196 chore(deps): update dependency @types/node to v20.10.0 2023-11-24 10:34:08 +00:00
renovate[bot]
8f90cc165a chore(deps): update dependency @types/node to v20.9.5 2023-11-24 00:53:37 +00:00
renovate[bot]
75758bc65f chore(deps): update dependency @types/jest to v29.5.10 2023-11-22 02:04:07 +00:00
dependabot[bot]
066e72a5fb Bump @types/node from 20.9.3 to 20.9.4 (#1732)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-22 01:46:19 +00:00
dependabot[bot]
c23e564e67 Bump @types/jest from 29.5.8 to 29.5.9 (#1726)
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>
2023-11-21 11:41:03 -07:00
dependabot[bot]
c0080255e3 Bump @types/micromatch from 4.0.5 to 4.0.6 (#1727)
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>
2023-11-21 11:36:41 -07:00
dependabot[bot]
3a3d3a2b86 Bump @types/lodash from 4.14.201 to 4.14.202 (#1728)
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>
2023-11-21 07:05:39 -07:00
renovate[bot]
79ef9d3fee chore(deps): update dependency @types/lodash to v4.14.202 2023-11-21 04:02:59 +00:00
renovate[bot]
da4597ee22 chore(deps): update dependency @types/micromatch to v4.0.6 2023-11-21 03:41:54 +00:00
renovate[bot]
9f4ec1c14f chore(deps): update dependency @types/jest to v29.5.9 2023-11-21 03:21:14 +00:00
dependabot[bot]
4da6e32cfe Bump @types/node from 20.9.2 to 20.9.3 (#1725)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-21 02:31:14 +00:00
GitHub Action
7f1c4cb6db Added missing changes and modified dist assets. 2023-11-20 20:48:07 +00:00
renovate[bot]
939fbca781 chore(deps): update dependency typescript to v5.3.2 2023-11-20 20:48:07 +00:00
renovate[bot]
9ba175ae24 chore(deps): update typescript-eslint monorepo to v6.12.0 2023-11-20 17:41:59 +00:00
tj-actions[bot]
f7779a6302 Updated README.md (#1722)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2023-11-20 03:15:32 +00:00
Tonye Jack
05bdc91228 chore: simplify matrix example workflow (#1719)
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
2023-11-20 03:05:34 +00:00
tj-actions[bot]
6d07b6ee59 Updated README.md (#1721)
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com>
2023-11-20 02:16:46 +00:00
GitHub Action
1cf54bb5d3 Added missing changes and modified dist assets. 2023-11-20 02:06:41 +00:00
renovate[bot]
21b4a4bc7b chore(deps): lock file maintenance 2023-11-20 02:06:41 +00:00
renovate[bot]
658f397297 chore(deps): update dependency @types/node to v20.9.2 2023-11-18 23:22:56 +00:00
renovate[bot]
38a0c329bb chore(deps): update dependency eslint to v8.54.0 2023-11-17 22:45:21 +00:00
renovate[bot]
b0be21b8df chore(deps): update dependency @types/node to v20.9.1 2023-11-16 23:06:36 +00:00
tj-actions[bot]
97825a1994 Updated README.md (#1714)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-11-16 15:14:50 +00:00
Tonye Jack
13189f9e52 chore: update action.yml 2023-11-16 08:02:45 -07:00
tj-actions[bot]
2a9f067522 Updated README.md (#1713)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-11-15 19:50:40 +00:00
Tonye Jack
ad01f6fdba chore: update action inputs description 2023-11-15 12:41:33 -07:00
tj-actions[bot]
b082611680 Updated README.md (#1712)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-11-15 16:07:40 +00:00
Tonye Jack
a36c479373 chore: update input description 2023-11-15 08:55:35 -07:00
tj-actions[bot]
90a4f2a326 Updated README.md (#1711)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-11-15 15:49:57 +00:00
Tonye Jack
41ff1f2249 chore: update input description 2023-11-15 08:38:50 -07:00
tj-actions[bot]
b20ce84763 Updated README.md (#1710)
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com>
2023-11-15 05:46:02 +00:00
Tonye Jack
875213d4a9 chore: Update update-readme.yml (#1709) 2023-11-15 05:33:58 +00:00
renovate[bot]
71b57652f0 chore(deps): update typescript-eslint monorepo to v6.11.0 2023-11-13 17:52:21 +00:00
renovate[bot]
834b86247e chore(deps): update dependency prettier to v3.1.0 2023-11-13 04:30:36 +00:00
GitHub Action
d8d3669cb3 Added missing changes and modified dist assets. 2023-11-13 00:39:11 +00:00
renovate[bot]
940b170a31 chore(deps): lock file maintenance 2023-11-13 00:39:11 +00:00
tj-actions[bot]
55b93d0734 Upgraded to v40.1.1 (#1704)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-11-08 03:46:18 +00:00
renovate[bot]
25ef3926d1 chore(deps): update dependency @types/node to v20.9.0 2023-11-08 00:43:20 +00:00
renovate[bot]
4d33bd5f9c chore(deps): update dependency @types/lodash to v4.14.201 2023-11-07 23:16:36 +00:00
renovate[bot]
f25e47258b chore(deps): update dependency @types/micromatch to v4.0.5 2023-11-07 23:03:38 +00:00
renovate[bot]
a3c4ccbde0 chore(deps): update dependency @types/uuid to v9.0.7 2023-11-07 22:37:06 +00:00
renovate[bot]
b114534101 chore(deps): update dependency @types/jest to v29.5.8 2023-11-07 21:40:54 +00:00
renovate[bot]
303f064ba9 chore(deps): update typescript-eslint monorepo to v6.10.0 2023-11-06 20:04:14 +00:00
GitHub Action
e981e53b7f Added missing changes and modified dist assets. 2023-11-06 00:44:12 +00:00
renovate[bot]
d850ef91f7 chore(deps): lock file maintenance 2023-11-06 00:44:12 +00:00
renovate[bot]
8701b586f3 chore(deps): update dependency eslint to v8.53.0 2023-11-04 01:22:05 +00:00
tj-actions[bot]
9b1ba9a603 Upgraded to v40.1.0 (#1695)
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
2023-11-03 21:08:31 +00:00
33 changed files with 4804 additions and 2752 deletions

View File

@@ -197,6 +197,17 @@
"bug",
"code"
]
},
{
"login": "rodrigorfk",
"name": "Rodrigo Fior Kuntzer",
"avatar_url": "https://avatars.githubusercontent.com/u/1995033?v=4",
"profile": "https://github.com/rodrigorfk",
"contributions": [
"code",
"test",
"bug"
]
}
],
"contributorsPerLine": 7,

View File

@@ -1,33 +0,0 @@
name: Auto approve
on:
pull_request_target
jobs:
auto-approve:
runs-on: ubuntu-latest
steps:
- uses: hmarr/auto-approve-action@v3
if: |
(
github.event.pull_request.user.login == 'dependabot[bot]' ||
github.event.pull_request.user.login == 'dependabot' ||
github.event.pull_request.user.login == 'dependabot-preview[bot]' ||
github.event.pull_request.user.login == 'dependabot-preview' ||
github.event.pull_request.user.login == 'renovate[bot]' ||
github.event.pull_request.user.login == 'renovate' ||
github.event.pull_request.user.login == 'github-actions[bot]'
)
&&
(
github.actor == 'dependabot[bot]' ||
github.actor == 'dependabot' ||
github.actor == 'dependabot-preview[bot]' ||
github.actor == 'dependabot-preview' ||
github.actor == 'renovate[bot]' ||
github.actor == 'renovate' ||
github.actor == 'github-actions[bot]'
)
with:
github-token: ${{ secrets.PAT_TOKEN }}

View File

@@ -17,6 +17,11 @@ on:
schedule:
- cron: '15 16 * * 2'
permissions:
actions: read
contents: read
security-events: write
jobs:
codacy-security-scan:
# Cancel other workflows that are running for the same branch
@@ -51,6 +56,6 @@ jobs:
# Upload the SARIF file generated in the previous step
- name: Upload SARIF results file
continue-on-error: true
uses: github/codeql-action/upload-sarif@v2
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif

View File

@@ -20,6 +20,11 @@ on:
schedule:
- cron: '44 20 * * 0'
permissions:
actions: read
contents: read
security-events: write
jobs:
analyze:
name: Analyze
@@ -42,7 +47,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -56,7 +61,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -69,6 +74,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

View File

@@ -1,13 +0,0 @@
name: Greetings
on: [pull_request_target, issues]
jobs:
greeting:
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
repo-token: ${{ secrets.GITHUB_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,8 @@
name: Issue Comment Test
name: Issue Comment Job Example
permissions:
contents: read
on:
issue_comment:

View File

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

View File

@@ -1,4 +1,7 @@
name: Matrix Test
name: Matrix Example
permissions:
contents: read
on:
workflow_dispatch:
@@ -8,10 +11,10 @@ on:
jobs:
changed-files:
name: Get changes
name: Get changed files
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
matrix: ${{ steps.changed-files.outputs.all_changed_files }}
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -22,18 +25,17 @@ jobs:
uses: ./
with:
json: true
quotepath: false
escape_json: false
- name: List all changed files
run: echo '${{ steps.changed-files.outputs.all_changed_files }}'
- id: set-matrix
run: echo "matrix={\"files\":${{ steps.changed-files.outputs.all_changed_files }}}" >> "$GITHUB_OUTPUT"
matrix-job:
name: Run Matrix Job
runs-on: ubuntu-latest
needs: [changed-files]
strategy:
matrix: ${{ fromJSON(needs.changed-files.outputs.matrix) }}
matrix:
files: ${{ fromJSON(needs.changed-files.outputs.matrix) }}
max-parallel: 4
fail-fast: false
steps:

67
.github/workflows/multi-job-example.yml vendored Normal file
View File

@@ -0,0 +1,67 @@
name: Multi Job Example
permissions:
contents: read
on:
push:
branches:
- "**"
pull_request:
branches:
- "**"
jobs:
changed-files:
name: Get changed files
runs-on: ubuntu-latest
outputs:
all_changed_files: ${{ steps.changed-files.outputs.all_changed_files }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: ./
- name: List all changed files
run: echo '${{ steps.changed-files.outputs.all_changed_files }}'
view-changed-files:
name: View all changed files
runs-on: ubuntu-latest
needs: [changed-files]
steps:
- name: List all changed files
run: |
echo '${{ needs.changed-files.outputs.all_changed_files }}'
changed-files-rest-api:
name: Get changed files using REST API
runs-on: ubuntu-latest
outputs:
all_changed_files: ${{ steps.changed-files.outputs.all_changed_files }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
continue-on-error: ${{ github.event_name == 'push' }}
uses: ./
with:
use_rest_api: true
- name: List all changed files
run: echo '${{ steps.changed-files.outputs.all_changed_files }}'
view-changed-files-rest-api:
name: View all changed files using REST API
runs-on: ubuntu-latest
needs: [changed-files-rest-api]
steps:
- name: List all changed files
run: |
echo '${{ needs.changed-files-rest-api.outputs.all_changed_files }}'

View File

@@ -1,4 +1,9 @@
name: Update release version.
name: Update release version
permissions:
contents: write
pull-requests: write
on:
release:
types: [published]

View File

@@ -1,12 +1,13 @@
name: CI
permissions:
contents: read
pull-requests: write
on:
push:
branches:
- "**"
pull_request_review:
types: [edited, dismissed, submitted]
pull_request_target:
pull_request:
types:
- assigned
@@ -27,20 +28,9 @@ on:
- auto_merge_enabled
- auto_merge_disabled
branches:
- main
- "**"
jobs:
shellcheck:
name: Run shellcheck
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v4
- name: shellcheck
uses: reviewdog/action-shellcheck@v1.19
build:
runs-on: ubuntu-latest
outputs:
@@ -53,7 +43,7 @@ jobs:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Use Node.js 20.x
uses: actions/setup-node@v4.0.0
uses: actions/setup-node@v4.0.1
with:
cache: 'yarn'
node-version: '20.x'
@@ -68,7 +58,7 @@ jobs:
yarn install
- name: Run eslint on changed files
uses: tj-actions/eslint-changed-files@v21
uses: tj-actions/eslint-changed-files@v23
if: github.event_name == 'pull_request'
with:
token: ${{ secrets.PAT_TOKEN }}
@@ -80,7 +70,7 @@ jobs:
yarn all
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v16
uses: tj-actions/verify-changed-files@v17
id: changed_files
with:
files: |
@@ -286,11 +276,15 @@ jobs:
shell:
bash
test-unset-github-output-env:
name: Test unset GITHUB_OUTPUT env
test-using-branch-names-for-base-sha-and-sha-inputs:
name: Test using branch names for base_sha and sha inputs
runs-on: ubuntu-latest
needs: build
if: needs.build.outputs.files_changed != 'true'
if: |
(
github.event_name == 'push' ||
github.event_name == 'pull_request'
) && needs.build.outputs.files_changed != 'true'
steps:
- name: Checkout branch
@@ -304,12 +298,11 @@ jobs:
with:
name: build-assets
- name: Run changed-files with unset GITHUB_OUTPUT env
- name: Run changed-files with main as the base_sha
id: changed-files
continue-on-error: true
uses: ./
env:
GITHUB_OUTPUT: ""
with:
base_sha: main
- name: Show output
run: |
@@ -557,6 +550,39 @@ jobs:
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:
pull-requests: 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@v3
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:
name: Test changed-files with submodule
runs-on: ubuntu-latest
@@ -652,6 +678,29 @@ jobs:
shell:
bash
- name: Run changed-files with files_yaml, json and write_output_files
id: changed-files-json-write-output-files
uses: ./
with:
files_yaml: |
test:
- .github/workflows/test.yml
json: true
write_output_files: true
- name: Show all outputs
run: |
echo "${{ toJSON(steps.changed-files-json-write-output-files.outputs) }}"
shell:
bash
- name: Show all_changed_files output and list .github/outputs
run: |
echo '${{ toJSON(steps.changed-files-json-write-output-files.outputs.test_all_changed_files) }}'
cat .github/outputs/test_all_changed_files.json
shell:
bash
test-recover-deleted-file:
name: Test changed-files recover deleted file
runs-on: ubuntu-latest
@@ -812,6 +861,36 @@ jobs:
cat "deleted_files/test/test deleted.txt"
fi
- name: Run changed-files with recover_deleted_files for an expected git submodule file
id: changed-files-recover-deleted-files-within-submodule
uses: ./
with:
base_sha: "3be651e99d3d4eae395694f6c6f3b9d18457f6c8"
sha: "d90c240f2ad4ec04d8f0f48e5ac290ad96ebe850"
recover_deleted_files: true
fetch_depth: 60000
- name: Show output
run: |
echo "${{ toJSON(steps.changed-files-recover-deleted-files-within-submodule.outputs) }}"
shell:
bash
- name: Verify deleted files
if: steps.changed-files-recover-deleted-files-within-submodule.outputs.deleted_files != 'test/demo/.github/FUNDING.yml'
run: |
echo "Expected: (test/demo/.github/FUNDING.yml) got ${{ steps.changed-files-recover-deleted-files-within-submodule.outputs.deleted_files }}"
exit 1
- name: Verify that test/demo/.github/FUNDING.yml is restored
run: |
if [ ! -f "test/demo/.github/FUNDING.yml" ]; then
echo "Expected: (test/demo/.github/FUNDING.yml) to exist"
exit 1
else
cat "test/demo/.github/FUNDING.yml"
rm "test/demo/.github/FUNDING.yml"
fi
test-dir-names-deleted-files-include-only-deleted-dirs-single-file:
name: Test dir names deleted files include only deleted dirs single file
runs-on: ubuntu-latest
@@ -1941,7 +2020,7 @@ jobs:
bash
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v7
uses: tj-actions/branch-names@v8
if: github.event_name == 'pull_request' && matrix.fetch-depth == 0
- uses: nrwl/nx-set-shas@v4
id: last_successful_commit

View File

@@ -1,5 +1,9 @@
name: Format README.md
permissions:
contents: read
pull-requests: write
on:
push:
branches:
@@ -15,12 +19,15 @@ jobs:
- name: Run auto-doc
uses: tj-actions/auto-doc@v3
with:
use_code_blocks: true
use_major_version: true
- name: Run remark
uses: tj-actions/remark@v3
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v16
uses: tj-actions/verify-changed-files@v17
id: verify_changed_files
with:
files: |

View File

@@ -0,0 +1,20 @@
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'

View File

@@ -1,5 +1,522 @@
# Changelog
# [42.0.1](https://github.com/tj-actions/changed-files/compare/v42.0.0...v42.0.1) - (2024-01-24)
## <!-- 16 --> Add
- Added missing changes and modified dist assets.
([ea024b2](https://github.com/tj-actions/changed-files/commit/ea024b2d7f80389ba16e7084b20265cb7dfe230f)) - (GitHub Action)
- Added missing changes and modified dist assets.
([3af07c2](https://github.com/tj-actions/changed-files/commit/3af07c2040da68166f613248bd8e9cd28fb581e3)) - (GitHub Action)
## <!-- 26 -->🔄 Update
- Update env.ts ([3680129](https://github.com/tj-actions/changed-files/commit/3680129aa2971333ef3d148024520cdc5327a6b7)) - (Tonye Jack)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Update dependency @types/node to v20.11.6 ([ac21d93](https://github.com/tj-actions/changed-files/commit/ac21d93904fb48e7f76ce4bd2a4d197f67e34abe)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.19.1 ([a4637ea](https://github.com/tj-actions/changed-files/commit/a4637ea6e7d9a502f6edb845b6c65086c5bce55f)) - (renovate[bot])
- **deps:** Update dependency ts-jest to v29.1.2 ([fd9998c](https://github.com/tj-actions/changed-files/commit/fd9998cf5fcac4b0fff205a58ec694bf596169c8)) - (renovate[bot])
- **deps:** Lock file maintenance ([db4e584](https://github.com/tj-actions/changed-files/commit/db4e5848448e4b540e7e7dcbdc7aab3c88bfcf47)) - (renovate[bot])
- Rename example worflows from test to example ([#1878](https://github.com/tj-actions/changed-files/issues/1878)) ([c6543c4](https://github.com/tj-actions/changed-files/commit/c6543c497aea61c2263b735dece03b23383441f0)) - (Tonye Jack)
- Update README.md ([#1877](https://github.com/tj-actions/changed-files/issues/1877)) ([88f9f3e](https://github.com/tj-actions/changed-files/commit/88f9f3efbb5a8fe2acff4139babc1d6aeafa5e72)) - (Tonye Jack)
- **deps:** Lock file maintenance ([5d866cb](https://github.com/tj-actions/changed-files/commit/5d866cbe77002ed91912202826ed253b808a9133)) - (renovate[bot])
- **deps:** Update tj-actions/eslint-changed-files action to v23 ([#1875](https://github.com/tj-actions/changed-files/issues/1875)) ([346f237](https://github.com/tj-actions/changed-files/commit/346f237a1734287fa772ee254047beecabcdbdf2)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v42 ([#1874](https://github.com/tj-actions/changed-files/issues/1874))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([c037f1e](https://github.com/tj-actions/changed-files/commit/c037f1e7c56c7884b2d7d24c36cd8a0bc2c20687)) - (tj-actions[bot])
# [42.0.0](https://github.com/tj-actions/changed-files/compare/v41.1.2...v42.0.0) - (2024-01-18)
## <!-- 0 -->🚀 Features
- Add support for include/exclude all nested files when a directory is specified and ends with a slash ([#1873](https://github.com/tj-actions/changed-files/issues/1873)) ([ae82ed4](https://github.com/tj-actions/changed-files/commit/ae82ed4ae04587b665efad2f206578aa6f0e8539)) - (Tonye Jack)
## <!-- 1 -->🐛 Bug Fixes
- Update input warning ([#1870](https://github.com/tj-actions/changed-files/issues/1870)) ([6c9dcea](https://github.com/tj-actions/changed-files/commit/6c9dcea4432fd0eb2f3e07c9149eab2807ce44b2)) - (Tonye Jack)
## <!-- 18 -->📝 Rename
- Unsupported REST API inputs constant name ([#1872](https://github.com/tj-actions/changed-files/issues/1872)) ([cbd5907](https://github.com/tj-actions/changed-files/commit/cbd59070e8276b539ecdfa0f2316db7b1599ea0f)) - (Tonye Jack)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Update dependency prettier to v3.2.4 ([79b060d](https://github.com/tj-actions/changed-files/commit/79b060d4450764e6b54a73696c2d99134757db95)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v41.1.2 ([#1869](https://github.com/tj-actions/changed-files/issues/1869))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([434b67e](https://github.com/tj-actions/changed-files/commit/434b67ebc3051662cf28de12b8a7adb77aea522a)) - (tj-actions[bot])
# [41.1.2](https://github.com/tj-actions/changed-files/compare/v41.1.1...v41.1.2) - (2024-01-17)
## <!-- 0 -->🚀 Features
- Enhance error handling and working directory resolution ([#1859](https://github.com/tj-actions/changed-files/issues/1859)) ([a60bf37](https://github.com/tj-actions/changed-files/commit/a60bf3759e069549b60c8da1284ec83e0398a1a4)) - (Tonye Jack)
## <!-- 1 -->🐛 Bug Fixes
- Bug with incorrect action path ([#1866](https://github.com/tj-actions/changed-files/issues/1866)) ([3f81899](https://github.com/tj-actions/changed-files/commit/3f8189989ba6fd9b3b9593ffe650236b3f1fcb55)) - (Tonye Jack)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Update dependency @types/node to v20.11.5 ([cbda684](https://github.com/tj-actions/changed-files/commit/cbda684547adc8c052d50711417fa61b428a9f88)) - (renovate[bot])
- **deps:** Update dependency prettier to v3.2.3 ([67a1f54](https://github.com/tj-actions/changed-files/commit/67a1f54f6f5ec7ee87c57eb7876a7d6dfdcc59a1)) - (renovate[bot])
- **deps:** Update tj-actions/eslint-changed-files action to v22 ([#1864](https://github.com/tj-actions/changed-files/issues/1864)) ([99248a4](https://github.com/tj-actions/changed-files/commit/99248a443855d73284abf52520f897dba851b914)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.11.4 ([8787431](https://github.com/tj-actions/changed-files/commit/878743189ba0ba42d467a736923b07102f0e348c)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.11.3 ([98d1d84](https://github.com/tj-actions/changed-files/commit/98d1d84e2f7a404c425df4e44dceb74a03920ac8)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.19.0 ([bc46e4c](https://github.com/tj-actions/changed-files/commit/bc46e4c4222c3926a70378d183f0b387d3a9e9a8)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.11.2 ([fba4067](https://github.com/tj-actions/changed-files/commit/fba40673489d49e860c15a444c134d887ead1f3a)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.11.1 ([e4b8674](https://github.com/tj-actions/changed-files/commit/e4b86747326bc58eb230d62188ebdd66b73721a9)) - (renovate[bot])
- **deps:** Lock file maintenance ([bc2b5ae](https://github.com/tj-actions/changed-files/commit/bc2b5aef20add66cbe21d1093f0f1d37a353d376)) - (renovate[bot])
- **deps:** Update dependency prettier to v3.2.2 ([63c36a5](https://github.com/tj-actions/changed-files/commit/63c36a563a30544b4c03a8426277dca4b00e4fd1)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v41.1.1 ([#1854](https://github.com/tj-actions/changed-files/issues/1854))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([44b7750](https://github.com/tj-actions/changed-files/commit/44b77505fe3f2c6d0a76f72a4ef512e7c2ba0b6a)) - (tj-actions[bot])
# [41.1.1](https://github.com/tj-actions/changed-files/compare/v41.1.0...v41.1.1) - (2024-01-13)
## <!-- 1 -->🐛 Bug Fixes
- Bug with inaccurate warnings ([#1853](https://github.com/tj-actions/changed-files/issues/1853)) ([62f4729](https://github.com/tj-actions/changed-files/commit/62f4729b5df35e6e0e01265fa70a82ccaf196b4b)) - (Tonye Jack)
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v41.1.0 ([#1852](https://github.com/tj-actions/changed-files/issues/1852))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([e0579ab](https://github.com/tj-actions/changed-files/commit/e0579abf95abec8042468976c7822e6867542199)) - (tj-actions[bot])
# [41.1.0](https://github.com/tj-actions/changed-files/compare/v41.0.1...v41.1.0) - (2024-01-13)
## <!-- 0 -->🚀 Features
- Add support for forcing the use of GitHubs REST API ([#1849](https://github.com/tj-actions/changed-files/issues/1849)) ([0ca1c07](https://github.com/tj-actions/changed-files/commit/0ca1c07b47b66abe421382a891da70a506e60e8a)) - (Tonye Jack)
## <!-- 1 -->🐛 Bug Fixes
- Permission with release workflow ([#1851](https://github.com/tj-actions/changed-files/issues/1851)) ([8e0194b](https://github.com/tj-actions/changed-files/commit/8e0194b29bc4bb6dd2338b6b7b915c56c2df6f58)) - (Tonye Jack)
## <!-- 26 -->🔄 Update
- Updated README.md ([#1850](https://github.com/tj-actions/changed-files/issues/1850))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([3649d28](https://github.com/tj-actions/changed-files/commit/3649d2842d46e7cc679c204d917887f7821cf08a)) - (tj-actions[bot])
- Updated README.md ([#1830](https://github.com/tj-actions/changed-files/issues/1830))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([3fbf5fb](https://github.com/tj-actions/changed-files/commit/3fbf5fb588c7e1fdbc140668150a2b725984c6ed)) - (tj-actions[bot])
- Update README.md ([9523067](https://github.com/tj-actions/changed-files/commit/95230678db8c15d57cd678fbcd2a7e87e83ac1e1)) - (Tonye Jack)
- Update README.md ([032add1](https://github.com/tj-actions/changed-files/commit/032add13e8e88878dc3238258baee58dcb4a528a)) - (Tonye Jack)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- Update top level workflow permissions ([#1848](https://github.com/tj-actions/changed-files/issues/1848)) ([a57f4dc](https://github.com/tj-actions/changed-files/commit/a57f4dcc814fa55691c9ee5fc6e07c7487cb69f1)) - (Tonye Jack)
- **deps:** Update dependency prettier to v3.2.1 ([9c39b0b](https://github.com/tj-actions/changed-files/commit/9c39b0b6e9d3a1e534a35da2e6142c8b1d0204b3)) - (renovate[bot])
- **deps:** Update dependency eslint-plugin-jest to v27.6.3 ([8b141f3](https://github.com/tj-actions/changed-files/commit/8b141f390680a108c54963421dbc9ed587516859)) - (renovate[bot])
- Create multi-job-test.yml ([#1843](https://github.com/tj-actions/changed-files/issues/1843)) ([17e07d8](https://github.com/tj-actions/changed-files/commit/17e07d8bc032c41929a28e4ac0180f5fd41e62e8)) - (Tonye Jack)
- Update warning message ([#1845](https://github.com/tj-actions/changed-files/issues/1845)) ([13fa1c0](https://github.com/tj-actions/changed-files/commit/13fa1c06fc72cd769f43877df4deb2fcef0070bf)) - (Tonye Jack)
- **deps:** Update dependency prettier to v3.2.0 ([0deb29d](https://github.com/tj-actions/changed-files/commit/0deb29d192a79307172c8ca2af53b9163e1f2dce)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.11.0 ([28267ee](https://github.com/tj-actions/changed-files/commit/28267ee8b7e9d0a1510577b3da5c95991e566f8d)) - (renovate[bot])
- **deps:** Update dependency eslint-plugin-jest to v27.6.2 ([094d344](https://github.com/tj-actions/changed-files/commit/094d3441f851cdd60b3184c559065cff58998103)) - (renovate[bot])
- **deps:** Update dependency eslint-plugin-prettier to v5.1.3 ([aeec36b](https://github.com/tj-actions/changed-files/commit/aeec36b0354dca21f43136a2a5be79815ad013b9)) - (renovate[bot])
- **deps-dev:** Bump @types/node from 20.10.7 to 20.10.8 ([#1836](https://github.com/tj-actions/changed-files/issues/1836)) ([2d0270c](https://github.com/tj-actions/changed-files/commit/2d0270c489bf57145dd4a63d0a5fcf35a7147bc3)) - (dependabot[bot])
- **deps:** Update typescript-eslint monorepo to v6.18.1 ([0e0adfa](https://github.com/tj-actions/changed-files/commit/0e0adfa0d3cc3663f8db2d833bbec96034e98250)) - (renovate[bot])
- Update jest.config.js ([#1834](https://github.com/tj-actions/changed-files/issues/1834)) ([5313e6b](https://github.com/tj-actions/changed-files/commit/5313e6bbe36db02444adb6db8803c3fb020fbeef)) - (Tonye Jack)
- **deps:** Lock file maintenance ([54789be](https://github.com/tj-actions/changed-files/commit/54789be3a182749c98b3750327225ef16ae72b85)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.10.7 ([1675238](https://github.com/tj-actions/changed-files/commit/1675238cfd53ec058721786adb67a77f56f46987)) - (renovate[bot])
- Create workflow-run-test.yml ([#1828](https://github.com/tj-actions/changed-files/issues/1828)) ([fdccafb](https://github.com/tj-actions/changed-files/commit/fdccafbb6e5c278dc3360f8a44f7c2878206751f)) - (Tonye Jack)
- **deps:** Update typescript-eslint monorepo to v6.18.0 ([0e8d796](https://github.com/tj-actions/changed-files/commit/0e8d796ee02804f613950c68e90685e43f22c9d5)) - (renovate[bot])
- **deps:** Update dependency eslint-plugin-jest to v27.6.1 ([0c6f2ac](https://github.com/tj-actions/changed-files/commit/0c6f2ac4885216b1830ecbcc3573209980c97716)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.17.0 ([1db97ad](https://github.com/tj-actions/changed-files/commit/1db97adba438afdc3741c78fd02aa2ac621332b0)) - (renovate[bot])
- **deps:** Lock file maintenance ([fb8f6db](https://github.com/tj-actions/changed-files/commit/fb8f6db383582a9d4ee2fadc1601db53b2fe1c2b)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.10.6 ([efd7ece](https://github.com/tj-actions/changed-files/commit/efd7ecef11e1ce94fc5121243c09ad2be618d175)) - (renovate[bot])
- **deps:** Update tj-actions/verify-changed-files action to v17 ([#1820](https://github.com/tj-actions/changed-files/issues/1820)) ([4f8e12c](https://github.com/tj-actions/changed-files/commit/4f8e12c0984394b03e7c4015292f8f644e2e5426)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.16.0 ([0f0747e](https://github.com/tj-actions/changed-files/commit/0f0747e79dd8b1e79730cb9aeb9adbc1d45b79da)) - (renovate[bot])
- Update matrix-test.yml ([#1814](https://github.com/tj-actions/changed-files/issues/1814)) ([0c2a758](https://github.com/tj-actions/changed-files/commit/0c2a758b81c9fe6c9dc0b17f46d87e68707e8054)) - (Tonye Jack)
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v41.0.1 ([#1816](https://github.com/tj-actions/changed-files/issues/1816))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([1b6d7b6](https://github.com/tj-actions/changed-files/commit/1b6d7b6fb62c81ae85b9114bbb15ebeb21c2833d)) - (tj-actions[bot])
# [41.0.1](https://github.com/tj-actions/changed-files/compare/v41.0.0...v41.0.1) - (2023-12-24)
## <!-- 1 -->🐛 Bug Fixes
- Update characters escaped by safe output ([#1815](https://github.com/tj-actions/changed-files/issues/1815)) ([716b1e1](https://github.com/tj-actions/changed-files/commit/716b1e13042866565e00e85fd4ec490e186c4a2f)) - (Tonye Jack)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Update dependency eslint-plugin-prettier to v5.1.2 ([7aaf10d](https://github.com/tj-actions/changed-files/commit/7aaf10d9eef19e8a2432a967b88124171152caaf)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v41 ([#1811](https://github.com/tj-actions/changed-files/issues/1811))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([cc08e17](https://github.com/tj-actions/changed-files/commit/cc08e170f4447237bcaf8acaacfa615b9cb86612)) - (tj-actions[bot])
# [41.0.0](https://github.com/tj-actions/changed-files/compare/v40.2.3...v41.0.0) - (2023-12-23)
## <!-- 1 -->🐛 Bug Fixes
- Update safe output regex and the docs ([#1805](https://github.com/tj-actions/changed-files/issues/1805)) ([ff2f6e6](https://github.com/tj-actions/changed-files/commit/ff2f6e6b91913a7be42be1b5917330fe442f2ede)) - (tj-actions[bot])
## <!-- 11 -->⏪ Reverts
- Revert "chore(deps): update actions/download-artifact action to v4" ([#1806](https://github.com/tj-actions/changed-files/issues/1806))
([4f573fe](https://github.com/tj-actions/changed-files/commit/4f573fed06c9abb5da4c72f75c1c320718114ff7)) - (Tonye Jack)
## <!-- 26 -->🔄 Update
- Update README.md ([6e79d6e](https://github.com/tj-actions/changed-files/commit/6e79d6e3dbe48946636c2939c80ff5c84ff7f9fe)) - (Tonye Jack)
- Update README.md ([d13ac19](https://github.com/tj-actions/changed-files/commit/d13ac1942fb3c1d7d32017915bb082cebe8a272a)) - (Tonye Jack)
- Update README.md ([bb89f97](https://github.com/tj-actions/changed-files/commit/bb89f97963be96b39e1a303e64d5b91a1af4c340)) - (Tonye Jack)
- Updated README.md ([#1810](https://github.com/tj-actions/changed-files/issues/1810))
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com> ([1864078](https://github.com/tj-actions/changed-files/commit/1864078d0afadf68ba489e671ecc09fefe8b70ab)) - (tj-actions[bot])
- Update README.md ([#1808](https://github.com/tj-actions/changed-files/issues/1808))
([47371c5](https://github.com/tj-actions/changed-files/commit/47371c50e97c089212d9eb92ca26c8453224e78e)) - (Tonye Jack)
## <!-- 30 -->📝 Other
- Merge pull request from GHSA-mcph-m25j-8j63
* feat: add `safe_output` input enabled by default
* fix: migrate README to safe uses of interpolation
* fix: README `uses` typo
* fix: README examples to account for newlines
* fix: README examples missing `safe_output`
* fix: remove sanitization of `'`
* fix: also sanitize `|&;` ([0102c07](https://github.com/tj-actions/changed-files/commit/0102c07446a3cad972f4afcbd0ee4dbc4b6d2d1b)) - (Jorge)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Lock file maintenance ([f495a03](https://github.com/tj-actions/changed-files/commit/f495a0321d3fffa62da2573adf70b77d5eb2f57a)) - (renovate[bot])
- **deps:** Update dependency eslint-plugin-prettier to v5.1.1 ([089842a](https://github.com/tj-actions/changed-files/commit/089842a7a899531f61a45ef6ea69c485e1d62dbe)) - (renovate[bot])
- **deps:** Lock file maintenance ([787db06](https://github.com/tj-actions/changed-files/commit/787db0612e783421667a00319cf394b649682c4c)) - (renovate[bot])
- **deps:** Update dependency eslint-plugin-prettier to v5.1.0 ([4ef6b56](https://github.com/tj-actions/changed-files/commit/4ef6b56482141a958bd3efb05520e4df9ecf4147)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.15.0 ([c9ae347](https://github.com/tj-actions/changed-files/commit/c9ae347dbba64d95d83f36a0568e0e25a688dd1f)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v40.2.3 ([#1800](https://github.com/tj-actions/changed-files/issues/1800))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com> ([f9480db](https://github.com/tj-actions/changed-files/commit/f9480db177263c95588c5d9dae7c78f97d39242a)) - (tj-actions[bot])
# [40.2.3](https://github.com/tj-actions/changed-files/compare/v40.2.2...v40.2.3) - (2023-12-18)
## <!-- 16 --> Add
- Added missing changes and modified dist assets.
([af2816c](https://github.com/tj-actions/changed-files/commit/af2816c65436325c50621100d67f6e853cd1b0f1)) - (GitHub Action)
## <!-- 26 -->🔄 Update
- Update README.md ([35da2a2](https://github.com/tj-actions/changed-files/commit/35da2a2e0191eb945214321cc664869c14bb417d)) - (Tonye Jack)
- Update README.md ([e7023fa](https://github.com/tj-actions/changed-files/commit/e7023fa1da70371f80732e85962d42429dbb753f)) - (Tonye Jack)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Update actions/setup-node action to v4.0.1 ([56284d8](https://github.com/tj-actions/changed-files/commit/56284d80811fb5963a972b438f2870f175e5b7c8)) - (renovate[bot])
- **deps:** Lock file maintenance ([35ad678](https://github.com/tj-actions/changed-files/commit/35ad6787f51ccf58acdbbb0fa3a218043189e04a)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.10.5 ([ca0db0e](https://github.com/tj-actions/changed-files/commit/ca0db0ea03dfadeb55abbfe75f0f2a409c2b63a2)) - (renovate[bot])
- **deps:** Update dependency eslint to v8.56.0 ([03fcd0b](https://github.com/tj-actions/changed-files/commit/03fcd0b3bbebef7d94f2dd168773ff4cfe07e4a8)) - (renovate[bot])
- **deps:** Lock file maintenance ([2329d9f](https://github.com/tj-actions/changed-files/commit/2329d9fb48d2d2dec879a4880f6a786dabc3b600)) - (renovate[bot])
- **deps:** Update actions/download-artifact action to v4 ([#1793](https://github.com/tj-actions/changed-files/issues/1793)) ([154ca89](https://github.com/tj-actions/changed-files/commit/154ca89d2ee4f46393b1d62a52384c81606c56c1)) - (renovate[bot])
- **deps:** Update github/codeql-action action to v3 ([#1792](https://github.com/tj-actions/changed-files/issues/1792)) ([449352f](https://github.com/tj-actions/changed-files/commit/449352f10e90ac442b572b634237087e2deb2650)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.14.0 ([7c18263](https://github.com/tj-actions/changed-files/commit/7c1826332f68b8fda7e96b7897dda706c8c7ade8)) - (renovate[bot])
- **deps:** Lock file maintenance ([88be287](https://github.com/tj-actions/changed-files/commit/88be287f562aea237fd7361d4c2af5c75bc4d9aa)) - (renovate[bot])
- **deps:** Update dependency prettier to v3.1.1 ([5513a5e](https://github.com/tj-actions/changed-files/commit/5513a5e205776f7ce167db86c93107b21826247e)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v40.2.2 ([#1787](https://github.com/tj-actions/changed-files/issues/1787))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([46550b6](https://github.com/tj-actions/changed-files/commit/46550b6fd9d874e06d58f846c7f42cc7b84e4aba)) - (tj-actions[bot])
# [40.2.2](https://github.com/tj-actions/changed-files/compare/v40.2.1...v40.2.2) - (2023-12-10)
## <!-- 1 -->🐛 Bug Fixes
- Bug recovering deleted files for submodules ([#1784](https://github.com/tj-actions/changed-files/issues/1784)) ([9454999](https://github.com/tj-actions/changed-files/commit/94549999469dbfa032becf298d95c87a14c34394)) - (Tonye Jack)
## <!-- 17 --> Remove
- Deleted .github/workflows/auto-approve.yml ([a661767](https://github.com/tj-actions/changed-files/commit/a66176714d5d018bc975bf0246c427135def756c)) - (Tonye Jack)
## <!-- 26 -->🔄 Update
- Updated README.md ([#1786](https://github.com/tj-actions/changed-files/issues/1786))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([7611ff3](https://github.com/tj-actions/changed-files/commit/7611ff348df4d0d46887198cda7203e6fc5ffa80)) - (tj-actions[bot])
- Update README.md ([c116f52](https://github.com/tj-actions/changed-files/commit/c116f52a1566bda08e9782a74c333a21270cf952)) - (Tonye Jack)
- Updated README.md ([#1779](https://github.com/tj-actions/changed-files/issues/1779))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([0b0b642](https://github.com/tj-actions/changed-files/commit/0b0b6429e1c5a0bc3f85230a0e1f6df2cba44600)) - (tj-actions[bot])
- Update README.md ([f732c37](https://github.com/tj-actions/changed-files/commit/f732c371a41ace2af86e5cb2e4f7b0254e4a63e5)) - (Tonye Jack)
- Updated README.md ([#1778](https://github.com/tj-actions/changed-files/issues/1778))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([04c0045](https://github.com/tj-actions/changed-files/commit/04c00459a27a4e6651f4b0fa3d3a4bc500480109)) - (tj-actions[bot])
- Update README.md ([5cee511](https://github.com/tj-actions/changed-files/commit/5cee511ba525ad1e92208283322b32120a033b48)) - (Tonye Jack)
- Update README.md ([399525a](https://github.com/tj-actions/changed-files/commit/399525a994a54fef4ac0ef55192e3d2e30dc0587)) - (Tonye Jack)
- Update README.md ([c075bd2](https://github.com/tj-actions/changed-files/commit/c075bd27195652f012b60452cd3026891de29306)) - (Tonye Jack)
- Update README.md ([2918913](https://github.com/tj-actions/changed-files/commit/29189133419ced6b335e576b1e1f7a9e8061fdd8)) - (Tonye Jack)
## <!-- 3 -->📚 Documentation
- Add rodrigorfk as a contributor for code, test, and bug ([#1785](https://github.com/tj-actions/changed-files/issues/1785)) ([187cf1e](https://github.com/tj-actions/changed-files/commit/187cf1e88cc94e5b5243c6eefcc550510b7894a8)) - (allcontributors[bot])
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Bump tj-actions/branch-names from 7 to 8 ([#1782](https://github.com/tj-actions/changed-files/issues/1782)) ([e1e532c](https://github.com/tj-actions/changed-files/commit/e1e532cff0353cb6a98b0bce6ff00b7e7d2cc320)) - (dependabot[bot])
- **deps:** Update dependency @types/node to v20.10.4 ([dfecec4](https://github.com/tj-actions/changed-files/commit/dfecec4fb70c945750762cdad7026ee55d8a205f)) - (renovate[bot])
- **deps:** Update dependency typescript to v5.3.3 ([208b83f](https://github.com/tj-actions/changed-files/commit/208b83f29576c33f31be8846aadbf644242f2b2f)) - (renovate[bot])
- **deps-dev:** Bump @types/jest from 29.5.10 to 29.5.11 ([#1775](https://github.com/tj-actions/changed-files/issues/1775)) ([ccb109a](https://github.com/tj-actions/changed-files/commit/ccb109a58449e62280c2ecefb65010f90fbd0e4f)) - (dependabot[bot])
- Update package.json ([#1774](https://github.com/tj-actions/changed-files/issues/1774)) ([95642a1](https://github.com/tj-actions/changed-files/commit/95642a1ebb79474d514126dd282092c68a08b01b)) - (Tonye Jack)
- Create SECURITY.md ([#1773](https://github.com/tj-actions/changed-files/issues/1773)) ([726e06f](https://github.com/tj-actions/changed-files/commit/726e06f8efc4737fd4c48080f40a21b4305cafab)) - (Tonye Jack)
- **deps:** Update typescript-eslint monorepo to v6.13.2 ([d96fe5d](https://github.com/tj-actions/changed-files/commit/d96fe5d9975371a6b58e65d0a309ad49d70e378e)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v40.2.1 ([#1771](https://github.com/tj-actions/changed-files/issues/1771))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([4ae611e](https://github.com/tj-actions/changed-files/commit/4ae611e5c56a1c7f3c356adf173f9f11fcca0376)) - (tj-actions[bot])
# [40.2.1](https://github.com/tj-actions/changed-files/compare/v40.2.0...v40.2.1) - (2023-12-04)
## <!-- 16 --> Add
- Added missing changes and modified dist assets.
([1c93849](https://github.com/tj-actions/changed-files/commit/1c938490c880156b746568a518594309cfb3f66b)) - (GitHub Action)
- Added missing changes and modified dist assets.
([ee5ef75](https://github.com/tj-actions/changed-files/commit/ee5ef758aa548d365981b0889bab497dd108a785)) - (GitHub Action)
## <!-- 17 --> Remove
- Deleted .github/workflows/greetings.yml ([f91c9fe](https://github.com/tj-actions/changed-files/commit/f91c9fe8b1f4719a8e3901b4878b31105efcb66e)) - (Tonye Jack)
## <!-- 26 -->🔄 Update
- Updated README.md ([#1769](https://github.com/tj-actions/changed-files/issues/1769))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([66b77cb](https://github.com/tj-actions/changed-files/commit/66b77cbd0c866511f45c4f624e61034699bc70c2)) - (tj-actions[bot])
- Update README.md ([10bfa98](https://github.com/tj-actions/changed-files/commit/10bfa980b7876a94d460f54bd1b46d5c54b025d3)) - (Tonye Jack)
- Updated README.md ([#1767](https://github.com/tj-actions/changed-files/issues/1767))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com>
Co-authored-by: Tonye Jack <jtonye@ymail.com> ([9e46b4f](https://github.com/tj-actions/changed-files/commit/9e46b4f7f7dce12301b893ec0484694ae579108d)) - (tj-actions[bot])
- Update README.md ([3bf6172](https://github.com/tj-actions/changed-files/commit/3bf61725348c8cd85dcf9ce468c35a8e15a5c77e)) - (Tonye Jack)
- Updated README.md ([#1755](https://github.com/tj-actions/changed-files/issues/1755))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([48427af](https://github.com/tj-actions/changed-files/commit/48427afe26457522a3f0f4a5afae46a8bb6261b1)) - (tj-actions[bot])
- Update README.md ([742ed36](https://github.com/tj-actions/changed-files/commit/742ed362b6c6415493f2dd3a2e86ccbb60e1035a)) - (Tonye Jack)
- Updated README.md ([#1750](https://github.com/tj-actions/changed-files/issues/1750))
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com> ([86cabf5](https://github.com/tj-actions/changed-files/commit/86cabf5ea23ece4cc5468211fbab9fb76f2b1d91)) - (tj-actions[bot])
## <!-- 30 -->📝 Other
- Update test.yml removing pull_request_review event ([#1763](https://github.com/tj-actions/changed-files/issues/1763)) ([af6bdde](https://github.com/tj-actions/changed-files/commit/af6bdde59acc56af0e0a6c6a8acff0d3562162ba)) - (Tonye Jack)
- Remove usage of pull_request_target event from test.yml ([#1758](https://github.com/tj-actions/changed-files/issues/1758)) ([3ca6b80](https://github.com/tj-actions/changed-files/commit/3ca6b800138b4c660c4b99b76bb064cdf3f31e59)) - (Tonye Jack)
## <!-- 6 -->🧪 Testing
- Verify bug writing outputs when files_yaml is used ([#1762](https://github.com/tj-actions/changed-files/issues/1762)) ([fc1fb2b](https://github.com/tj-actions/changed-files/commit/fc1fb2b582f5e701390f9f6200dddd7425a3cc70)) - (Tonye Jack)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Lock file maintenance ([ba558db](https://github.com/tj-actions/changed-files/commit/ba558db9775398895ee078c784a5ddef602bb754)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.10.3 ([bf19fa2](https://github.com/tj-actions/changed-files/commit/bf19fa23a6b30fb87fe85abdb237154c4573c08c)) - (renovate[bot])
- **deps:** Update dependency eslint-config-prettier to v9.1.0 ([45581f0](https://github.com/tj-actions/changed-files/commit/45581f0044c213a3f45e5036d921892484eb7a0d)) - (renovate[bot])
- **deps:** Update dependency eslint to v8.55.0 ([9ebb48b](https://github.com/tj-actions/changed-files/commit/9ebb48b57af1c93015957959d7d9ffe546df3ccd)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.10.2 ([4e2dca3](https://github.com/tj-actions/changed-files/commit/4e2dca3ba527858faa57966af9baff3c9bbbb5d6)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.10.1 ([883b4cc](https://github.com/tj-actions/changed-files/commit/883b4ccbdb2f56448769f275a0d599bb9eb942c6)) - (renovate[bot])
- **deps:** Lock file maintenance ([42fe158](https://github.com/tj-actions/changed-files/commit/42fe158594392b80e30260bbb489eae0ed872e23)) - (renovate[bot])
- Remove unused job ([#1754](https://github.com/tj-actions/changed-files/issues/1754)) ([5c74583](https://github.com/tj-actions/changed-files/commit/5c74583cb3f4bb017cad62c02cf599b60d088a3d)) - (Tonye Jack)
- **deps:** Update typescript-eslint monorepo to v6.13.1 ([44d340e](https://github.com/tj-actions/changed-files/commit/44d340e48cef9bee9d0bd468f0f9a8ccf3219200)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.13.0 ([2561448](https://github.com/tj-actions/changed-files/commit/2561448da0579d80e1916a83b9c0d3622add8fc5)) - (renovate[bot])
- Update README.md ([#1749](https://github.com/tj-actions/changed-files/issues/1749)) ([b5fc67a](https://github.com/tj-actions/changed-files/commit/b5fc67a4f5e5dafd4d564eefde1958a4ae7974ac)) - (Tonye Jack)
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v40.2.0 ([#1746](https://github.com/tj-actions/changed-files/issues/1746))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([0b22a52](https://github.com/tj-actions/changed-files/commit/0b22a52bff23bee090e1e07f70f9e7fab8384387)) - (tj-actions[bot])
# [40.2.0](https://github.com/tj-actions/changed-files/compare/v40.1.1...v40.2.0) - (2023-11-27)
## <!-- 0 -->🚀 Features
- Add support for passing branch name to the base_sha and sha inputs ([#1742](https://github.com/tj-actions/changed-files/issues/1742)) ([2139fa1](https://github.com/tj-actions/changed-files/commit/2139fa1b6f71f22bf7d9f21e4aebc3aba987e05e)) - (Tonye Jack)
## <!-- 1 -->🐛 Bug Fixes
- Prevent similar commit hashes error when using the branch name ([#1745](https://github.com/tj-actions/changed-files/issues/1745)) ([da093c1](https://github.com/tj-actions/changed-files/commit/da093c1609db0edd0a037ce9664e135f74bf30d9)) - (Tonye Jack)
- Prevent similar commit hashes error when using the branch name ([#1744](https://github.com/tj-actions/changed-files/issues/1744)) ([c634be9](https://github.com/tj-actions/changed-files/commit/c634be959b924afb7d2f4809d6e309859e191975)) - (Tonye Jack)
## <!-- 13 -->📦 Bumps
- Bump @types/node from 20.9.3 to 20.9.4 ([#1732](https://github.com/tj-actions/changed-files/issues/1732))
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([066e72a](https://github.com/tj-actions/changed-files/commit/066e72a5fb4e82931d493f931f84b5df8cab22d0)) - (dependabot[bot])
- Bump @types/jest from 29.5.8 to 29.5.9 ([#1726](https://github.com/tj-actions/changed-files/issues/1726))
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>
([c23e564](https://github.com/tj-actions/changed-files/commit/c23e564e671f2f3230a34a588eb3b55f7d60faed)) - (dependabot[bot])
- Bump @types/micromatch from 4.0.5 to 4.0.6 ([#1727](https://github.com/tj-actions/changed-files/issues/1727))
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>
([c008025](https://github.com/tj-actions/changed-files/commit/c0080255e3e88e03415d2753b4d4c1f341183f79)) - (dependabot[bot])
- Bump @types/lodash from 4.14.201 to 4.14.202 ([#1728](https://github.com/tj-actions/changed-files/issues/1728))
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> ([3a3d3a2](https://github.com/tj-actions/changed-files/commit/3a3d3a2b86e4d416e80a80f115c07915be7d3460)) - (dependabot[bot])
- Bump @types/node from 20.9.2 to 20.9.3 ([#1725](https://github.com/tj-actions/changed-files/issues/1725))
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([4da6e32](https://github.com/tj-actions/changed-files/commit/4da6e32cfea3c23f1a8d70337b3cb1307fe74702)) - (dependabot[bot])
## <!-- 16 --> Add
- Added missing changes and modified dist assets.
([607d5dd](https://github.com/tj-actions/changed-files/commit/607d5ddbbfd4921680b18a439387657412549259)) - (GitHub Action)
- Added missing changes and modified dist assets.
([7f1c4cb](https://github.com/tj-actions/changed-files/commit/7f1c4cb6db07d6473fae667073c46ef6e2abc5e7)) - (GitHub Action)
- Added missing changes and modified dist assets.
([1cf54bb](https://github.com/tj-actions/changed-files/commit/1cf54bb5d30a33a40efca5e00884096dd1f49cf9)) - (GitHub Action)
- Added missing changes and modified dist assets.
([d8d3669](https://github.com/tj-actions/changed-files/commit/d8d3669cb396f0081313a19b34a25ad989ba5abb)) - (GitHub Action)
## <!-- 26 -->🔄 Update
- Update README.md ([6784c9e](https://github.com/tj-actions/changed-files/commit/6784c9e1eeb301520aa26a6f786c3a8a1e742786)) - (Tonye Jack)
- Update greetings.yml ([90f2c0c](https://github.com/tj-actions/changed-files/commit/90f2c0c1b1177f4c5813bf893c3c5e2ce4baca93)) - (Tonye Jack)
- Updated README.md ([#1722](https://github.com/tj-actions/changed-files/issues/1722))
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com> ([f7779a6](https://github.com/tj-actions/changed-files/commit/f7779a6302b8b7cf930b2b7e34213c4b68e3ed2d)) - (tj-actions[bot])
- Updated README.md ([#1721](https://github.com/tj-actions/changed-files/issues/1721))
Co-authored-by: renovate[bot] <renovate[bot]@users.noreply.github.com> ([6d07b6e](https://github.com/tj-actions/changed-files/commit/6d07b6ee5902a442f4fee4603a23ba9f735b1ca0)) - (tj-actions[bot])
- Updated README.md ([#1714](https://github.com/tj-actions/changed-files/issues/1714))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([97825a1](https://github.com/tj-actions/changed-files/commit/97825a1994aabf99e2c01837273ba1716a2fac73)) - (tj-actions[bot])
- Updated README.md ([#1713](https://github.com/tj-actions/changed-files/issues/1713))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([2a9f067](https://github.com/tj-actions/changed-files/commit/2a9f067522563ebf5445c15c1480753821f99354)) - (tj-actions[bot])
- Updated README.md ([#1712](https://github.com/tj-actions/changed-files/issues/1712))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([b082611](https://github.com/tj-actions/changed-files/commit/b082611680535c989a8f91fb644fb1984d01415d)) - (tj-actions[bot])
- Updated README.md ([#1711](https://github.com/tj-actions/changed-files/issues/1711))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([90a4f2a](https://github.com/tj-actions/changed-files/commit/90a4f2a3269003cd5351020e24ad59586c97e2af)) - (tj-actions[bot])
- Updated README.md ([#1710](https://github.com/tj-actions/changed-files/issues/1710))
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com> ([b20ce84](https://github.com/tj-actions/changed-files/commit/b20ce84763512903636c6bc5e95092a7f35bac61)) - (tj-actions[bot])
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Lock file maintenance ([d588360](https://github.com/tj-actions/changed-files/commit/d588360bfe7e5ce0b2ad1ca0f56443a105eb1cc3)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.10.0 ([0d6e9b7](https://github.com/tj-actions/changed-files/commit/0d6e9b71966503cd14182330532c722316e450bc)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.9.5 ([8f90cc1](https://github.com/tj-actions/changed-files/commit/8f90cc165ad22c68ab50623b2e5d8397eeb90ec7)) - (renovate[bot])
- **deps:** Update dependency @types/jest to v29.5.10 ([75758bc](https://github.com/tj-actions/changed-files/commit/75758bc65f2f009213bf6f74451bff1200005d00)) - (renovate[bot])
- **deps:** Update dependency @types/lodash to v4.14.202 ([79ef9d3](https://github.com/tj-actions/changed-files/commit/79ef9d3feebded8f767c62aa3ee76368dc028195)) - (renovate[bot])
- **deps:** Update dependency @types/micromatch to v4.0.6 ([da4597e](https://github.com/tj-actions/changed-files/commit/da4597ee22010cde29dcbf422eb2a9480136c3ae)) - (renovate[bot])
- **deps:** Update dependency @types/jest to v29.5.9 ([9f4ec1c](https://github.com/tj-actions/changed-files/commit/9f4ec1c14f0dc5c2f3053c27efba3a63781efb0b)) - (renovate[bot])
- **deps:** Update dependency typescript to v5.3.2 ([939fbca](https://github.com/tj-actions/changed-files/commit/939fbca781a0004fbe7aa648fb6656046a8df71b)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.12.0 ([9ba175a](https://github.com/tj-actions/changed-files/commit/9ba175ae245f8a261d7f4acf3ccfaf0a60d32302)) - (renovate[bot])
- Simplify matrix example workflow ([#1719](https://github.com/tj-actions/changed-files/issues/1719)) ([05bdc91](https://github.com/tj-actions/changed-files/commit/05bdc91228c589841621aee130aa6033579687de)) - (Tonye Jack)
- **deps:** Lock file maintenance ([21b4a4b](https://github.com/tj-actions/changed-files/commit/21b4a4bc7b1834f22f8fe7f17a425e984017ea5f)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.9.2 ([658f397](https://github.com/tj-actions/changed-files/commit/658f39729762255a3e3166fd20c16573fb1738ee)) - (renovate[bot])
- **deps:** Update dependency eslint to v8.54.0 ([38a0c32](https://github.com/tj-actions/changed-files/commit/38a0c329bb00b10f18e61d5f23349fbd1576c08e)) - (renovate[bot])
- **deps:** Update dependency @types/node to v20.9.1 ([b0be21b](https://github.com/tj-actions/changed-files/commit/b0be21b8dfdb45d0b2b92528ce89d727f4bdb89d)) - (renovate[bot])
- Update action.yml ([13189f9](https://github.com/tj-actions/changed-files/commit/13189f9e5209c0bd05c1c253e226dbf548695424)) - (Tonye Jack)
- Update action inputs description ([ad01f6f](https://github.com/tj-actions/changed-files/commit/ad01f6fdbaf0f959888aeeb6684856397af589d1)) - (Tonye Jack)
- Update input description ([a36c479](https://github.com/tj-actions/changed-files/commit/a36c479373da160c2cee10435cf68a4e93e6e68d)) - (Tonye Jack)
- Update input description ([41ff1f2](https://github.com/tj-actions/changed-files/commit/41ff1f224927a20a43124b4d729c696c18771677)) - (Tonye Jack)
- Update update-readme.yml ([#1709](https://github.com/tj-actions/changed-files/issues/1709)) ([875213d](https://github.com/tj-actions/changed-files/commit/875213d4a94e0703cea7109c43ef111b94f1062d)) - (Tonye Jack)
- **deps:** Update typescript-eslint monorepo to v6.11.0 ([71b5765](https://github.com/tj-actions/changed-files/commit/71b57652f02612b6f858d71ddf7115487ad51882)) - (renovate[bot])
- **deps:** Update dependency prettier to v3.1.0 ([834b862](https://github.com/tj-actions/changed-files/commit/834b86247ec0d15224902d58f5531c78be2e3fc5)) - (renovate[bot])
- **deps:** Lock file maintenance ([940b170](https://github.com/tj-actions/changed-files/commit/940b170a31d813bc7b88d3816a643b25b66c1342)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v40.1.1 ([#1704](https://github.com/tj-actions/changed-files/issues/1704))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([55b93d0](https://github.com/tj-actions/changed-files/commit/55b93d07342c1bd89af9693bfb44faff42ebcd9e)) - (tj-actions[bot])
# [40.1.1](https://github.com/tj-actions/changed-files/compare/v40.1.0...v40.1.1) - (2023-11-08)
## <!-- 16 --> Add
- Added missing changes and modified dist assets.
([e981e53](https://github.com/tj-actions/changed-files/commit/e981e53b7faf4d2fbf8e077b7eec07ef0f7fa221)) - (GitHub Action)
## <!-- 7 -->⚙️ Miscellaneous Tasks
- **deps:** Update dependency @types/node to v20.9.0 ([25ef392](https://github.com/tj-actions/changed-files/commit/25ef3926d147cd02fc7e931c1ef50772bbb0d25d)) - (renovate[bot])
- **deps:** Update dependency @types/lodash to v4.14.201 ([4d33bd5](https://github.com/tj-actions/changed-files/commit/4d33bd5f9cd03b7df1e544c3426cb9e63c52791e)) - (renovate[bot])
- **deps:** Update dependency @types/micromatch to v4.0.5 ([f25e472](https://github.com/tj-actions/changed-files/commit/f25e47258b32eef5d87030d4f6eb9e20cd7349b0)) - (renovate[bot])
- **deps:** Update dependency @types/uuid to v9.0.7 ([a3c4ccb](https://github.com/tj-actions/changed-files/commit/a3c4ccbde013ddc2eb4c788b5a7162fa72a1ad9b)) - (renovate[bot])
- **deps:** Update dependency @types/jest to v29.5.8 ([b114534](https://github.com/tj-actions/changed-files/commit/b11453410196db60f4c2f6b84ae222a41ed17300)) - (renovate[bot])
- **deps:** Update typescript-eslint monorepo to v6.10.0 ([303f064](https://github.com/tj-actions/changed-files/commit/303f064ba95d994742bfb189d37d5d0632a80222)) - (renovate[bot])
- **deps:** Lock file maintenance ([d850ef9](https://github.com/tj-actions/changed-files/commit/d850ef91f77568044a20bbf67b57d1b74934f716)) - (renovate[bot])
- **deps:** Update dependency eslint to v8.53.0 ([8701b58](https://github.com/tj-actions/changed-files/commit/8701b586f31d75024fe0fcb5eaddd30a7f4c0605)) - (renovate[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v40.1.0 ([#1695](https://github.com/tj-actions/changed-files/issues/1695))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([9b1ba9a](https://github.com/tj-actions/changed-files/commit/9b1ba9a603ec6c53c7a4610ddf3e14bde70ab0ea)) - (tj-actions[bot])
# [40.1.0](https://github.com/tj-actions/changed-files/compare/v40.0.2...v40.1.0) - (2023-11-03)
## <!-- 0 -->🚀 Features
- Add support for controlling the pattern order ([#1693](https://github.com/tj-actions/changed-files/issues/1693)) ([892553a](https://github.com/tj-actions/changed-files/commit/892553a4576166fd647dbd90ffa4b589f563572b)) - (Tonye Jack)
## <!-- 1 -->🐛 Bug Fixes
- **deps:** Update dependency yaml to v2.3.4 ([c300d15](https://github.com/tj-actions/changed-files/commit/c300d15daea754419fb9f133c53d821f0f6c17ea)) - (renovate[bot])
## <!-- 16 --> Add
- Added missing changes and modified dist assets.
([50a9cc9](https://github.com/tj-actions/changed-files/commit/50a9cc9b7b170bd6aaf4fb94db5da1c223606572)) - (GitHub Action)
## <!-- 26 -->🔄 Update
- Updated README.md ([#1694](https://github.com/tj-actions/changed-files/issues/1694))
Co-authored-by: repo-ranger[bot] <repo-ranger[bot]@users.noreply.github.com> ([18c8a4e](https://github.com/tj-actions/changed-files/commit/18c8a4ecebe93d32ed8a88e1d0c098f5f68c221b)) - (tj-actions[bot])
## <!-- 9 -->⬆️ Upgrades
- Upgraded to v40.0.2 ([#1689](https://github.com/tj-actions/changed-files/issues/1689))
Co-authored-by: jackton1 <jackton1@users.noreply.github.com> ([c076064](https://github.com/tj-actions/changed-files/commit/c07606463672e7c623bc2801b4002bd645aed1f2)) - (tj-actions[bot])
# [40.0.2](https://github.com/tj-actions/changed-files/compare/v40.0.1...v40.0.2) - (2023-10-31)
## <!-- 1 -->🐛 Bug Fixes

538
README.md
View File

@@ -3,13 +3,13 @@
[![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)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/4a625e9b62794b5b98e169c15c0e673c)](https://www.codacy.com/gh/tj-actions/changed-files/dashboard?utm_source=github.com\&utm_medium=referral\&utm_content=tj-actions/changed-files\&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)
[![Update release version.](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml/badge.svg)](https://github.com/tj-actions/changed-files/actions/workflows/sync-release-version.yml)
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-21-orange.svg?style=flat-square)](#contributors-)
[![All Contributors](https://img.shields.io/badge/all_contributors-22-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
@@ -17,9 +17,9 @@
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.
> **Note**
> \[!NOTE]
>
> * This action solely identifies files that have undergone changes 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 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.
>
> See: https://github.com/tj-actions/verify-changed-files instead
@@ -32,9 +32,9 @@ Effortlessly track all changed files and directories relative to a target branch
* [Using Github's API :octocat:](#using-githubs-api-octocat)
* [On `push` ⬆️](#on-push-)
* [Other supported events :electron:](#other-supported-events-electron)
* [Inputs ⚙️](#inputs-)
* [Useful Acronyms 🧮](#useful-acronyms-)
* [Outputs 📤](#outputs-)
* [Inputs ⚙️](#inputs-)
* [Versioning 🏷️](#versioning-)
* [Examples 📄](#examples-)
* [Real-world usage 🌐](#real-world-usage-)
@@ -51,7 +51,7 @@ Effortlessly track all changed files and directories relative to a target branch
* 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.
* Facilitates easy debugging.
* Scales to handle large repositories.
* Scales to handle large/mono repositories.
* 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.
* 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.
@@ -60,7 +60,7 @@ Effortlessly track all changed files and directories relative to a target branch
* Optionally excludes the current directory.
* Writes outputs to a designated `.txt` or `.json` file for further processing.
* Restores deleted files to their previous location or a newly specified location.
* Supports Monorepos by fetching a fixed number of commits.
* Supports fetching a fixed number of commits which improves performance.
* 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 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).
@@ -83,7 +83,7 @@ And many more...
## Usage 💻
> **Important**
> \[!IMPORTANT]
>
> * **Push Events**: When configuring [`actions/checkout`](https://github.com/actions/checkout#usage), make sure to set [`fetch-depth`](https://github.com/actions/checkout#usage) to either `0` or `2`, depending on your use case.
> * **Mono Repositories**: To avoid pulling the entire branch history, you can utilize the default [`actions/checkout`](https://github.com/actions/checkout#usage)'s [`fetch-depth`](https://github.com/actions/checkout#usage) of `1` for [`pull_request`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request) events.
@@ -122,43 +122,46 @@ jobs:
# Example 1
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
# To compare changes between the current commit and the last pushed remote commit set `since_last_remote_commit: true`. e.g
# with:
# since_last_remote_commit: true
- name: List all changed files
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
for file in "$ALL_CHANGED_FILES"; do
echo "$file was changed"
done
# Example 2
- name: Get all changed markdown files
id: changed-markdown-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
# Avoid using single or double quotes for multiline patterns
files: |
**.md
# Avoid using single or double quotes for multiline patterns
- name: List all changed files markdown files
if: steps.changed-markdown-files.outputs.any_changed == 'true'
env:
ALL_CHANGED_FILES: ${{ steps.changed-markdown-files.outputs.all_changed_files }}
run: |
for file in ${{ steps.changed-markdown-files.outputs.all_changed_files }}; do
for file in "$ALL_CHANGED_FILES"; do
echo "$file was changed"
done
# Example 3
- name: Get all test, doc and src files that have changed
id: changed-files-yaml
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
files_yaml: |
doc:
- '**.md'
- docs/**
- README.md
test:
- test/**
- '!test/**.md'
@@ -169,29 +172,35 @@ jobs:
- name: Run step if test file(s) change
# NOTE: Ensure all outputs are prefixed by the same key used above e.g. `test_(...)` | `doc_(...)` | `src_(...)` when trying to access the `any_changed` output.
if: steps.changed-files-yaml.outputs.test_any_changed == 'true'
env:
TEST_ALL_CHANGED_FILES: ${{ steps.changed-files-yaml.outputs.test_all_changed_files }}
run: |
echo "One or more test file(s) has changed."
echo "List all the files that have changed: ${{ steps.changed-files-yaml.outputs.test_all_changed_files }}"
echo "List all the files that have changed: $TEST_ALL_CHANGED_FILES"
- name: Run step if doc file(s) change
if: steps.changed-files-yaml.outputs.doc_any_changed == 'true'
env:
DOC_ALL_CHANGED_FILES: ${{ steps.changed-files-yaml.outputs.doc_all_changed_files }}
run: |
echo "One or more doc file(s) has changed."
echo "List all the files that have changed: ${{ steps.changed-files-yaml.outputs.doc_all_changed_files }}"
echo "List all the files that have changed: $DOC_ALL_CHANGED_FILES"
# Example 3
- name: Get changed files in the docs folder
id: changed-files-specific
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
files: docs/*.{js,html} # Alternatively using: `docs/**`
files_ignore: docs/static.js
- name: Run step if any file(s) in the docs folder change
if: steps.changed-files-specific.outputs.any_changed == 'true'
env:
ALL_CHANGED_FILES: ${{ steps.changed-files-specific.outputs.all_changed_files }}
run: |
echo "One or more files in the docs folder has changed."
echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
echo "List all the files that have changed: $ALL_CHANGED_FILES"
```
#### Using Github's API :octocat:
@@ -222,11 +231,13 @@ jobs:
steps:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
- name: List all changed files
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
for file in "$ALL_CHANGED_FILES"; do
echo "$file was changed"
done
```
@@ -263,13 +274,14 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
# NOTE: `since_last_remote_commit: true` is implied by default and falls back to the previous local commit.
- name: List all changed files
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
for file in "$ALL_CHANGED_FILES"; do
echo "$file was changed"
done
...
@@ -296,6 +308,317 @@ Support this project with a :star:
[buymeacoffee-shield]: https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png
> \[!IMPORTANT]
>
> * When using `files_yaml*` inputs:
> * 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.
## Inputs ⚙️
<!-- AUTO-DOC-INPUT:START - Do not remove or modify this section -->
```yaml
- uses: tj-actions/changed-files@v42
id: changed-files
with:
# Github API URL.
# Type: string
# Default: "${{ github.api_url }}"
api_url: ''
# Specify a different base commit SHA or branch used
# for comparing changes
# Type: string
base_sha: ''
# Exclude changes outside the current directory and show path
# names relative to it. NOTE: This requires you to
# specify the top-level directory via the `path` input.
# Type: boolean
# Default: "true"
diff_relative: ''
# Output unique changed directories instead of filenames. NOTE: This
# returns `.` for changed files located in the current
# working directory which defaults to `$GITHUB_WORKSPACE`.
# Type: boolean
# Default: "false"
dir_names: ''
# Include only directories that have been deleted as opposed
# to directory names of files that have been deleted
# in the `deleted_files` output when `dir_names` is set to
# `true`.
# Type: boolean
# Default: "false"
dir_names_deleted_files_include_only_deleted_dirs: ''
# Exclude the current directory represented by `.` from the
# output when `dir_names` is set to `true`.
# Type: boolean
# Default: "false"
dir_names_exclude_current_dir: ''
# File and directory patterns to include in the output
# when `dir_names` is set to `true`. NOTE: This returns
# only the matching files and also the directory names.
# Type: string
dir_names_include_files: ''
# Separator used to split the `dir_names_include_files` input
# Type: string
# Default: "\n"
dir_names_include_files_separator: ''
# Limit the directory output to a maximum depth e.g
# `test/test1/test2` with max depth of `2` returns `test/test1`.
# Type: string
dir_names_max_depth: ''
# Escape JSON output.
# Type: boolean
# Default: "true"
escape_json: ''
# Fail when the initial diff fails.
# Type: boolean
# Default: "false"
fail_on_initial_diff_error: ''
# Fail when the submodule diff fails.
# Type: boolean
# Default: "false"
fail_on_submodule_diff_error: ''
# Fetch additional history for submodules.
# Type: boolean
# Default: "false"
fetch_additional_submodule_history: ''
# Depth of additional branch history fetched. NOTE: This can
# be adjusted to resolve errors with insufficient history.
# Type: string
# Default: "50"
fetch_depth: ''
# 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
files: ''
# Source file(s) used to populate the `files` input.
# Type: string
files_from_source_file: ''
# Separator used to split the `files_from_source_file` input.
# Type: string
# Default: "\n"
files_from_source_file_separator: ''
# Ignore changes to these file(s). NOTE: Multiline file/directory patterns
# should not include quotes.
# Type: string
files_ignore: ''
# Source file(s) used to populate the `files_ignore` input
# Type: string
files_ignore_from_source_file: ''
# Separator used to split the `files_ignore_from_source_file` input
# Type: string
# Default: "\n"
files_ignore_from_source_file_separator: ''
# Separator used to split the `files_ignore` input
# Type: string
# Default: "\n"
files_ignore_separator: ''
# YAML used to define a set of file patterns
# to ignore changes
# Type: string
files_ignore_yaml: ''
# Source file(s) used to populate the `files_ignore_yaml` input. Example:
# https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml
# Type: string
files_ignore_yaml_from_source_file: ''
# Separator used to split the `files_ignore_yaml_from_source_file` input
# Type: string
# Default: "\n"
files_ignore_yaml_from_source_file_separator: ''
# Separator used to split the `files` input
# Type: string
# Default: "\n"
files_separator: ''
# YAML used to define a set of file patterns
# to detect changes
# Type: string
files_yaml: ''
# Source file(s) used to populate the `files_yaml` input. Example:
# https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml
# Type: string
files_yaml_from_source_file: ''
# Separator used to split the `files_yaml_from_source_file` input
# Type: string
# Default: "\n"
files_yaml_from_source_file_separator: ''
# Include `all_old_new_renamed_files` output. Note this can generate a large
# output See: #501.
# Type: boolean
# Default: "false"
include_all_old_new_renamed_files: ''
# 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
# Type: boolean
# Default: "false"
json: ''
# Apply the negation patterns first. NOTE: This affects how
# changed files are matched.
# Type: boolean
# Default: "false"
negation_patterns_first: ''
# Split character for old and new renamed filename pairs.
# Type: string
# Default: " "
old_new_files_separator: ''
# Split character for old and new filename pairs.
# Type: string
# Default: ","
old_new_separator: ''
# Directory to store output files.
# Type: string
# Default: ".github/outputs"
output_dir: ''
# Output renamed files as deleted and added files.
# Type: boolean
# Default: "false"
output_renamed_files_as_deleted_and_added: ''
# Specify a relative path under `$GITHUB_WORKSPACE` to locate the
# repository.
# Type: string
# Default: "."
path: ''
# Use non-ASCII characters to match files and output the
# filenames completely verbatim by setting this to `false`
# Type: boolean
# Default: "true"
quotepath: ''
# Recover deleted files.
# Type: boolean
# Default: "false"
recover_deleted_files: ''
# Recover deleted files to a new destination directory, defaults
# to the original location.
# Type: string
recover_deleted_files_to_destination: ''
# File and directory patterns used to recover deleted files,
# defaults to the patterns provided via 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
recover_files: ''
# File and directory patterns to ignore when recovering deleted
# files.
# Type: string
recover_files_ignore: ''
# Separator used to split the `recover_files_ignore` input
# Type: string
# Default: "\n"
recover_files_ignore_separator: ''
# Separator used to split the `recover_files` input
# Type: string
# Default: "\n"
recover_files_separator: ''
# Apply sanitization to output filenames before being set as
# output.
# Type: boolean
# Default: "true"
safe_output: ''
# Split character for output strings.
# Type: string
# Default: " "
separator: ''
# Specify a different commit SHA or branch used for
# comparing changes
# Type: string
sha: ''
# Get changed files for commits whose timestamp is older
# than the given time.
# Type: string
since: ''
# Use the last commit on the remote branch as
# the `base_sha`. Defaults to the last non-merge commit on
# the target branch for pull request events and the
# previous remote commit of the current branch for push
# events.
# Type: boolean
# Default: "false"
since_last_remote_commit: ''
# Skip the initial fetch 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.
# Type: boolean
# Default: "false"
skip_initial_fetch: ''
# GitHub token used to fetch changed files from Github's
# API.
# Type: string
# Default: "${{ github.token }}"
token: ''
# Get changed files for commits whose timestamp is earlier
# than the given time.
# Type: string
until: ''
# Force the use of Github's REST API even when
# a local copy of the repository exists
# Type: boolean
# Default: "false"
use_rest_api: ''
# Write outputs to the `output_dir` defaults to `.github/outputs` folder.
# NOTE: This creates a `.txt` file by default and
# a `.json` file if `json` is set to `true`.
# Type: boolean
# Default: "false"
write_output_files: ''
```
<!-- AUTO-DOC-INPUT:END -->
## Useful Acronyms 🧮
| Acronym | Meaning |
@@ -309,10 +632,12 @@ Support this project with a :star:
| U | Unmerged |
| X | Unknown |
> **Warning**
> \[!IMPORTANT]
>
> * When using `files_yaml*` inputs ensure all outputs are prefixed by the key `test_{...}` e.g. `test_added_files`, `test_any_changed`
> * All keys must start with a letter or \_ and contain only alphanumeric characters, -, or \_.
> * When using `files_yaml*` inputs:
> * it's required to prefix all outputs with the key to ensure that the correct outputs are accessible.
>
> For example, if you use `test` as the key, you can access outputs like `added_files`, `any_changed`, and so on by prefixing them with the key `test_added_files` or `test_any_changed` etc.
## Outputs 📤
@@ -361,66 +686,6 @@ Support this project with a :star:
<!-- AUTO-DOC-OUTPUT:END -->
## Inputs ⚙️
<!-- AUTO-DOC-INPUT:START - Do not remove or modify this section -->
| INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|----------|---------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| <a name="input_api_url"></a>[api\_url](#input_api_url) | string | false | `"${{ github.api_url }}"` | Github API URL. |
| <a name="input_base_sha"></a>[base\_sha](#input_base_sha) | string | false | | Specify a different base commit <br>SHA or branch used for <br>comparing changes |
| <a name="input_diff_relative"></a>[diff\_relative](#input_diff_relative) | string | false | `"true"` | Exclude changes outside the current <br>directory and show path names <br>relative to it. **NOTE:** This <br>requires you to specify the <br>top level directory via the <br>`path` input. |
| <a name="input_dir_names"></a>[dir\_names](#input_dir_names) | string | false | `"false"` | Output unique changed directories instead <br>of filenames. **NOTE:** This returns <br>`.` for changed files located <br>in the current working directory <br>which defaults to `$GITHUB_WORKSPACE`. |
| <a name="input_dir_names_deleted_files_include_only_deleted_dirs"></a>[dir\_names\_deleted\_files\_include\_only\_deleted\_dirs](#input_dir_names_deleted_files_include_only_deleted_dirs) | string | false | `"false"` | Include only directories that have <br>been deleted as opposed to <br>directory names of files that <br>have been deleted in the <br>`deleted_files` output when `dir_names` is <br>set to `true`. |
| <a name="input_dir_names_exclude_current_dir"></a>[dir\_names\_exclude\_current\_dir](#input_dir_names_exclude_current_dir) | string | false | `"false"` | Exclude the current directory represented <br>by `.` from the output <br>when `dir_names` is set to <br>`true`. |
| <a name="input_dir_names_include_files"></a>[dir\_names\_include\_files](#input_dir_names_include_files) | string | false | | File and directory patterns to <br>include in the output when <br>`dir_names` is set to `true`. <br>**NOTE:** This returns only the <br>matching files and also the <br>directory names. |
| <a name="input_dir_names_include_files_separator"></a>[dir\_names\_include\_files\_separator](#input_dir_names_include_files_separator) | string | false | `"\n"` | Separator used to split the <br>`dir_names_include_files` input |
| <a name="input_dir_names_max_depth"></a>[dir\_names\_max\_depth](#input_dir_names_max_depth) | string | false | | Limit the directory output to <br>a maximum depth e.g `test/test1/test2` <br>with max depth of `2` <br>returns `test/test1`. |
| <a name="input_escape_json"></a>[escape\_json](#input_escape_json) | string | false | `"true"` | Escape JSON output. |
| <a name="input_fail_on_initial_diff_error"></a>[fail\_on\_initial\_diff\_error](#input_fail_on_initial_diff_error) | string | false | `"false"` | Fail when the initial diff <br>fails. |
| <a name="input_fail_on_submodule_diff_error"></a>[fail\_on\_submodule\_diff\_error](#input_fail_on_submodule_diff_error) | string | false | `"false"` | Fail when the submodule diff <br>fails. |
| <a name="input_fetch_additional_submodule_history"></a>[fetch\_additional\_submodule\_history](#input_fetch_additional_submodule_history) | string | false | `"false"` | Fetch additional history for submodules. |
| <a name="input_fetch_depth"></a>[fetch\_depth](#input_fetch_depth) | string | false | `"50"` | Depth of additional branch history <br>fetched. **NOTE**: This can be <br>adjusted to resolve errors with <br>insufficient history. |
| <a name="input_files"></a>[files](#input_files) | string | false | | File and directory patterns used <br>to detect changes (Defaults to the entire repo if unset) **NOTE:** <br>Multiline file/directory patterns should not <br>include quotes. |
| <a name="input_files_from_source_file"></a>[files\_from\_source\_file](#input_files_from_source_file) | string | false | | Source file(s) used to populate <br>the `files` input. |
| <a name="input_files_from_source_file_separator"></a>[files\_from\_source\_file\_separator](#input_files_from_source_file_separator) | string | false | `"\n"` | Separator used to split the <br>`files_from_source_file` input |
| <a name="input_files_ignore"></a>[files\_ignore](#input_files_ignore) | string | false | | Ignore changes to these file(s) <br>**NOTE:** Multiline file/directory patterns should <br>not include quotes. |
| <a name="input_files_ignore_from_source_file"></a>[files\_ignore\_from\_source\_file](#input_files_ignore_from_source_file) | string | false | | Source file(s) used to populate <br>the `files_ignore` input |
| <a name="input_files_ignore_from_source_file_separator"></a>[files\_ignore\_from\_source\_file\_separator](#input_files_ignore_from_source_file_separator) | string | false | `"\n"` | Separator used to split the <br>`files_ignore_from_source_file` input |
| <a name="input_files_ignore_separator"></a>[files\_ignore\_separator](#input_files_ignore_separator) | string | false | `"\n"` | Separator used to split the <br>`files_ignore` input |
| <a name="input_files_ignore_yaml"></a>[files\_ignore\_yaml](#input_files_ignore_yaml) | string | false | | YAML used to define a <br>set of file patterns to <br>ignore changes |
| <a name="input_files_ignore_yaml_from_source_file"></a>[files\_ignore\_yaml\_from\_source\_file](#input_files_ignore_yaml_from_source_file) | string | false | | Source file(s) used to populate <br>the `files_ignore_yaml` input. [Example](https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml) |
| <a name="input_files_ignore_yaml_from_source_file_separator"></a>[files\_ignore\_yaml\_from\_source\_file\_separator](#input_files_ignore_yaml_from_source_file_separator) | string | false | `"\n"` | Separator used to split the <br>`files_ignore_yaml_from_source_file` input |
| <a name="input_files_separator"></a>[files\_separator](#input_files_separator) | string | false | `"\n"` | Separator used to split the <br>`files` input |
| <a name="input_files_yaml"></a>[files\_yaml](#input_files_yaml) | string | false | | YAML used to define a <br>set of file patterns to <br>detect changes |
| <a name="input_files_yaml_from_source_file"></a>[files\_yaml\_from\_source\_file](#input_files_yaml_from_source_file) | string | false | | Source file(s) used to populate <br>the `files_yaml` input. [Example](https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml) |
| <a name="input_files_yaml_from_source_file_separator"></a>[files\_yaml\_from\_source\_file\_separator](#input_files_yaml_from_source_file_separator) | string | false | `"\n"` | Separator used to split the <br>`files_yaml_from_source_file` input |
| <a name="input_include_all_old_new_renamed_files"></a>[include\_all\_old\_new\_renamed\_files](#input_include_all_old_new_renamed_files) | string | false | `"false"` | Include `all_old_new_renamed_files` output. Note this <br>can generate a large output <br>See: [#501](https://github.com/tj-actions/changed-files/issues/501). |
| <a name="input_json"></a>[json](#input_json) | string | false | `"false"` | Output list of changed files <br>in a JSON formatted string <br>which can be used for <br>matrix jobs. [Example](https://github.com/tj-actions/changed-files/blob/main/.github/workflows/matrix-test.yml) |
| <a name="input_negation_patterns_first"></a>[negation\_patterns\_first](#input_negation_patterns_first) | string | false | `"false"` | Apply the negation patterns first. <br>**NOTE:** This affects how changed <br>files are matched. |
| <a name="input_old_new_files_separator"></a>[old\_new\_files\_separator](#input_old_new_files_separator) | string | false | `" "` | Split character for old and <br>new renamed filename pairs. |
| <a name="input_old_new_separator"></a>[old\_new\_separator](#input_old_new_separator) | string | false | `","` | Split character for old and <br>new filename pairs. |
| <a name="input_output_dir"></a>[output\_dir](#input_output_dir) | string | false | `".github/outputs"` | Directory to store output files. |
| <a name="input_output_renamed_files_as_deleted_and_added"></a>[output\_renamed\_files\_as\_deleted\_and\_added](#input_output_renamed_files_as_deleted_and_added) | string | false | `"false"` | Output renamed files as deleted <br>and added files. |
| <a name="input_path"></a>[path](#input_path) | string | false | `"."` | Specify a relative path under <br>`$GITHUB_WORKSPACE` to locate the repository. |
| <a name="input_quotepath"></a>[quotepath](#input_quotepath) | string | false | `"true"` | Use non-ascii characters to match <br>files and output the filenames <br>completely verbatim by setting this <br>to `false` |
| <a name="input_recover_deleted_files"></a>[recover\_deleted\_files](#input_recover_deleted_files) | string | false | `"false"` | Recover deleted files. |
| <a name="input_recover_deleted_files_to_destination"></a>[recover\_deleted\_files\_to\_destination](#input_recover_deleted_files_to_destination) | string | false | | Recover deleted files to a <br>new destination directory, defaults to <br>the original location. |
| <a name="input_recover_files"></a>[recover\_files](#input_recover_files) | string | false | | File and directory patterns used <br>to recover deleted files, defaults <br>to the patterns provided via <br>the `files`, `files_from_source_file`, `files_ignore` and <br>`files_ignore_from_source_file` inputs or all deleted <br>files if no patterns are <br>provided. |
| <a name="input_recover_files_ignore"></a>[recover\_files\_ignore](#input_recover_files_ignore) | string | false | | File and directory patterns to <br>ignore when recovering deleted files. |
| <a name="input_recover_files_ignore_separator"></a>[recover\_files\_ignore\_separator](#input_recover_files_ignore_separator) | string | false | `"\n"` | Separator used to split the <br>`recover_files_ignore` input |
| <a name="input_recover_files_separator"></a>[recover\_files\_separator](#input_recover_files_separator) | string | false | `"\n"` | Separator used to split the <br>`recover_files` input |
| <a name="input_separator"></a>[separator](#input_separator) | string | false | `" "` | Split character for output strings |
| <a name="input_sha"></a>[sha](#input_sha) | string | false | | Specify a different commit SHA <br>or branch used for comparing <br>changes |
| <a name="input_since"></a>[since](#input_since) | string | false | | Get changed files for commits <br>whose timestamp is older than <br>the given time. |
| <a name="input_since_last_remote_commit"></a>[since\_last\_remote\_commit](#input_since_last_remote_commit) | string | false | `"false"` | Use the last commit on <br>the remote branch as the <br>`base_sha`. Defaults to the last <br>non-merge commit on the target <br>branch for pull request events <br>and the previous remote commit <br>of the current branch for <br>push events. |
| <a name="input_skip_initial_fetch"></a>[skip\_initial\_fetch](#input_skip_initial_fetch) | string | false | `"false"` | Skip the initial fetch to <br>improve performance for shallow repositories. <br>**NOTE**: This could lead to <br>errors with missing history and <br>the intended use is limited <br>to when you've fetched the <br>history necessary to perform the <br>diff. |
| <a name="input_token"></a>[token](#input_token) | string | false | `"${{ github.token }}"` | Github token used to fetch <br>changed files from Github's API. |
| <a name="input_until"></a>[until](#input_until) | string | false | | Get changed files for commits <br>whose timestamp is earlier than <br>the given time. |
| <a name="input_write_output_files"></a>[write\_output\_files](#input_write_output_files) | string | false | `"false"` | Write outputs to the `output_dir` <br>defaults to `.github/outputs` folder. **NOTE:** <br>This creates a `.txt` file <br>by default and a `.json` <br>file if `json` is set <br>to `true`. |
<!-- AUTO-DOC-INPUT:END -->
## Versioning 🏷️
This GitHub Action follows the principles of [Semantic Versioning](https://semver.org) for versioning releases.
@@ -442,7 +707,30 @@ The format of the version string is as follows:
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
...
```
</details>
<details>
<summary>Get all changed files without escaping unsafe filename characters</summary>
```yaml
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v42
with:
safe_output: false # set to false because we are using an environment variable to store the output and avoid command injection.
- name: List all added files
env:
ADDED_FILES: ${{ steps.changed-files.outputs.added_files }}
run: |
for file in "$ADDED_FILES"; do
echo "$file was added"
done
...
```
@@ -455,7 +743,7 @@ The format of the version string is as follows:
...
- name: Get all changed files and use a comma separator in the output
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
separator: ","
...
@@ -472,11 +760,13 @@ See [inputs](#inputs) for more information.
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
- name: List all added files
env:
ADDED_FILES: ${{ steps.changed-files.outputs.added_files }}
run: |
for file in ${{ steps.changed-files.outputs.added_files }}; do
for file in "$ADDED_FILES"; do
echo "$file was added"
done
...
@@ -493,7 +783,7 @@ See [outputs](#outputs) for a list of all available outputs.
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
- name: Run a step if my-file.txt was modified
if: contains(steps.changed-files.outputs.modified_files, 'my-file.txt')
@@ -514,7 +804,7 @@ See [outputs](#outputs) for a list of all available outputs.
- name: Get changed files and write the outputs to a Txt file
id: changed-files-write-output-files-txt
uses: ./
uses: tj-actions/changed-files@v42
with:
write_output_files: true
@@ -533,7 +823,7 @@ See [outputs](#outputs) for a list of all available outputs.
...
- name: Get changed files and write the outputs to a JSON file
id: changed-files-write-output-files-json
uses: ./
uses: tj-actions/changed-files@v42
with:
json: true
write_output_files: true
@@ -553,7 +843,7 @@ See [outputs](#outputs) for a list of all available outputs.
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
files: |
my-file.txt
@@ -576,7 +866,7 @@ See [inputs](#inputs) for more information.
...
- name: Get changed files
id: changed-files-specific
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
files: |
my-file.txt
@@ -598,15 +888,19 @@ See [inputs](#inputs) for more information.
- name: Run step if any of the listed files above is deleted
if: steps.changed-files-specific.outputs.any_deleted == 'true'
env:
DELETED_FILES: ${{ steps.changed-files-specific.outputs.deleted_files }}
run: |
for file in ${{ steps.changed-files-specific.outputs.deleted_files }}; do
for file in "$DELETED_FILES"; do
echo "$file was deleted"
done
- name: Run step if all listed files above have been deleted
if: steps.changed-files-specific.outputs.only_deleted == 'true'
env:
DELETED_FILES: ${{ steps.changed-files-specific.outputs.deleted_files }}
run: |
for file in ${{ steps.changed-files-specific.outputs.deleted_files }}; do
for file in "$DELETED_FILES"; do
echo "$file was deleted"
done
...
@@ -623,7 +917,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.
id: changed-files-specific-source-file
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
files_from_source_file: test/changed-files-list.txt
...
@@ -640,7 +934,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.
id: changed-files-specific-source-file-and-specify-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
files_from_source_file: |
test/changed-files-list.txt
@@ -661,7 +955,7 @@ See [inputs](#inputs) for more information.
...
- name: Get changed files using a different SHA
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
sha: ${{ github.event.pull_request.head.sha }}
...
@@ -678,7 +972,7 @@ See [inputs](#inputs) for more information.
...
- name: Get changed files using a different base SHA
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
base_sha: ${{ github.event.pull_request.base.sha }}
...
@@ -710,20 +1004,22 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
- name: Get changed files in the .github folder
id: changed-files-specific
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
base_sha: ${{ steps.get-base-sha.outputs.base_sha }}
files: .github/**
- name: Run step if any file(s) in the .github folder change
if: steps.changed-files-specific.outputs.any_changed == 'true'
env:
ALL_CHANGED_FILES: ${{ steps.changed-files-specific.outputs.all_changed_files }}
run: |
echo "One or more files in the .github folder has changed."
echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
echo "List all the files that have changed: $ALL_CHANGED_FILES"
...
```
@@ -744,13 +1040,16 @@ See [inputs](#inputs) for more information.
- name: Run changed-files with defaults in dir1
id: changed-files-for-dir1
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
path: dir1
- name: List all added files in dir1
env:
ADDED_FILES: |-
${{ steps.changed-files-for-dir1.outputs.added_files }}
run: |
for file in ${{ steps.changed-files-for-dir1.outputs.added_files }}; do
for file in "$ADDED_FILES"; do
echo "$file was added"
done
...
@@ -767,13 +1066,13 @@ See [inputs](#inputs) for more information.
...
- name: Run changed-files with quotepath disabled
id: changed-files-quotepath
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
quotepath: "false"
- name: Run changed-files with quotepath disabled for a specified list of file(s)
id: changed-files-quotepath-specific
uses: ./
uses: tj-actions/changed-files@v42
with:
files: test/test-è.txt
quotepath: "false"
@@ -806,7 +1105,7 @@ See [inputs](#inputs) for more information.
- name: Run changed-files with the commit of the last successful test workflow run
id: changed-files-base-sha-push
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
base_sha: ${{ steps.last_successful_commit_push.outputs.base }}
...
@@ -833,7 +1132,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
id: changed-files-base-sha-pull-request
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
base_sha: ${{ steps.last_successful_commit_pull_request.outputs.base }}
...
@@ -859,7 +1158,7 @@ See [inputs](#inputs) for more information.
...
- name: Run changed-files with dir_names
id: changed-files-dir-names
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
dir_names: "true"
...
@@ -876,7 +1175,7 @@ See [inputs](#inputs) for more information.
...
- name: Run changed-files with JSON output
id: changed-files-json
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
json: "true"
...
@@ -893,13 +1192,13 @@ See [inputs](#inputs) for more information.
...
- name: Get changed-files since 2022-08-19
id: changed-files-since
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
since: "2022-08-19"
- name: Get changed-files until 2022-08-20
id: changed-files-until
uses: tj-actions/changed-files@v40
uses: tj-actions/changed-files@v42
with:
until: "2022-08-20"
...
@@ -931,6 +1230,8 @@ See [inputs](#inputs) for more information.
* [qmk\_firmware uses tj-actions/changed-files to run linters](https://github.com/qmk/qmk_firmware/blob/7a737235ffd49c32d2c5561e8fe53fd96baa7f96/.github/workflows/lint.yml#L30)
* [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...
### Scalability Example 📈
@@ -939,7 +1240,7 @@ And many more...
## Important Notice ⚠️
> **Important**
> \[!IMPORTANT]
>
> * Spaces in file names can introduce bugs when using bash loops. See: [#216](https://github.com/tj-actions/changed-files/issues/216)
> However, this action will handle spaces in file names, with a recommendation of using a separator to prevent any hidden issues.
@@ -1026,6 +1327,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<td align="center" valign="top" width="14.28%"><a href="https://github.com/albertoperdomo2"><img src="https://avatars.githubusercontent.com/u/62241095?v=4?s=100" width="100px;" alt="Alberto Perdomo"/><br /><sub><b>Alberto Perdomo</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/commits?author=albertoperdomo2" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://arthurvolant.com"><img src="https://avatars.githubusercontent.com/u/37664438?v=4?s=100" width="100px;" alt="Arthur"/><br /><sub><b>Arthur</b></sub></a><br /><a href="https://github.com/tj-actions/changed-files/issues?q=author%3AV0lantis" title="Bug reports">🐛</a> <a href="https://github.com/tj-actions/changed-files/commits?author=V0lantis" title="Code">💻</a></td>
</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>
</tr>
</tbody>
</table>

32
SECURITY.md Normal file
View File

@@ -0,0 +1,32 @@
# Security Policy
## Proactive Security Measures
To proactively detect and address security vulnerabilities, we utilize several robust tools and processes:
- **Dependency Updates:** We use [Renovate](https://renovatebot.com) and [Dependabot](https://docs.github.com/en/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates) to keep our dependencies updated and promptly patch detected vulnerabilities through automated PRs.
- **[GitHub's Security Features](https://github.com/features/security):** Our repository and dependencies are continuously monitored via GitHub's security features, which include:
- **Code Scanning:** Using GitHub's CodeQL, all pull requests are scanned to identify potential vulnerabilities in our source code.
- **Automated Alerts:** Dependabot identifies vulnerabilities based on the GitHub Advisory Database and opens PRs with patches, while automated [secret scanning](https://docs.github.com/en/enterprise-cloud@latest/code-security/secret-scanning/about-secret-scanning#about-secret-scanning-for-partner-patterns) provides alerts for detected secrets.
- **[GitGuardian Security Checks](https://www.gitguardian.com/):** We employ GitGuardian to ensure security checks are performed on the codebase, enhancing the overall security of our project.
- **Code Analysis and Security Scanning:** With the help of [Codacy Static Code Analysis](https://www.codacy.com/) and [Codacy Security Scan](https://security.codacy.com/), we conduct thorough analyses and scans of our code for potential security risks.
## Reporting Security Vulnerabilities
Despite our best efforts to deliver secure software, we acknowledge the invaluable role of the community in identifying security breaches.
### Private Vulnerability Disclosures
We request all suspected vulnerabilities to be responsibly and privately disclosed by sending an email to [support@tj-actions.online](mailto:support@tj-actions.online).
### Public Vulnerability Disclosures
For publicly disclosed security vulnerabilities, please **IMMEDIATELY** email [support@tj-actions.online](mailto:support@tj-actions.online) with the details for prompt action.
Upon confirmation of a breach, reporters will receive full credit and recognition for their contribution. Please note, that we do not offer monetary compensation for reporting vulnerabilities.
## Communication of Security Breaches
We will utilize the [GitHub Security Advisory](https://github.com/tj-actions/changed-files/security/advisories) to communicate any security breaches. The advisory will be made public once a patch has been released to rectify the issue.
We appreciate your cooperation and contribution to maintaining the security of our software. Remember, a secure community is a strong community.

View File

@@ -4,11 +4,11 @@ author: tj-actions
inputs:
separator:
description: "Split character for output strings"
description: "Split character for output strings."
required: false
default: " "
include_all_old_new_renamed_files:
description: "Include `all_old_new_renamed_files` output. Note this can generate a large output See: [#501](https://github.com/tj-actions/changed-files/issues/501)."
description: "Include `all_old_new_renamed_files` output. Note this can generate a large output See: #501."
required: false
default: "false"
old_new_separator:
@@ -24,11 +24,13 @@ inputs:
required: false
default: ""
files_from_source_file_separator:
description: 'Separator used to split the `files_from_source_file` input'
description: "Separator used to split the `files_from_source_file` input."
default: "\n"
required: false
files:
description: "File and directory patterns used to detect changes (Defaults to the entire repo if unset) **NOTE:** Multiline file/directory patterns should not include quotes."
description: |
File and directory patterns used to detect changes (Defaults to the entire repo if unset).
NOTE: Multiline file/directory patterns should not include quotes.
required: false
default: ""
files_separator:
@@ -40,7 +42,7 @@ inputs:
required: false
default: ""
files_yaml_from_source_file:
description: "Source file(s) used to populate the `files_yaml` input. [Example](https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml)"
description: "Source file(s) used to populate the `files_yaml` input. Example: https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml"
required: false
default: ""
files_yaml_from_source_file_separator:
@@ -52,7 +54,7 @@ inputs:
required: false
default: ""
files_ignore_yaml_from_source_file:
description: "Source file(s) used to populate the `files_ignore_yaml` input. [Example](https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml)"
description: "Source file(s) used to populate the `files_ignore_yaml` input. Example: https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml"
required: false
default: ""
files_ignore_yaml_from_source_file_separator:
@@ -60,7 +62,7 @@ inputs:
default: "\n"
required: false
files_ignore:
description: "Ignore changes to these file(s) **NOTE:** Multiline file/directory patterns should not include quotes."
description: "Ignore changes to these file(s). NOTE: Multiline file/directory patterns should not include quotes."
required: false
default: ""
files_ignore_separator:
@@ -94,16 +96,16 @@ inputs:
required: false
default: "."
quotepath:
description: "Use non-ascii characters to match files and output the filenames completely verbatim by setting this to `false`"
description: "Use non-ASCII characters to match files and output the filenames completely verbatim by setting this to `false`"
default: "true"
required: false
diff_relative:
description: "Exclude changes outside the current directory and show path names relative to it. **NOTE:** This requires you to specify the top level directory via the `path` input."
description: "Exclude changes outside the current directory and show path names relative to it. NOTE: This requires you to specify the top-level directory via the `path` input."
required: false
default: "true"
dir_names:
default: "false"
description: "Output unique changed directories instead of filenames. **NOTE:** This returns `.` for changed files located in the current working directory which defaults to `$GITHUB_WORKSPACE`."
description: "Output unique changed directories instead of filenames. NOTE: This returns `.` for changed files located in the current working directory which defaults to `$GITHUB_WORKSPACE`."
required: false
dir_names_max_depth:
description: "Limit the directory output to a maximum depth e.g `test/test1/test2` with max depth of `2` returns `test/test1`."
@@ -113,7 +115,7 @@ inputs:
required: false
default: "false"
dir_names_include_files:
description: "File and directory patterns to include in the output when `dir_names` is set to `true`. **NOTE:** This returns only the matching files and also the directory names."
description: "File and directory patterns to include in the output when `dir_names` is set to `true`. NOTE: This returns only the matching files and also the directory names."
required: false
default: ""
dir_names_include_files_separator:
@@ -125,19 +127,25 @@ inputs:
required: false
default: "false"
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-test.yml"
required: false
default: "false"
escape_json:
description: "Escape JSON output."
required: false
default: "true"
safe_output:
description: "Apply sanitization to output filenames before being set as output."
required: false
default: "true"
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
default: "50"
skip_initial_fetch:
description: "Skip the initial fetch 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."
description: |
Skip the initial fetch 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.
required: false
default: "false"
fetch_additional_submodule_history:
@@ -149,7 +157,7 @@ inputs:
required: false
default: "false"
write_output_files:
description: "Write outputs to the `output_dir` defaults to `.github/outputs` folder. **NOTE:** This creates a `.txt` file by default and a `.json` file if `json` is set to `true`."
description: "Write outputs to the `output_dir` defaults to `.github/outputs` folder. NOTE: This creates a `.txt` file by default and a `.json` file if `json` is set to `true`."
required: false
default: "false"
output_dir:
@@ -169,7 +177,10 @@ inputs:
required: false
default: ""
recover_files:
description: "File and directory patterns used to recover deleted files, defaults to the patterns provided via the `files`, `files_from_source_file`, `files_ignore` and `files_ignore_from_source_file` inputs or all deleted files if no patterns are provided."
description: |
File and directory patterns used to recover deleted files,
defaults to the patterns provided via the `files`, `files_from_source_file`, `files_ignore` and `files_ignore_from_source_file` inputs
or all deleted files if no patterns are provided.
required: false
default: ""
recover_files_separator:
@@ -185,13 +196,17 @@ inputs:
default: "\n"
required: false
token:
description: "Github token used to fetch changed files from Github's API."
description: "GitHub token used to fetch changed files from Github's API."
required: false
default: ${{ github.token }}
api_url:
description: "Github API URL."
required: false
default: ${{ github.api_url }}
use_rest_api:
description: "Force the use of Github's REST API even when a local copy of the repository exists"
required: false
default: "false"
fail_on_initial_diff_error:
description: "Fail when the initial diff fails."
required: false
@@ -201,7 +216,7 @@ inputs:
required: false
default: "false"
negation_patterns_first:
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
default: "false"

4485
dist/index.js generated vendored

File diff suppressed because it is too large Load Diff

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

25
dist/licenses.txt generated vendored
View File

@@ -564,31 +564,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
is-plain-object
MIT
The MIT License (MIT)
Copyright (c) 2014-2017, Jon Schlinkert.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
lodash
MIT
Copyright OpenJS Foundation and other contributors <https://openjsf.org/>

View File

@@ -10,4 +10,4 @@ module.exports = {
setupFiles: [
"<rootDir>/jest/setupEnv.cjs"
]
}
};

View File

@@ -1,6 +1,6 @@
{
"name": "@tj-actions/changed-files",
"version": "40.0.2",
"version": "42.0.1",
"description": "Github action to retrieve all (added, copied, modified, deleted, renamed, type changed, unmerged, unknown) files and directories.",
"main": "lib/main.js",
"publishConfig": {
@@ -8,10 +8,10 @@
},
"scripts": {
"build": "tsc",
"format": "prettier --write **/*.ts",
"format-check": "prettier --check **/*.ts",
"lint": "eslint **/*.ts --max-warnings 0",
"lint:fix": "eslint --fix src/**/*.ts",
"format": "prettier --write src/*.ts src/**/*.ts",
"format-check": "prettier --check src/*.ts src/**/*.ts",
"lint": "eslint src/*.ts src/**/*.ts --max-warnings 0",
"lint:fix": "eslint --fix src/*.ts src/**/*.ts",
"package": "ncc build lib/main.js --source-map --license licenses.txt",
"test": "jest --coverage",
"all": "yarn build && yarn format && yarn lint && yarn package && yarn test"

View File

@@ -1,5 +0,0 @@
describe('main test', () => {
it('adds two numbers', async () => {
expect(1 + 1).toEqual(2)
})
})

View File

@@ -1,9 +1,12 @@
import * as core from '@actions/core'
import {ChangeTypeEnum} from '../changedFiles'
import {Inputs} from '../inputs'
import {
getDirname,
getDirnameMaxDepth,
getFilteredChangedFiles,
normalizeSeparators
normalizeSeparators,
warnUnsupportedRESTAPIInputs
} from '../utils'
const originalPlatform = process.platform
@@ -575,4 +578,77 @@ describe('utils test', () => {
expect(filteredFiles[ChangeTypeEnum.Modified]).toEqual([])
})
})
describe('warnUnsupportedRESTAPIInputs', () => {
// Warns about unsupported inputs when using the REST API.
it('should warn about unsupported inputs when all inputs are supported', async () => {
const inputs: Inputs = {
files: '',
filesSeparator: '\n',
filesFromSourceFile: '',
filesFromSourceFileSeparator: '\n',
filesYaml: '',
filesYamlFromSourceFile: '',
filesYamlFromSourceFileSeparator: '\n',
filesIgnore: '',
filesIgnoreSeparator: '\n',
filesIgnoreFromSourceFile: '',
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
}
const coreWarningSpy = jest.spyOn(core, 'warning')
await warnUnsupportedRESTAPIInputs({
inputs
})
expect(coreWarningSpy).toHaveBeenCalledWith(
'Input "sha" is not supported when using GitHub\'s REST API to get changed files'
)
expect(coreWarningSpy).toHaveBeenCalledTimes(1)
})
})
})

View File

@@ -166,7 +166,7 @@ export const getRenamedFiles = async ({
}))
) {
let message = `Unable to use three dot diff for: ${submodulePath} submodule. Falling back to two dot diff. You can set 'fetch_additional_submodule_history: true' to fetch additional submodule history in order to use three dot diff`
if (inputs.fetchSubmoduleHistory) {
if (inputs.fetchAdditionalSubmoduleHistory) {
message = `To fetch additional submodule history for: ${submodulePath} you can increase history depth using 'fetch_depth' input`
}
core.info(message)
@@ -221,7 +221,7 @@ export const getAllDiffFiles = async ({
diffResult,
submodulePaths,
outputRenamedFilesAsDeletedAndAdded,
fetchSubmoduleHistory,
fetchAdditionalSubmoduleHistory,
failOnInitialDiffError,
failOnSubmoduleDiffError
}: {
@@ -230,7 +230,7 @@ export const getAllDiffFiles = async ({
diffResult: DiffResult
submodulePaths: string[]
outputRenamedFilesAsDeletedAndAdded: boolean
fetchSubmoduleHistory: boolean
fetchAdditionalSubmoduleHistory: boolean
failOnInitialDiffError: boolean
failOnSubmoduleDiffError: boolean
}): Promise<ChangedFiles> => {
@@ -270,7 +270,7 @@ export const getAllDiffFiles = async ({
}))
) {
let message = `Set 'fetch_additional_submodule_history: true' to fetch additional submodule history for: ${submodulePath}`
if (fetchSubmoduleHistory) {
if (fetchAdditionalSubmoduleHistory) {
message = `To fetch additional submodule history for: ${submodulePath} you can increase history depth using 'fetch_depth' input`
}
core.warning(message)

View File

@@ -43,7 +43,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
key: getOutputKey('added_files_count', outputPrefix),
@@ -64,7 +65,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
@@ -86,7 +88,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
@@ -108,7 +111,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
@@ -130,7 +134,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
@@ -152,7 +157,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
@@ -174,7 +180,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
@@ -199,7 +206,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
@@ -226,7 +234,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
@@ -314,7 +323,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({
@@ -419,7 +429,8 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
await setOutput({

View File

@@ -5,6 +5,7 @@ import {Env} from './env'
import {Inputs} from './inputs'
import {
canDiffCommits,
cleanShaInput,
getCurrentBranchName,
getHeadSha,
getParentSha,
@@ -23,7 +24,11 @@ const getCurrentSHA = async ({
inputs: Inputs
workingDirectory: string
}): Promise<string> => {
let currentSha = inputs.sha
let currentSha = await cleanShaInput({
sha: inputs.sha,
cwd: workingDirectory,
token: inputs.token
})
core.debug('Getting current SHA...')
if (inputs.until) {
@@ -147,7 +152,7 @@ export const getSHAForNonPullRequestEvent = async (
})
}
} else {
if (hasSubmodule && inputs.fetchSubmoduleHistory) {
if (hasSubmodule && inputs.fetchAdditionalSubmoduleHistory) {
await gitFetchSubmodules({
cwd: workingDirectory,
args: [
@@ -162,7 +167,11 @@ export const getSHAForNonPullRequestEvent = async (
}
const currentSha = await getCurrentSHA({inputs, workingDirectory})
let previousSha = inputs.baseSha
let previousSha = await cleanShaInput({
sha: inputs.baseSha,
cwd: workingDirectory,
token: inputs.token
})
const diff = '..'
const currentBranchName = await getCurrentBranchName({cwd: workingDirectory})
@@ -175,7 +184,7 @@ export const getSHAForNonPullRequestEvent = async (
currentBranch = currentBranchName
}
if (previousSha && currentSha && currentBranch && targetBranch) {
if (inputs.baseSha && inputs.sha && currentBranch && targetBranch) {
if (previousSha === currentSha) {
core.error(
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
@@ -186,7 +195,6 @@ export const getSHAForNonPullRequestEvent = async (
throw new Error('Similar commit hashes detected.')
}
await verifyCommitSha({sha: previousSha, cwd: workingDirectory})
core.debug(`Previous SHA: ${previousSha}`)
return {
@@ -198,7 +206,7 @@ export const getSHAForNonPullRequestEvent = async (
}
}
if (!previousSha) {
if (!previousSha || previousSha === currentSha) {
core.debug('Getting previous SHA...')
if (inputs.since) {
core.debug(`Getting base SHA for '${inputs.since}'...`)
@@ -374,7 +382,7 @@ export const getSHAForPullRequestEvent = async (
}
}
} else {
if (hasSubmodule && inputs.fetchSubmoduleHistory) {
if (hasSubmodule && inputs.fetchAdditionalSubmoduleHistory) {
await gitFetchSubmodules({
cwd: workingDirectory,
args: [
@@ -390,10 +398,14 @@ export const getSHAForPullRequestEvent = async (
}
const currentSha = await getCurrentSHA({inputs, workingDirectory})
let previousSha = inputs.baseSha
let previousSha = await cleanShaInput({
sha: inputs.baseSha,
cwd: workingDirectory,
token: inputs.token
})
let diff = '...'
if (previousSha && currentSha && currentBranch && targetBranch) {
if (inputs.baseSha && inputs.sha && currentBranch && targetBranch) {
if (previousSha === currentSha) {
core.error(
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
@@ -404,7 +416,6 @@ export const getSHAForPullRequestEvent = async (
throw new Error('Similar commit hashes detected.')
}
await verifyCommitSha({sha: previousSha, cwd: workingDirectory})
core.debug(`Previous SHA: ${previousSha}`)
return {
@@ -423,7 +434,7 @@ export const getSHAForPullRequestEvent = async (
diff = '..'
}
if (!previousSha) {
if (!previousSha || previousSha === currentSha) {
if (inputs.sinceLastRemoteCommit) {
previousSha = github.context.payload.before

24
src/constant.ts Normal file
View File

@@ -0,0 +1,24 @@
import {Inputs} from './inputs'
export const DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS: Partial<Inputs> = {
sha: '',
baseSha: '',
since: '',
until: '',
path: '.',
quotepath: true,
diffRelative: true,
sinceLastRemoteCommit: false,
recoverDeletedFiles: false,
recoverDeletedFilesToDestination: '',
recoverFiles: '',
recoverFilesSeparator: '\n',
recoverFilesIgnore: '',
recoverFilesIgnoreSeparator: '\n',
includeAllOldNewRenamedFiles: false,
oldNewSeparator: ',',
oldNewFilesSeparator: ' ',
skipInitialFetch: false,
fetchAdditionalSubmoduleHistory: false,
dirNamesDeletedFilesIncludeOnlyDeletedDirs: false
}

View File

@@ -6,7 +6,7 @@ export type Env = {
GITHUB_WORKSPACE: string
}
export const getEnv = async (): Promise<Env> => {
core.debug(`Process Env: ${JSON.stringify(process.env, null, 2)}`)
core.debug(`Env: ${JSON.stringify(process.env, null, 2)}`)
return {
GITHUB_REF_NAME: process.env.GITHUB_REF_NAME || '',

View File

@@ -24,7 +24,7 @@ export type Inputs = {
since: string
until: string
path: string
quotePath: boolean
quotepath: boolean
diffRelative: boolean
dirNames: boolean
dirNamesMaxDepth?: number
@@ -34,8 +34,9 @@ export type Inputs = {
dirNamesDeletedFilesIncludeOnlyDeletedDirs: boolean
json: boolean
escapeJson: boolean
safeOutput: boolean
fetchDepth?: number
fetchSubmoduleHistory: boolean
fetchAdditionalSubmoduleHistory: boolean
sinceLastRemoteCommit: boolean
writeOutputFiles: boolean
outputDir: string
@@ -52,6 +53,7 @@ export type Inputs = {
failOnInitialDiffError: boolean
failOnSubmoduleDiffError: boolean
negationPatternsFirst: boolean
useRestApi: boolean
}
export const getInputs = (): Inputs => {
@@ -130,7 +132,7 @@ export const getInputs = (): Inputs => {
const since = core.getInput('since', {required: false})
const until = core.getInput('until', {required: false})
const path = core.getInput('path', {required: false})
const quotePath = core.getBooleanInput('quotepath', {required: false})
const quotepath = core.getBooleanInput('quotepath', {required: false})
const diffRelative = core.getBooleanInput('diff_relative', {required: false})
const dirNames = core.getBooleanInput('dir_names', {required: false})
const dirNamesMaxDepth = core.getInput('dir_names_max_depth', {
@@ -154,6 +156,7 @@ export const getInputs = (): Inputs => {
)
const json = core.getBooleanInput('json', {required: false})
const escapeJson = core.getBooleanInput('escape_json', {required: false})
const safeOutput = core.getBooleanInput('safe_output', {required: false})
const fetchDepth = core.getInput('fetch_depth', {required: false})
const sinceLastRemoteCommit = core.getBooleanInput(
'since_last_remote_commit',
@@ -194,7 +197,7 @@ export const getInputs = (): Inputs => {
const skipInitialFetch = core.getBooleanInput('skip_initial_fetch', {
required: false
})
const fetchSubmoduleHistory = core.getBooleanInput(
const fetchAdditionalSubmoduleHistory = core.getBooleanInput(
'fetch_additional_submodule_history',
{
required: false
@@ -226,6 +229,10 @@ export const getInputs = (): Inputs => {
}
)
const useRestApi = core.getBooleanInput('use_rest_api', {
required: false
})
const inputs: Inputs = {
files,
filesSeparator,
@@ -250,7 +257,7 @@ export const getInputs = (): Inputs => {
since,
until,
path,
quotePath,
quotepath,
diffRelative,
sinceLastRemoteCommit,
recoverDeletedFiles,
@@ -263,7 +270,7 @@ export const getInputs = (): Inputs => {
oldNewSeparator,
oldNewFilesSeparator,
skipInitialFetch,
fetchSubmoduleHistory,
fetchAdditionalSubmoduleHistory,
dirNamesDeletedFilesIncludeOnlyDeletedDirs,
// End Not Supported via REST API
dirNames,
@@ -272,12 +279,14 @@ export const getInputs = (): Inputs => {
dirNamesIncludeFilesSeparator,
json,
escapeJson,
safeOutput,
writeOutputFiles,
outputDir,
outputRenamedFilesAsDeletedAndAdded,
token,
apiUrl,
negationPatternsFirst
negationPatternsFirst,
useRestApi
}
if (fetchDepth) {

View File

@@ -26,7 +26,8 @@ import {
setOutput,
submoduleExists,
updateGitGlobalConfig,
verifyMinimumGitVersion
verifyMinimumGitVersion,
warnUnsupportedRESTAPIInputs
} from './utils'
const getChangedFilesFromLocalGitHistory = async ({
@@ -44,15 +45,15 @@ const getChangedFilesFromLocalGitHistory = async ({
}): Promise<void> => {
await verifyMinimumGitVersion()
let quotePathValue = 'on'
let quotepathValue = 'on'
if (!inputs.quotePath) {
quotePathValue = 'off'
if (!inputs.quotepath) {
quotepathValue = 'off'
}
await updateGitGlobalConfig({
name: 'core.quotepath',
value: quotePathValue
value: quotepathValue
})
if (inputs.diffRelative) {
@@ -123,7 +124,7 @@ const getChangedFilesFromLocalGitHistory = async ({
diffResult,
submodulePaths,
outputRenamedFilesAsDeletedAndAdded,
fetchSubmoduleHistory: inputs.fetchSubmoduleHistory,
fetchAdditionalSubmoduleHistory: inputs.fetchAdditionalSubmoduleHistory,
failOnInitialDiffError: inputs.failOnInitialDiffError,
failOnSubmoduleDiffError: inputs.failOnSubmoduleDiffError
})
@@ -144,7 +145,9 @@ const getChangedFilesFromLocalGitHistory = async ({
workingDirectory,
deletedFiles: allDiffFiles[ChangeTypeEnum.Deleted],
recoverPatterns,
sha: diffResult.previousSha
diffResult,
hasSubmodule,
submodulePaths
})
}
@@ -171,7 +174,8 @@ const getChangedFilesFromLocalGitHistory = async ({
value: allOldNewRenamedFiles.paths,
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json
json: inputs.json,
safeOutput: inputs.safeOutput
})
await setOutput({
key: 'all_old_new_renamed_files_count',
@@ -221,7 +225,7 @@ export async function run(): Promise<void> {
const workingDirectory = path.resolve(
env.GITHUB_WORKSPACE || process.cwd(),
inputs.path
inputs.useRestApi ? '.' : inputs.path
)
core.debug(`Working directory: ${workingDirectory}`)
@@ -240,35 +244,19 @@ export async function run(): Promise<void> {
})
core.debug(`Yaml file patterns: ${JSON.stringify(yamlFilePatterns)}`)
if (inputs.useRestApi && !github.context.payload.pull_request?.number) {
throw new Error(
"Only pull_request* events are supported when using GitHub's REST API."
)
}
if (
inputs.token &&
github.context.payload.pull_request?.number &&
!hasGitDirectory
(!hasGitDirectory || inputs.useRestApi)
) {
core.info("Using GitHub's REST API to get changed files")
const unsupportedInputs: (keyof Inputs)[] = [
'sha',
'baseSha',
'since',
'until',
'sinceLastRemoteCommit',
'recoverDeletedFiles',
'recoverDeletedFilesToDestination',
'recoverFiles',
'recoverFilesIgnore',
'includeAllOldNewRenamedFiles',
'skipInitialFetch',
'fetchSubmoduleHistory',
'dirNamesDeletedFilesIncludeOnlyDeletedDirs'
]
for (const input of unsupportedInputs) {
if (inputs[input]) {
core.warning(
`Input "${input}" is not supported when using GitHub's REST API to get changed files`
)
}
}
await warnUnsupportedRESTAPIInputs({inputs})
await getChangedFilesFromRESTAPI({
inputs,
filePatterns,
@@ -276,10 +264,9 @@ export async function run(): Promise<void> {
})
} else {
if (!hasGitDirectory) {
core.setFailed(
"Can't find local .git directory. Please run actions/checkout before this action"
throw new Error(
`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}".`
)
return
}
core.info('Using local .git directory')
@@ -298,5 +285,6 @@ if (!process.env.TESTING) {
// eslint-disable-next-line github/no-then
run().catch(e => {
core.setFailed(e.message || e)
process.exit(1)
})
}

View File

@@ -1,14 +1,16 @@
/*global AsyncIterableIterator*/
import * as core from '@actions/core'
import * as exec from '@actions/exec'
import * as github from '@actions/github'
import {createReadStream, promises as fs} from 'fs'
import {readFile} from 'fs/promises'
import {flattenDeep} from 'lodash'
import {flattenDeep, snakeCase} from 'lodash'
import mm from 'micromatch'
import * as path from 'path'
import {createInterface} from 'readline'
import {parseDocument} from 'yaml'
import {ChangedFiles, ChangeTypeEnum} from './changedFiles'
import {DiffResult} from './commitSha'
import {DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS} from './constant'
import {Inputs} from './inputs'
const MINIMUM_GIT_VERSION = '2.18.0'
@@ -169,15 +171,16 @@ async function* lineOfFileGenerator({
input: fileStream,
crlfDelay: Infinity
})
for await (const line of rl) {
for await (let line of rl) {
if (!line.startsWith('#') && line !== '') {
if (excludedFiles) {
if (line.startsWith('!')) {
yield line
} else {
yield `!${line}`
line = line.startsWith('!') ? line : `!${line}`
if (line.endsWith(path.sep)) {
line = `${line}**`
}
yield line
} else {
line = line.endsWith(path.sep) ? `${line}**` : line
yield line
}
}
@@ -283,6 +286,7 @@ export const submoduleExists = async ({
* Fetches the git repository
* @param args - arguments for fetch command
* @param cwd - working directory
* @returns exit code
*/
export const gitFetch = async ({
args,
@@ -331,6 +335,7 @@ export const gitFetchSubmodules = async ({
/**
* Retrieves all the submodule paths
* @param cwd - working directory
* @returns submodule paths
*/
export const getSubmodulePath = async ({
cwd
@@ -365,6 +370,7 @@ export const getSubmodulePath = async ({
* @param parentSha2 - parent commit sha
* @param submodulePath - path of submodule
* @param diff - diff type between parent commits (`..` or `...`)
* @returns commit sha of submodule
*/
export const gitSubmoduleDiffSHA = async ({
cwd,
@@ -674,6 +680,12 @@ export const isInsideWorkTree = async ({
}
)
if (stdout.trim() !== 'true') {
core.debug(
`The current working directory is not inside a git repository: ${cwd}`
)
}
return stdout.trim() === 'true'
}
@@ -771,6 +783,56 @@ export const verifyCommitSha = async ({
return exitCode
}
/**
* Clean the sha from the input which could be a branch name or a commit sha.
*
* If the input is a valid commit sha, return it as is.
*
* If the input is a branch name, get the HEAD sha of that branch and return it.
*
* @param sha The input string, which could be a branch name or a commit sha.
* @param cwd The working directory.
* @param token The GitHub token.
* @returns The cleaned SHA string.
*/
export const cleanShaInput = async ({
sha,
cwd,
token
}: {
sha: string
cwd: string
token: string
}): Promise<string> => {
// Check if the input is a valid commit sha
if (!sha) {
return sha
}
// Check if the input is a valid commit sha
const {stdout, exitCode} = await exec.getExecOutput(
'git',
['rev-parse', '--verify', `${sha}^{commit}`],
{
cwd,
ignoreReturnCode: true,
silent: !core.isDebug()
}
)
if (exitCode !== 0) {
const octokit = github.getOctokit(token)
// If it's not a valid commit sha, assume it's a branch name and get the HEAD sha
const {data: refData} = await octokit.rest.git.getRef({
owner: github.context.repo.owner,
repo: github.context.repo.repo,
ref: `heads/${sha}`
})
return refData.object.sha
}
return stdout.trim()
}
export const getPreviousGitTag = async ({
cwd
}: {
@@ -943,6 +1005,7 @@ export const getFilePatterns = async ({
if (inputs.files) {
const filesPatterns = inputs.files
.split(inputs.filesSeparator)
.map(p => (p.endsWith(path.sep) ? `${p}**` : p))
.filter(Boolean)
cleanedFilePatterns.push(...filesPatterns)
@@ -974,8 +1037,9 @@ export const getFilePatterns = async ({
.split(inputs.filesIgnoreSeparator)
.filter(Boolean)
.map(p => {
if (!p.startsWith('!')) {
p = `!${p}`
p = p.startsWith('!') ? p : `!${p}`
if (p.endsWith(path.sep)) {
p = `${p}**`
}
return p
})
@@ -1076,7 +1140,7 @@ const getYamlFilePatternsFromContents = async ({
throw new Error(`File does not exist: ${filePath}`)
}
source = await readFile(filePath, 'utf8')
source = await fs.readFile(filePath, 'utf8')
} else {
source = content
}
@@ -1272,7 +1336,8 @@ export const setArrayOutput = async ({
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
shouldEscape: inputs.escapeJson
shouldEscape: inputs.escapeJson,
safeOutput: inputs.safeOutput
})
}
@@ -1282,7 +1347,8 @@ export const setOutput = async ({
writeOutputFiles,
outputDir,
json = false,
shouldEscape = false
shouldEscape = false,
safeOutput = false
}: {
key: string
value: string | string[] | boolean
@@ -1290,6 +1356,7 @@ export const setOutput = async ({
outputDir: string
json?: boolean
shouldEscape?: boolean
safeOutput?: boolean
}): Promise<void> => {
let cleanedValue
if (json) {
@@ -1298,6 +1365,11 @@ export const setOutput = async ({
cleanedValue = value.toString().trim()
}
// if safeOutput is true, escape special characters for bash shell
if (safeOutput) {
cleanedValue = cleanedValue.replace(/[^\x20-\x7E]|[:*?<>|;`$()&!]/g, '\\$&')
}
core.setOutput(key, cleanedValue)
if (writeOutputFiles) {
@@ -1344,13 +1416,17 @@ export const recoverDeletedFiles = async ({
workingDirectory,
deletedFiles,
recoverPatterns,
sha
diffResult,
hasSubmodule,
submodulePaths
}: {
inputs: Inputs
workingDirectory: string
deletedFiles: string[]
recoverPatterns: string[]
sha: string
diffResult: DiffResult
hasSubmodule: boolean
submodulePaths: string[]
}): Promise<void> => {
let recoverableDeletedFiles = deletedFiles
core.debug(`recoverable deleted files: ${recoverableDeletedFiles}`)
@@ -1375,19 +1451,64 @@ export const recoverDeletedFiles = async ({
)
}
const deletedFileContents = await getDeletedFileContents({
cwd: workingDirectory,
filePath: deletedFile,
sha
})
let deletedFileContents: string
const submodulePath = submodulePaths.find(p => deletedFile.startsWith(p))
if (hasSubmodule && submodulePath) {
const submoduleShaResult = await gitSubmoduleDiffSHA({
cwd: workingDirectory,
parentSha1: diffResult.previousSha,
parentSha2: diffResult.currentSha,
submodulePath,
diff: diffResult.diff
})
if (submoduleShaResult.previousSha) {
core.debug(
`recovering deleted file "${deletedFile}" from submodule ${submodulePath} from ${submoduleShaResult.previousSha}`
)
deletedFileContents = await getDeletedFileContents({
cwd: path.join(workingDirectory, submodulePath),
// E.g. submodulePath = test/demo and deletedFile = test/demo/.github/README.md => filePath => .github/README.md
filePath: deletedFile.replace(submodulePath, '').substring(1),
sha: submoduleShaResult.previousSha
})
} else {
core.warning(
`Unable to recover deleted file "${deletedFile}" from submodule ${submodulePath} from ${submoduleShaResult.previousSha}`
)
continue
}
} else {
core.debug(
`recovering deleted file "${deletedFile}" from ${diffResult.previousSha}`
)
deletedFileContents = await getDeletedFileContents({
cwd: workingDirectory,
filePath: deletedFile,
sha: diffResult.previousSha
})
}
core.debug(`recovered deleted file "${deletedFile}"`)
if (!(await exists(path.dirname(target)))) {
core.debug(`creating directory "${path.dirname(target)}"`)
await fs.mkdir(path.dirname(target), {recursive: true})
}
core.debug(`writing file "${target}"`)
await fs.writeFile(target, deletedFileContents)
core.debug(`wrote file "${target}"`)
}
}
/**
* Determines whether the specified working directory has a local Git directory.
*
* @param workingDirectory - The path of the working directory.
* @returns A boolean value indicating whether the working directory has a local Git directory.
*/
export const hasLocalGitDirectory = async ({
workingDirectory
}: {
@@ -1397,3 +1518,33 @@ export const hasLocalGitDirectory = async ({
cwd: workingDirectory
})
}
/**
* Warns about unsupported inputs when using the REST API.
*
* @param inputs - The inputs object.
*/
export const warnUnsupportedRESTAPIInputs = async ({
inputs
}: {
inputs: Inputs
}): Promise<void> => {
for (const key of Object.keys(DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS)) {
const defaultValue = Object.hasOwnProperty.call(
DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS,
key
)
? DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS[
key as keyof Inputs
]?.toString()
: ''
if (defaultValue !== inputs[key as keyof Inputs]?.toString()) {
core.warning(
`Input "${snakeCase(
key
)}" is not supported when using GitHub's REST API to get changed files`
)
}
}
}

1102
yarn.lock

File diff suppressed because it is too large Load Diff