Compare commits

..

67 Commits
v47 ... v47.0.4

Author SHA1 Message Date
Tonye Jack
7dee1b0c15 update: release-tagger action to version 6.0.6 (#2801) 2026-02-17 06:38:30 -07:00
Tonye Jack
28b28f6e4e update: release-tagger action to version 6.0.0 (#2800) 2026-02-17 04:47:29 -07:00
dependabot[bot]
875e6e5df8 chore(deps): bump github/codeql-action from 4.31.10 to 4.32.2 (#2790)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 22:42:38 +00:00
dependabot[bot]
8cba46e29c chore(deps): bump actions/setup-node from 6.1.0 to 6.2.0 (#2766)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 13:44:36 -07:00
dependabot[bot]
925972f627 chore(deps-dev): bump @types/node from 25.0.0 to 25.2.2 (#2793)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 13:42:32 -07:00
dependabot[bot]
a98754bb6a chore(deps): bump @stdlib/utils-convert-path from 0.2.2 to 0.2.3 (#2795)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 13:42:20 -07:00
dependabot[bot]
9c13e73478 chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 (#2777)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 13:41:55 -07:00
Tonye Jack
caee9d94ce fix: Update test.yml (#2781) 2026-01-27 22:14:10 +00:00
dependabot[bot]
16d791cc10 chore(deps-dev): bump @types/lodash from 4.17.21 to 4.17.23 (#2759)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-27 14:16:33 -07:00
dependabot[bot]
8e056dec7d chore(deps-dev): bump eslint-plugin-jest from 29.11.0 to 29.12.1 (#2756)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-27 14:16:02 -07:00
github-actions[bot]
7d5bbf4e8d Updated README.md (#2771)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-20 03:50:29 -07:00
dependabot[bot]
078e2bcd1e chore(deps): bump github/codeql-action from 4.31.7 to 4.31.10 (#2761)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-19 23:51:43 -07:00
Tonye Jack
8c4da285a3 feat: add support for excluding symlinks and fix bug with commit not found (#2770) 2026-01-20 06:51:22 +00:00
Tonye Jack
2f2f6cf099 chore: update matrix-example.yml (#2752) 2026-01-20 06:04:02 +00:00
Tonye Jack
8262acc559 chore: update dist (#2769) 2026-01-20 05:29:17 +00:00
github-actions[bot]
b3bb1f8753 Updated README.md (#2768)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-19 22:14:54 -07:00
Tonye Jack
c6a5847dac Update README.md 2026-01-19 16:21:48 -07:00
dependabot[bot]
daf9d2d497 chore(deps): bump @actions/core from 2.0.0 to 2.0.2 (#2757)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-14 19:21:24 -07:00
dependabot[bot]
3c4bc6fa0c chore(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 (#2743)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-28 14:57:29 -07:00
dependabot[bot]
cd7fbbcebb chore(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 (#2741)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-28 14:57:04 -07:00
dependabot[bot]
60a1a28396 chore(deps-dev): bump eslint-plugin-jest from 29.2.1 to 29.11.0 (#2751)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-28 14:48:19 -07:00
dependabot[bot]
e002140703 chore(deps): bump actions/checkout from 6.0.0 to 6.0.1 (#2729)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:53:39 -07:00
dependabot[bot]
01ddfae411 chore(deps): bump @actions/core from 1.11.1 to 2.0.0 (#2736)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:53:21 -07:00
dependabot[bot]
a364493bbb chore(deps-dev): bump prettier from 3.7.1 to 3.7.4 (#2731)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:51:15 -07:00
dependabot[bot]
45a2aae7ee chore(deps): bump actions/setup-node from 6.0.0 to 6.1.0 (#2730)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:51:00 -07:00
dependabot[bot]
a4f6de32d5 chore(deps): bump github/codeql-action from 4.31.5 to 4.31.7 (#2732)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:50:41 -07:00
dependabot[bot]
95fbe9b431 chore(deps): bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 (#2735)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:50:28 -07:00
dependabot[bot]
b3b97244a9 chore(deps-dev): bump ts-jest from 29.4.5 to 29.4.6 (#2727)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:49:58 -07:00
dependabot[bot]
503bc3e7d7 chore(deps): bump @actions/exec from 1.1.1 to 2.0.0 (#2737)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:49:37 -07:00
dependabot[bot]
3e9e5a2aa2 chore(deps-dev): bump @types/node from 24.10.1 to 25.0.0 (#2738)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:49:24 -07:00
dependabot[bot]
2b6c719845 chore(deps): bump yaml from 2.8.1 to 2.8.2 (#2724)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 04:48:56 -07:00
github-actions[bot]
043285ef6c Updated README.md (#2723)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-11 04:48:26 -07:00
dependabot[bot]
abdd2f68ea chore(deps): bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 (#2717)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-28 11:06:16 -07:00
dependabot[bot]
1d08ab228c chore(deps-dev): bump @types/lodash from 4.17.20 to 4.17.21 (#2718)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-28 11:06:06 -07:00
dependabot[bot]
085eb10d7e chore(deps-dev): bump eslint-plugin-jest from 29.1.0 to 29.2.1 (#2719)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-28 11:05:54 -07:00
dependabot[bot]
72321d1f00 chore(deps): bump github/codeql-action from 4.31.4 to 4.31.5 (#2720)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-28 11:05:45 -07:00
dependabot[bot]
8c66df4f78 chore(deps-dev): bump prettier from 3.6.2 to 3.7.1 (#2722)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-28 11:05:34 -07:00
dependabot[bot]
6da3c88b60 chore(deps): bump nrwl/nx-set-shas from 4.3.3 to 4.4.0 (#2712)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 22:13:36 +00:00
dependabot[bot]
48b6e9756d chore(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#2714)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 13:37:30 -07:00
Tonye Jack
4206138f17 Update README.md 2025-11-20 13:35:40 -07:00
dependabot[bot]
31e663cd71 chore(deps): bump github/codeql-action from 4.31.2 to 4.31.4 (#2715)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 13:26:12 -07:00
dependabot[bot]
46fd332157 chore(deps-dev): bump @types/node from 24.10.0 to 24.10.1 (#2711)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 13:25:15 -07:00
dependabot[bot]
2d752abc95 chore(deps-dev): bump eslint-plugin-jest from 29.0.1 to 29.1.0 (#2710)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 13:00:44 -07:00
dependabot[bot]
70069877f2 chore(deps): bump @octokit/rest from 22.0.0 to 22.0.1 (#2705)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 21:18:56 -07:00
dependabot[bot]
5df1bad3a5 chore(deps-dev): bump @types/node from 24.9.2 to 24.10.0 (#2707)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 21:18:45 -07:00
dependabot[bot]
0ff001de08 chore(deps-dev): bump ts-jest from 29.4.4 to 29.4.5 (#2688)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 21:20:36 +00:00
dependabot[bot]
52b808ab08 chore(deps-dev): bump @types/micromatch from 4.0.9 to 4.0.10 (#2699)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 21:03:28 +00:00
dependabot[bot]
d6388b78bd chore(deps): bump actions/download-artifact from 5.0.0 to 6.0.0 (#2697)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 14:27:15 -06:00
dependabot[bot]
cf5e80aa29 chore(deps): bump actions/upload-artifact from 4.6.2 to 5.0.0 (#2698)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 14:27:08 -06:00
dependabot[bot]
cff4543226 chore(deps-dev): bump @types/node from 24.9.1 to 24.9.2 (#2700)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 14:26:58 -06:00
dependabot[bot]
9dc1b5f80e chore(deps): bump github/codeql-action from 4.30.9 to 4.31.2 (#2702)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 14:26:43 -06:00
dependabot[bot]
dbf178ceec chore(deps): bump actions/setup-node from 5.0.0 to 6.0.0 (#2690)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-24 11:51:02 -06:00
dependabot[bot]
1900262303 chore(deps): bump github/codeql-action from 3.30.6 to 4.30.9 (#2693)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-24 11:50:09 -06:00
dependabot[bot]
27e5d78f9b chore(deps-dev): bump @types/node from 24.6.2 to 24.9.1 (#2695)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-24 11:49:32 -06:00
dependabot[bot]
d03a93c0db chore(deps): bump github/codeql-action from 3.30.5 to 3.30.6 (#2680)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 10:39:28 -06:00
dependabot[bot]
df9aabcdef chore(deps-dev): bump @types/node from 24.6.1 to 24.6.2 (#2681)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 10:39:15 -06:00
dependabot[bot]
d6f020b1d9 chore(deps-dev): bump @types/node from 24.5.2 to 24.6.1 (#2679)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 14:41:12 -06:00
dependabot[bot]
212f9a7760 chore(deps-dev): bump jest from 30.1.3 to 30.2.0 (#2677)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 12:05:50 -06:00
dependabot[bot]
0dc2215e58 chore(deps): bump github/codeql-action from 3.30.4 to 3.30.5 (#2676)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 12:05:34 -06:00
dependabot[bot]
28cf3adc4b chore(deps-dev): bump ts-jest from 29.4.3 to 29.4.4 (#2672)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-27 19:17:22 -06:00
dependabot[bot]
0b7adf7963 chore(deps): bump github/codeql-action from 3.30.3 to 3.30.4 (#2675)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-27 19:17:08 -06:00
dependabot[bot]
4563c729c5 chore(deps-dev): bump @types/node from 24.4.0 to 24.5.2 (#2669)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 16:02:40 +00:00
dependabot[bot]
257f3acedc chore(deps-dev): bump @types/uuid from 10.0.0 to 11.0.0 (#2668)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 15:44:51 +00:00
dependabot[bot]
cac596ed08 chore(deps-dev): bump @vercel/ncc from 0.38.3 to 0.38.4 (#2670)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 09:12:43 -06:00
dependabot[bot]
4fb6914af9 chore(deps-dev): bump ts-jest from 29.4.1 to 29.4.3 (#2671)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 09:12:35 -06:00
dependabot[bot]
2371aa7cd2 chore(deps-dev): bump @types/node from 24.3.1 to 24.4.0 (#2664)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 15:06:27 -06:00
github-actions[bot]
1ac6096503 Upgraded to v47 (#2663)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-13 07:50:58 -06:00
27 changed files with 3487 additions and 2129 deletions

View File

@@ -29,7 +29,7 @@ jobs:
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI
@@ -51,6 +51,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@192325c86100d080feab897ff886c34abd4c83a3 # v3.29.5
uses: github/codeql-action/upload-sarif@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v3.29.5
with:
sarif_file: results.sarif

View File

@@ -43,11 +43,11 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@192325c86100d080feab897ff886c34abd4c83a3 # v3.29.5
uses: github/codeql-action/init@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v3.29.5
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -61,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@192325c86100d080feab897ff886c34abd4c83a3 # v3.29.5
uses: github/codeql-action/autobuild@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v3.29.5
# 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
@@ -74,6 +74,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@192325c86100d080feab897ff886c34abd4c83a3 # v3.29.5
uses: github/codeql-action/analyze@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v3.29.5
with:
category: "/language:${{matrix.language}}"

View File

@@ -19,7 +19,7 @@ jobs:
NUMBER: ${{ github.event.issue.number }}
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
fetch-depth: 0
@@ -104,7 +104,7 @@ jobs:
NUMBER: ${{ github.event.issue.number }}
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
fetch-depth: 0

View File

@@ -24,7 +24,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
fetch-depth: 0

View File

@@ -17,7 +17,7 @@ jobs:
matrix: ${{ steps.changed-files.outputs.all_changed_files }}
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Get changed files
@@ -39,7 +39,19 @@ jobs:
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Test
run: |
echo ${{ matrix.files }}
conditional-job:
name: Run Conditional Job
runs-on: ubuntu-latest
needs: [changed-files]
if: contains(needs.changed-files.outputs.matrix, 'README.md') # Conditional check for README
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Execute Conditional Logic
run: |
echo "README.md has been changed. Running conditional job."

View File

@@ -19,7 +19,7 @@ jobs:
all_changed_files: ${{ steps.changed-files.outputs.all_changed_files }}
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Get changed files
@@ -45,7 +45,7 @@ jobs:
all_changed_files: ${{ steps.changed-files.outputs.all_changed_files }}
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Get changed files

View File

@@ -13,11 +13,11 @@ jobs:
update-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Run release-tagger
uses: tj-actions/release-tagger@1a9264b0fd99a1ef92c4fd2f077f292900cc79b6 # v4.0.0
uses: tj-actions/release-tagger@970a1f5f827a7b90902b0adc904f3bb70c1074e7 # v6.0.6
- name: Sync release version.
uses: tj-actions/sync-release-version@2a7ef0deb39b3ecce887ee99d2261c6cef989d84 # v13.16
id: sync-release-version
@@ -38,7 +38,7 @@ jobs:
- name: Run git-cliff
uses: tj-actions/git-cliff@679041f051a4d2ab452f7e5e7b0eed2abee21131 # v2.2.0
- name: Create Pull Request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
with:
base: "main"
labels: "merge when passing"

View File

@@ -38,14 +38,14 @@ jobs:
contents: write
pull-requests: read
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
fetch-depth: 0
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Use Node.js 24.x
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
cache: 'yarn'
node-version: '24.x'
@@ -73,7 +73,7 @@ jobs:
GITHUB_EVENT_PULL_REQUEST_HEAD_REPO_FORK: ${{ github.event.pull_request.head.repo.fork }}
- name: Upload build assets
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: build-assets
path: dist
@@ -109,7 +109,7 @@ jobs:
contents: read
steps:
- name: Checkout into dir1
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
submodules: true
@@ -117,7 +117,7 @@ jobs:
path: dir1
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
path: dir1/dist
@@ -143,13 +143,13 @@ jobs:
bash
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
path: dir2/dist
- name: Checkout into dir2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
submodules: true
@@ -185,13 +185,13 @@ jobs:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -245,13 +245,13 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -275,6 +275,113 @@ jobs:
shell:
bash
test-skip-same-base-and-commit-sha:
name: Test changed-files skip same base and commit sha
runs-on: ubuntu-latest
needs: build
if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Download build assets
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
- name: Get head SHA
id: head-sha
run: |
echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
shell:
bash
- name: Run changed-files with same base and commit sha
id: changed-files
uses: ./
with:
base_sha: ${{ steps.head-sha.outputs.sha }}
sha: ${{ steps.head-sha.outputs.sha }}
skip_same_sha: true
- name: Verify empty outputs
if: steps.changed-files.outputs.all_changed_files_count != '0' || steps.changed-files.outputs.any_changed != 'false'
run: |
echo "Expected empty outputs; got count=${{ steps.changed-files.outputs.all_changed_files_count }} any_changed=${{ steps.changed-files.outputs.any_changed }}"
exit 1
shell:
bash
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files.outputs) }}'
shell:
bash
test-exclude-symlinks:
name: Test changed-files exclude symlinks
runs-on: ubuntu-latest
needs: build
if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Download build assets
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
- name: Run changed-files without symlink exclusion
id: changed-files-symlink-included
uses: ./
with:
base_sha: 2f2f6cf099167fa7d7c6aba8fc0421327e181a5a
sha: 8c4da285a3cb8b621b4a5cc251d6282b4b0a67a5
- name: Verify symlink is present
if: "!contains(steps.changed-files-symlink-included.outputs.added_files, 'test/symlink-to-target')"
run: |
echo "Expected symlink to be present in added_files; got ${{ steps.changed-files-symlink-included.outputs.added_files }}"
exit 1
shell:
bash
- name: Run changed-files excluding symlinks
id: changed-files-symlink-excluded
uses: ./
with:
base_sha: 2f2f6cf099167fa7d7c6aba8fc0421327e181a5a
sha: 8c4da285a3cb8b621b4a5cc251d6282b4b0a67a5
exclude_symlinks: true
- name: Verify symlink is excluded
if: "contains(steps.changed-files-symlink-excluded.outputs.added_files, 'test/symlink-to-target') || contains(steps.changed-files-symlink-excluded.outputs.all_changed_files, 'test/symlink-to-target')"
run: |
echo "Expected symlink to be excluded; got added=${{ steps.changed-files-symlink-excluded.outputs.added_files }} all=${{ steps.changed-files-symlink-excluded.outputs.all_changed_files }}"
exit 1
shell:
bash
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-symlink-included.outputs) }}'
echo '${{ toJSON(steps.changed-files-symlink-excluded.outputs) }}'
shell:
bash
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
@@ -289,13 +396,13 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -328,13 +435,13 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -362,12 +469,12 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -396,14 +503,14 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: ${{ matrix.fetch-depth }}
persist-credentials: false
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -426,10 +533,10 @@ jobs:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -481,10 +588,10 @@ jobs:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -536,7 +643,7 @@ jobs:
pull-requests: read
steps:
- name: Checkout into dir1
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
submodules: true
@@ -544,7 +651,7 @@ jobs:
path: dir1
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
path: dir1/dist
@@ -568,14 +675,14 @@ jobs:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
submodules: true
fetch-depth: 0
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
path: dist
@@ -605,7 +712,7 @@ jobs:
contents: read
steps:
- name: Checkout into dir1
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
submodules: true
@@ -613,7 +720,7 @@ jobs:
path: dir1
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
path: dir1/dist
@@ -644,14 +751,14 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
submodules: recursive
fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -710,14 +817,14 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
submodules: recursive
fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -805,14 +912,14 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
submodules: recursive
fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -991,7 +1098,7 @@ jobs:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: a52f8621d26d5d9f54b80f74bda2d9eedff94693
repository: ${{ github.event.pull_request.head.repo.full_name }}
@@ -1029,7 +1136,7 @@ jobs:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.pull_request.head.sha }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
@@ -1108,7 +1215,7 @@ jobs:
steps:
- name: Checkout branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.pull_request.head.sha }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
@@ -1116,7 +1223,7 @@ jobs:
fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
@@ -1161,13 +1268,13 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: ${{ matrix.fetch-depth }}
- name: Download build assets
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
- name: Dump GitHub context
@@ -2154,7 +2261,7 @@ jobs:
id: branch-name
uses: tj-actions/branch-names@5250492686b253f06fa55861556d1027b067aeb5 # v9.0.2
if: github.event_name == 'pull_request' && matrix.fetch-depth == 0
- uses: nrwl/nx-set-shas@826660b82addbef3abff5fa871492ebad618c9e1 # v4.3.3
- uses: nrwl/nx-set-shas@3e9ad7370203c1e93d109be57f3b72eb0eb511b1 # v4.4.0
id: last_successful_commit
if: github.event_name == 'pull_request' && github.event.action != 'closed' && matrix.fetch-depth == 0
with:

View File

@@ -13,7 +13,7 @@ jobs:
sync-assets:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
@@ -42,7 +42,7 @@ jobs:
- name: Create Pull Request
if: failure()
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
with:
base: "main"
labels: "merge when passing"

View File

@@ -13,7 +13,7 @@ jobs:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Get changed files
id: changed-files
@@ -29,7 +29,7 @@ jobs:
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Get changed files
id: changed-files

1758
HISTORY.md

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
[![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%26package_id%3DUGFja2FnZS0yOTQyNTU4MDk5%26badge%3Dtrue)](https://github.com/search?o=desc\&q=tj-actions+changed-files+language%3AYAML\&s=\&type=Code)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/4fe2f49c3ab144b0bbe4effc85a061a0)](https://app.codacy.com/gh/tj-actions/changed-files/dashboard?utm_source=gh\&utm_medium=referral\&utm_content=\&utm_campaign=Badge_grade)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d59579c4b70e453a93cd2147b5d57384)](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)
@@ -45,6 +45,7 @@ Effortlessly track all changed files and directories relative to a target branch
* [Credits 👏](#credits-)
* [Report Bugs 🐛](#report-bugs-)
* [Contributors ✨](#contributors-)
* [💼 Automate Your Job Search Too](#-automate-your-job-search-too)
## Features 🚀
@@ -122,7 +123,7 @@ jobs:
# -----------------------------------------------------------------------------------------------------------
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
# 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
@@ -140,7 +141,7 @@ jobs:
# -----------------------------------------------------------------------------------------------------------
- name: Get all changed markdown files
id: changed-markdown-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
# Avoid using single or double quotes for multiline patterns
files: |
@@ -161,7 +162,7 @@ jobs:
# -----------------------------------------------------------------------------------------------------------
- name: Get all test, doc and src files that have changed
id: changed-files-yaml
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
files_yaml: |
doc:
@@ -196,7 +197,7 @@ jobs:
# -----------------------------------------------------------------------------------------------------------
- name: Get changed files in the docs folder
id: changed-files-specific
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
files: docs/*.{js,html} # Alternatively using: `docs/**`
files_ignore: docs/static.js
@@ -238,7 +239,7 @@ jobs:
steps:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
- name: List all changed files
env:
@@ -281,7 +282,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
# NOTE: `since_last_remote_commit: true` is implied by default and falls back to the previous local commit.
- name: List all changed files
@@ -328,7 +329,7 @@ Support this project with a :star:
<!-- AUTO-DOC-INPUT:START - Do not remove or modify this section -->
```yaml
- uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
- uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
id: changed-files
with:
# Github API URL.
@@ -411,6 +412,11 @@ Support this project with a :star:
# Default: "false"
exclude_submodules: ''
# Exclude symlinks from changed files.
# Type: boolean
# Default: "false"
exclude_symlinks: ''
# Fail when the initial diff
# fails.
# Type: boolean
@@ -675,6 +681,12 @@ Support this project with a :star:
# Default: "false"
skip_initial_fetch: ''
# Do not fail when base
# and head SHAs are identical.
# Type: boolean
# Default: "false"
skip_same_sha: ''
# Tags pattern to ignore.
# Type: string
tags_ignore_pattern: ''
@@ -814,7 +826,7 @@ The format of the version string is as follows:
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
...
```
@@ -827,7 +839,7 @@ The format of the version string is as follows:
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
safe_output: false # set to false because we are using an environment variable to store the output and avoid command injection.
@@ -850,7 +862,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@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
separator: ","
...
@@ -867,7 +879,7 @@ See [inputs](#inputs) for more information.
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
- name: List all added files
env:
@@ -890,7 +902,7 @@ See [outputs](#outputs) for a list of all available outputs.
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
- name: Run a step if my-file.txt was modified
if: contains(steps.changed-files.outputs.modified_files, 'my-file.txt')
@@ -911,7 +923,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: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
write_output_files: true
@@ -930,7 +942,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: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
json: true
write_output_files: true
@@ -950,7 +962,7 @@ See [outputs](#outputs) for a list of all available outputs.
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
files: |
my-file.txt
@@ -973,7 +985,7 @@ See [inputs](#inputs) for more information.
...
- name: Get changed files
id: changed-files-specific
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
files: |
my-file.txt
@@ -1024,7 +1036,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@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
files_from_source_file: test/changed-files-list.txt
...
@@ -1041,7 +1053,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@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
files_from_source_file: |
test/changed-files-list.txt
@@ -1062,7 +1074,7 @@ See [inputs](#inputs) for more information.
...
- name: Get changed files using a different SHA
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
sha: ${{ github.event.pull_request.head.sha }}
...
@@ -1079,7 +1091,7 @@ See [inputs](#inputs) for more information.
...
- name: Get changed files using a different base SHA
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
base_sha: ${{ github.event.pull_request.base.sha }}
...
@@ -1111,7 +1123,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
- name: List changed files
env:
@@ -1121,7 +1133,7 @@ jobs:
- name: Get changed files in the .github folder
id: changed-files-specific
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
files: .github/**
@@ -1152,7 +1164,7 @@ See [inputs](#inputs) for more information.
- name: Run changed-files with defaults in dir1
id: changed-files-for-dir1
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
path: dir1
@@ -1177,13 +1189,13 @@ See [inputs](#inputs) for more information.
...
- name: Run changed-files with quotepath disabled
id: changed-files-quotepath
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
quotepath: "false"
- name: Run changed-files with quotepath disabled for a specified list of file(s)
id: changed-files-quotepath-specific
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
files: test/test-è.txt
quotepath: "false"
@@ -1216,7 +1228,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@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
base_sha: ${{ steps.last_successful_commit_push.outputs.base }}
...
@@ -1243,7 +1255,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@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
base_sha: ${{ steps.last_successful_commit_pull_request.outputs.base }}
...
@@ -1269,7 +1281,7 @@ See [inputs](#inputs) for more information.
...
- name: Run changed-files with dir_names
id: changed-files-dir-names
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
dir_names: "true"
...
@@ -1286,7 +1298,7 @@ See [inputs](#inputs) for more information.
...
- name: Run changed-files with JSON output
id: changed-files-json
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
json: "true"
...
@@ -1303,13 +1315,13 @@ See [inputs](#inputs) for more information.
...
- name: Get changed-files since 2022-08-19
id: changed-files-since
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
since: "2022-08-19"
- name: Get changed-files until 2022-08-20
id: changed-files-until
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46
uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47
with:
until: "2022-08-20"
...
@@ -1459,3 +1471,17 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
***
## 💼 Automate Your Job Search Too
You automate your CI/CD. Automate your job applications too.
**[ApplySmart AI](https://applysmart.ai)** helps you:
* Generate tailored resumes & cover letters in seconds
* Extract job details from any posting automatically
* Track applications like you track deployments
**Free tier available** → [applysmart.ai](https://applysmart.ai)

View File

@@ -227,6 +227,14 @@ inputs:
description: "Exclude changes to submodules."
required: false
default: "false"
exclude_symlinks:
description: "Exclude symlinks from changed files."
required: false
default: "false"
skip_same_sha:
description: "Do not fail when base and head SHAs are identical."
required: false
default: "false"
fetch_missing_history_max_retries:
description: "Maximum number of retries to fetch missing history."
required: false

1845
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

View File

@@ -33,8 +33,8 @@
},
"homepage": "https://github.com/tj-actions/changed-files#readme",
"dependencies": {
"@actions/core": "^1.10.0",
"@actions/exec": "^1.1.1",
"@actions/core": "^2.0.0",
"@actions/exec": "^2.0.0",
"@actions/github": "^6.0.0",
"@octokit/rest": "^22.0.0",
"@stdlib/utils-convert-path": "^0.2.1",
@@ -46,8 +46,8 @@
"@types/jest": "^30.0.0",
"@types/lodash": "^4.14.195",
"@types/micromatch": "^4.0.2",
"@types/node": "^24.0.1",
"@types/uuid": "^10.0.0",
"@types/node": "^25.0.0",
"@types/uuid": "^11.0.0",
"@typescript-eslint/eslint-plugin": "^7.0.0",
"@typescript-eslint/parser": "^7.0.0",
"@vercel/ncc": "^0.38.0",

View File

@@ -12,6 +12,7 @@ exports[`getInputs should correctly parse boolean inputs 1`] = `
"dirNamesIncludeFilesSeparator": "",
"escapeJson": false,
"excludeSubmodules": "false",
"excludeSymlinks": "false",
"failOnInitialDiffError": "false",
"failOnSubmoduleDiffError": "false",
"fetchAdditionalSubmoduleHistory": "false",
@@ -53,6 +54,7 @@ exports[`getInputs should correctly parse boolean inputs 1`] = `
"since": "",
"sinceLastRemoteCommit": "false",
"skipInitialFetch": "true",
"skipSameSha": "false",
"tagsIgnorePattern": "",
"tagsPattern": "*",
"token": "",
@@ -76,6 +78,7 @@ exports[`getInputs should correctly parse numeric inputs 1`] = `
"dirNamesMaxDepth": 2,
"escapeJson": false,
"excludeSubmodules": false,
"excludeSymlinks": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
@@ -115,6 +118,7 @@ exports[`getInputs should correctly parse numeric inputs 1`] = `
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"skipSameSha": false,
"tagsIgnorePattern": "",
"tagsPattern": "",
"token": "",
@@ -137,6 +141,7 @@ exports[`getInputs should correctly parse string inputs 1`] = `
"dirNamesIncludeFilesSeparator": "",
"escapeJson": false,
"excludeSubmodules": false,
"excludeSymlinks": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
@@ -175,6 +180,7 @@ exports[`getInputs should correctly parse string inputs 1`] = `
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"skipSameSha": false,
"tagsIgnorePattern": "",
"tagsPattern": "",
"token": "token",
@@ -198,6 +204,7 @@ exports[`getInputs should handle invalid numeric inputs correctly 1`] = `
"dirNamesMaxDepth": 2,
"escapeJson": false,
"excludeSubmodules": false,
"excludeSymlinks": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
@@ -237,6 +244,7 @@ exports[`getInputs should handle invalid numeric inputs correctly 1`] = `
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"skipSameSha": false,
"tagsIgnorePattern": "",
"tagsPattern": "",
"token": "",
@@ -260,6 +268,7 @@ exports[`getInputs should handle negative numeric inputs correctly 1`] = `
"dirNamesMaxDepth": -2,
"escapeJson": false,
"excludeSubmodules": false,
"excludeSymlinks": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
@@ -299,6 +308,7 @@ exports[`getInputs should handle negative numeric inputs correctly 1`] = `
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"skipSameSha": false,
"tagsIgnorePattern": "",
"tagsPattern": "",
"token": "",
@@ -321,6 +331,7 @@ exports[`getInputs should return default values when no inputs are provided 1`]
"dirNamesIncludeFilesSeparator": "",
"escapeJson": false,
"excludeSubmodules": false,
"excludeSymlinks": false,
"failOnInitialDiffError": false,
"failOnSubmoduleDiffError": false,
"fetchAdditionalSubmoduleHistory": false,
@@ -362,6 +373,7 @@ exports[`getInputs should return default values when no inputs are provided 1`]
"since": "",
"sinceLastRemoteCommit": false,
"skipInitialFetch": false,
"skipSameSha": false,
"tagsIgnorePattern": "",
"tagsPattern": "*",
"token": "",

View File

@@ -639,6 +639,8 @@ describe('utils test', () => {
negationPatternsFirst: false,
useRestApi: false,
excludeSubmodules: false,
excludeSymlinks: false,
skipSameSha: false,
fetchMissingHistoryMaxRetries: 20,
usePosixPathSeparator: false,
tagsPattern: '*',

View File

@@ -16,6 +16,8 @@ import {
getFilteredChangedFiles,
gitRenamedFiles,
gitSubmoduleDiffSHA,
isSymlinkInGitTree,
isSymlinkOnDisk,
isWindows,
jsonOutput,
setArrayOutput
@@ -220,7 +222,8 @@ export const getAllDiffFiles = async ({
outputRenamedFilesAsDeletedAndAdded,
fetchAdditionalSubmoduleHistory,
failOnInitialDiffError,
failOnSubmoduleDiffError
failOnSubmoduleDiffError,
submoduleShas
}: {
workingDirectory: string
diffSubmodule: boolean
@@ -230,6 +233,7 @@ export const getAllDiffFiles = async ({
fetchAdditionalSubmoduleHistory: boolean
failOnInitialDiffError: boolean
failOnSubmoduleDiffError: boolean
submoduleShas?: Record<string, {previousSha?: string; currentSha?: string}>
}): Promise<ChangedFiles> => {
const files = await getAllChangedFiles({
cwd: workingDirectory,
@@ -256,6 +260,9 @@ export const getAllDiffFiles = async ({
)
if (submoduleShaResult.currentSha && submoduleShaResult.previousSha) {
if (submoduleShas) {
submoduleShas[submodulePath] = submoduleShaResult
}
let diff = '...'
if (
@@ -300,6 +307,139 @@ export const getAllDiffFiles = async ({
return files
}
export const filterSymlinksFromChangedFiles = async ({
changedFiles,
workingDirectory,
diffResult,
submodulePaths,
submoduleShas
}: {
changedFiles: ChangedFiles
workingDirectory: string
diffResult: DiffResult
submodulePaths: string[]
submoduleShas?: Record<string, {previousSha?: string; currentSha?: string}>
}): Promise<ChangedFiles> => {
const filtered: ChangedFiles = {
[ChangeTypeEnum.Added]: [],
[ChangeTypeEnum.Copied]: [],
[ChangeTypeEnum.Deleted]: [],
[ChangeTypeEnum.Modified]: [],
[ChangeTypeEnum.Renamed]: [],
[ChangeTypeEnum.TypeChanged]: [],
[ChangeTypeEnum.Unmerged]: [],
[ChangeTypeEnum.Unknown]: []
}
const cache = new Map<string, boolean>()
const diskCache = new Map<string, boolean>()
const getSubmoduleContext = (
filePath: string
): {
cwd: string
relativePath: string
currentSha: string
previousSha: string
isSubmoduleRoot: boolean
} => {
const submodulePath = submodulePaths.find(p =>
filePath.startsWith(`${p}${path.sep}`)
)
if (!submodulePath) {
return {
cwd: workingDirectory,
relativePath: filePath,
currentSha: diffResult.currentSha,
previousSha: diffResult.previousSha,
isSubmoduleRoot: false
}
}
if (filePath === submodulePath) {
return {
cwd: workingDirectory,
relativePath: filePath,
currentSha: diffResult.currentSha,
previousSha: diffResult.previousSha,
isSubmoduleRoot: true
}
}
const submoduleWorkingDirectory = path.join(workingDirectory, submodulePath)
const relativePath = filePath.substring(submodulePath.length + 1)
const submoduleSha = submoduleShas?.[submodulePath]
return {
cwd: submoduleWorkingDirectory,
relativePath,
currentSha: submoduleSha?.currentSha || diffResult.currentSha,
previousSha: submoduleSha?.previousSha || diffResult.previousSha,
isSubmoduleRoot: false
}
}
const isSymlinkCached = async ({
cwd,
filePath,
sha,
preferDisk
}: {
cwd: string
filePath: string
sha: string
preferDisk: boolean
}): Promise<boolean> => {
if (preferDisk) {
const diskKey = `${cwd}|disk|${filePath}`
const cachedDisk = diskCache.get(diskKey)
if (cachedDisk !== undefined) {
return cachedDisk
}
const diskResult = await isSymlinkOnDisk({cwd, filePath})
diskCache.set(diskKey, diskResult)
if (diskResult) {
return true
}
}
const treeKey = `${cwd}|${sha}|${filePath}`
const cachedTree = cache.get(treeKey)
if (cachedTree !== undefined) {
return cachedTree
}
const treeResult = await isSymlinkInGitTree({cwd, sha, filePath})
cache.set(treeKey, treeResult)
return treeResult
}
for (const changeType of Object.keys(changedFiles) as ChangeTypeEnum[]) {
const files = changedFiles[changeType] || []
for (const filePath of files) {
const context = getSubmoduleContext(filePath)
if (context.isSubmoduleRoot) {
filtered[changeType].push(filePath)
continue
}
const isDeleted = changeType === ChangeTypeEnum.Deleted
const sha = isDeleted ? context.previousSha : context.currentSha
const isSymlink = await isSymlinkCached({
cwd: context.cwd,
filePath: context.relativePath,
sha,
preferDisk: !isDeleted
})
if (!isSymlink) {
filtered[changeType].push(filePath)
}
}
}
return filtered
}
function* getFilePaths({
inputs,
filePaths,

View File

@@ -84,6 +84,7 @@ export interface DiffResult {
targetBranch: string
diff: string
initialCommit?: boolean
sameSha?: boolean
}
interface SHAForNonPullRequestEvent {
@@ -198,6 +199,19 @@ export const getSHAForNonPullRequestEvent = async ({
if (inputs.baseSha && inputs.sha && currentBranch && targetBranch) {
if (previousSha === currentSha) {
if (inputs.skipSameSha) {
core.info(
`Skipping diff because previous sha ${previousSha} is equivalent to the current sha ${currentSha}.`
)
return {
previousSha,
currentSha,
currentBranch,
targetBranch,
diff,
sameSha: true
}
}
core.error(
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
)
@@ -305,6 +319,19 @@ export const getSHAForNonPullRequestEvent = async ({
core.debug(`Current branch: ${currentBranch}`)
if (!initialCommit && previousSha === currentSha) {
if (inputs.skipSameSha) {
core.info(
`Skipping diff because previous sha ${previousSha} is equivalent to the current sha ${currentSha}.`
)
return {
previousSha,
currentSha,
currentBranch,
targetBranch,
diff,
sameSha: true
}
}
core.error(
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
)
@@ -430,6 +457,19 @@ export const getSHAForPullRequestEvent = async ({
if (inputs.baseSha && inputs.sha && currentBranch && targetBranch) {
if (previousSha === currentSha) {
if (inputs.skipSameSha) {
core.info(
`Skipping diff because previous sha ${previousSha} is equivalent to the current sha ${currentSha}.`
)
return {
previousSha,
currentSha,
currentBranch,
targetBranch,
diff,
sameSha: true
}
}
core.error(
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
)
@@ -608,6 +648,19 @@ export const getSHAForPullRequestEvent = async ({
}
if (previousSha === currentSha) {
if (inputs.skipSameSha) {
core.info(
`Skipping diff because previous sha ${previousSha} is equivalent to the current sha ${currentSha}.`
)
return {
previousSha,
currentSha,
currentBranch,
targetBranch,
diff,
sameSha: true
}
}
core.error(
`Similar commit hashes detected: previous sha: ${previousSha} is equivalent to the current sha: ${currentSha}.`
)

View File

@@ -22,6 +22,8 @@ export const DEFAULT_VALUES_OF_UNSUPPORTED_API_INPUTS: Partial<Inputs> = {
fetchAdditionalSubmoduleHistory: false,
dirNamesDeletedFilesIncludeOnlyDeletedDirs: false,
excludeSubmodules: false,
excludeSymlinks: false,
skipSameSha: false,
fetchMissingHistoryMaxRetries: 20,
usePosixPathSeparator: false,
tagsPattern: '*',

View File

@@ -55,6 +55,8 @@ export type Inputs = {
negationPatternsFirst: boolean
useRestApi: boolean
excludeSubmodules: boolean
excludeSymlinks: boolean
skipSameSha: boolean
fetchMissingHistoryMaxRetries?: number
usePosixPathSeparator: boolean
tagsPattern: string
@@ -249,6 +251,14 @@ export const getInputs = (): Inputs => {
required: false
})
const excludeSymlinks = core.getBooleanInput('exclude_symlinks', {
required: false
})
const skipSameSha = core.getBooleanInput('skip_same_sha', {
required: false
})
const fetchMissingHistoryMaxRetries = core.getInput(
'fetch_missing_history_max_retries',
{required: false}
@@ -310,6 +320,8 @@ export const getInputs = (): Inputs => {
fetchAdditionalSubmoduleHistory,
dirNamesDeletedFilesIncludeOnlyDeletedDirs,
excludeSubmodules,
excludeSymlinks,
skipSameSha,
usePosixPathSeparator,
tagsPattern,
tagsIgnorePattern,

View File

@@ -5,8 +5,10 @@ import {
processChangedFiles,
ChangeTypeEnum,
getAllDiffFiles,
filterSymlinksFromChangedFiles,
getChangedFilesFromGithubAPI,
getRenamedFiles
getRenamedFiles,
ChangedFiles
} from './changedFiles'
import {
DiffResult,
@@ -127,11 +129,57 @@ const getChangedFilesFromLocalGitHistory = async ({
return
}
if (diffResult.sameSha) {
core.info('Base and head SHAs are identical; no changed files to report.')
const emptyChangedFiles: ChangedFiles = {
[ChangeTypeEnum.Added]: [],
[ChangeTypeEnum.Copied]: [],
[ChangeTypeEnum.Deleted]: [],
[ChangeTypeEnum.Modified]: [],
[ChangeTypeEnum.Renamed]: [],
[ChangeTypeEnum.TypeChanged]: [],
[ChangeTypeEnum.Unmerged]: [],
[ChangeTypeEnum.Unknown]: []
}
await processChangedFiles({
filePatterns,
allDiffFiles: emptyChangedFiles,
inputs,
yamlFilePatterns,
workingDirectory
})
if (inputs.includeAllOldNewRenamedFiles) {
await setOutput({
key: 'all_old_new_renamed_files',
value: inputs.json ? [] : '',
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json,
safeOutput: inputs.safeOutput
})
await setOutput({
key: 'all_old_new_renamed_files_count',
value: '0',
writeOutputFiles: inputs.writeOutputFiles,
outputDir: inputs.outputDir,
json: inputs.json
})
}
core.info('All Done!')
core.endGroup()
return
}
core.info(
`Retrieving changes between ${diffResult.previousSha} (${diffResult.targetBranch}) → ${diffResult.currentSha} (${diffResult.currentBranch})`
)
const allDiffFiles = await getAllDiffFiles({
const submoduleShas: Record<
string,
{previousSha?: string; currentSha?: string}
> = {}
let allDiffFiles = await getAllDiffFiles({
workingDirectory,
diffSubmodule,
diffResult,
@@ -139,8 +187,20 @@ const getChangedFilesFromLocalGitHistory = async ({
outputRenamedFilesAsDeletedAndAdded,
fetchAdditionalSubmoduleHistory: inputs.fetchAdditionalSubmoduleHistory,
failOnInitialDiffError: inputs.failOnInitialDiffError,
failOnSubmoduleDiffError: inputs.failOnSubmoduleDiffError
failOnSubmoduleDiffError: inputs.failOnSubmoduleDiffError,
submoduleShas
})
if (inputs.excludeSymlinks) {
core.info('Excluding symlinks from the diff')
allDiffFiles = await filterSymlinksFromChangedFiles({
changedFiles: allDiffFiles,
workingDirectory,
diffResult,
submodulePaths,
submoduleShas
})
}
core.debug(`All diff files: ${JSON.stringify(allDiffFiles)}`)
core.info('All Done!')
core.endGroup()

View File

@@ -152,6 +152,69 @@ export const exists = async (filePath: string): Promise<boolean> => {
}
}
/**
* Checks if a file is a symlink on disk
* @param cwd - working directory
* @param filePath - path to check
* @returns file is a symlink
*/
export const isSymlinkOnDisk = async ({
cwd,
filePath
}: {
cwd: string
filePath: string
}): Promise<boolean> => {
try {
const stat = await fs.lstat(path.join(cwd, filePath))
return stat.isSymbolicLink()
} catch {
return false
}
}
/**
* Checks if a file is a symlink in a git tree
* @param cwd - working directory
* @param sha - commit sha
* @param filePath - path to check
* @returns file is a symlink
*/
export const isSymlinkInGitTree = async ({
cwd,
sha,
filePath
}: {
cwd: string
sha: string
filePath: string
}): Promise<boolean> => {
if (!sha) {
return false
}
const {stdout, exitCode} = await exec.getExecOutput(
'git',
['ls-tree', '-r', sha, '--', filePath],
{
cwd,
ignoreReturnCode: true,
silent: !core.isDebug()
}
)
if (exitCode !== 0) {
return false
}
const line = stdout.split('\n').find(Boolean)
if (!line) {
return false
}
const [mode] = line.split(/\s+/)
return mode === '120000'
}
/**
* Generates lines of a file as an async iterable iterator
* @param filePath - path of file to read
@@ -819,14 +882,49 @@ export const cleanShaInput = async ({
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}`
const owner = github.context.repo.owner
const repo = github.context.repo.repo
const isNotFoundError = (error: unknown): boolean =>
typeof error === 'object' &&
error !== null &&
'status' in error &&
(error as {status?: number}).status === 404
// If it's not a valid commit sha, assume it's a ref name first.
try {
const {data: refData} = await octokit.rest.git.getRef({
owner,
repo,
ref: `heads/${sha}`
})
return refData.object.sha
} catch (error) {
if (!isNotFoundError(error)) {
throw error
}
}
try {
const {data: refData} = await octokit.rest.git.getRef({
owner,
repo,
ref: `tags/${sha}`
})
return refData.object.sha
} catch (error) {
if (!isNotFoundError(error)) {
throw error
}
}
const {data: commitData} = await octokit.rest.git.getCommit({
owner,
repo,
commit_sha: sha
})
return refData.object.sha
return commitData.sha
}
return stdout.trim()

1
test/symlink-target.txt Normal file
View File

@@ -0,0 +1 @@
Symlink target fixture.

1
test/symlink-to-target Symbolic link
View File

@@ -0,0 +1 @@
symlink-target.txt

1261
yarn.lock

File diff suppressed because it is too large Load Diff