Compare commits

...

118 Commits

Author SHA1 Message Date
repo-ranger[bot]
3f1e44af6c Merge pull request #847 from tj-actions/chore/update-error-handling
chore: update error handling
2022-12-12 18:49:05 +00:00
Tonye Jack
d9be0ccb5e Update diff-sha.sh 2022-12-12 11:16:39 -07:00
repo-ranger[bot]
ff10d2fbc5 Merge branch 'main' into chore/update-error-handling 2022-12-12 18:14:59 +00:00
Tonye Jack
8fb90ed7f6 Update diff-sha.sh 2022-12-12 11:14:49 -07:00
Tonye Jack
474e3bd363 Merge pull request #848 from tj-actions/chore/update-readme
chore: update readme
2022-12-12 08:30:55 -07:00
Tonye Jack
b2902f40b3 chore: update readme 2022-12-12 01:36:53 -07:00
Tonye Jack
17ae17127c Update diff-sha.sh 2022-12-12 00:19:02 -07:00
Tonye Jack
65dc0e47e9 chore: update error handling 2022-12-12 00:18:33 -07:00
Tonye Jack
ba5abef332 Merge pull request #846 from tj-actions/upgrade-to-v34.5.3 2022-12-10 19:03:01 -07:00
jackton1
84dcdf586d Upgraded from v34.5.2 -> v34.5.3 2022-12-11 00:32:24 +00:00
Tonye Jack
74dc2e8a78 Merge pull request #845 from tj-actions/chore/update-diff-sha.sh 2022-12-10 16:50:31 -07:00
Tonye Jack
a817eeece0 chore: update diff-sha.sh 2022-12-10 16:31:17 -07:00
Tonye Jack
b120be5d01 Merge pull request #844 from tj-actions/upgrade-to-v34.5.2
Upgraded to v34.5.2
2022-12-10 13:07:36 -07:00
jackton1
626ad8da53 Upgraded from v34.5.1 -> v34.5.2 2022-12-10 09:07:14 +00:00
Tonye Jack
8356a01788 Merge pull request #843 from tj-actions/fix/unable-to-locate-the-previous-sha 2022-12-10 01:05:01 -07:00
Tonye Jack
a84c8f54f9 Update diff-sha.sh 2022-12-10 00:30:40 -07:00
Tonye Jack
a4f296d02e Update diff-sha.sh 2022-12-10 00:21:14 -07:00
Tonye Jack
33eef1b0ed Update diff-sha.sh 2022-12-10 00:05:52 -07:00
Tonye Jack
ae2404f72e Update diff-sha.sh 2022-12-09 23:58:40 -07:00
Tonye Jack
3f045143ec Update get-changed-paths.sh 2022-12-09 23:53:21 -07:00
Tonye Jack
0707f1b441 Update diff-sha.sh 2022-12-09 23:52:38 -07:00
Tonye Jack
fbc9b61579 Update action.yml 2022-12-09 23:51:25 -07:00
Tonye Jack
ac602e39b8 fix: error verifying the previous commit sha for push event 2022-12-09 23:49:27 -07:00
Tonye Jack
ef32360b2d Merge pull request #841 from tj-actions/chore/rename-env-variable 2022-12-08 14:32:58 -07:00
Tonye Jack
4b60d05705 Update action.yml 2022-12-08 12:43:50 -07:00
Tonye Jack
385d98db73 Update diff-sha.sh 2022-12-08 12:34:38 -07:00
Tonye Jack
8c766cffe7 Update action.yml 2022-12-08 12:32:51 -07:00
repo-ranger[bot]
00cc8e59b9 Merge pull request #839 from tj-actions/upgrade-to-v34.5.1
Upgraded to v34.5.1
2022-12-06 02:16:50 +00:00
jackton1
56a1ce212a Upgraded from v34.5.0 -> v34.5.1 2022-12-06 02:01:30 +00:00
repo-ranger[bot]
baaf598b46 Merge pull request #838 from tj-actions/chore/update-readme
Updated README.md
2022-12-05 22:52:03 +00:00
jackton1
15519b6a6f Updated README.md 2022-12-05 22:19:34 +00:00
Tonye Jack
e9a054c870 Update README.md 2022-12-05 15:17:05 -07:00
Tonye Jack
ed7adeaf22 Update action.yml 2022-12-05 15:15:35 -07:00
repo-ranger[bot]
703a319222 Merge pull request #837 from tj-actions/fix/wrong-changed-files-for-forked-prs
fix: wrong changed files for forked prs
2022-12-05 22:02:59 +00:00
Tonye Jack
e6fbdde201 Update diff-sha.sh 2022-12-05 14:38:37 -07:00
Tonye Jack
860dc31320 Update diff-sha.sh 2022-12-05 14:34:38 -07:00
Tonye Jack
fd5d6c3a2d Update action.yml 2022-12-05 14:30:14 -07:00
Tonye Jack
77fbd5a18c Update diff-sha.sh 2022-12-05 14:29:20 -07:00
Tonye Jack
aba4e5712b Update diff-sha.sh 2022-12-05 14:21:07 -07:00
Tonye Jack
c3642c4a1c Update diff-sha.sh 2022-12-05 13:19:24 -07:00
Tonye Jack
0a207fd892 Merge branch 'main' into fix/wrong-changed-files-for-forked-prs 2022-12-05 09:25:35 -07:00
repo-ranger[bot]
2a74e5e5d4 Merge pull request #835 from tj-actions/fix/determining-the-merge-base
fix: determining the merge base
2022-12-05 08:06:53 +00:00
repo-ranger[bot]
6e85a3501a Merge branch 'main' into fix/determining-the-merge-base 2022-12-05 07:15:19 +00:00
Tonye Jack
660db6c787 Merge pull request #836 from tj-actions/chore/update-readme
Updated README.md
2022-12-05 00:13:35 -07:00
Tonye Jack
a4d22acb20 Updated fetch branch 2022-12-05 00:12:48 -07:00
Tonye Jack
984b4ca567 Merge branch 'fix/determining-the-merge-base' into fix/wrong-changed-files-for-forked-prs 2022-12-05 00:06:11 -07:00
Tonye Jack
477b380579 Updated to use git diff 2022-12-05 00:05:01 -07:00
Tonye Jack
a699a3be4a Fixed test 2022-12-05 00:02:56 -07:00
Tonye Jack
3a46c048f7 Updated formatting 2022-12-05 00:02:15 -07:00
Tonye Jack
d78a469ec7 fix: wrong changed files for forked prs 2022-12-04 23:57:17 -07:00
Tonye Jack
0d9ec12402 Fixed test 2022-12-04 23:54:36 -07:00
repo-ranger[bot]
7e929625a3 Updated README.md 2022-12-05 06:50:05 +00:00
repo-ranger[bot]
c09cd8795d Merge branch 'main' into fix/determining-the-merge-base 2022-12-05 06:48:47 +00:00
repo-ranger[bot]
67482da9c0 Merge pull request #834 from tj-actions/chore/fix-typos
chore: fix typos
2022-12-05 06:47:10 +00:00
Tonye Jack
ef8591de30 Updated to use merge-base 2022-12-04 23:33:22 -07:00
Tonye Jack
f282e19e52 Updated to use merge-base 2022-12-04 23:27:32 -07:00
Tonye Jack
a20b263d03 Updated to use merge-base 2022-12-04 23:16:45 -07:00
Tonye Jack
69b90fbdbe fix: determining the merge-base with limited history. 2022-12-04 23:13:42 -07:00
Tonye Jack
2cf3132a60 Updated action 2022-12-04 23:08:45 -07:00
Tonye Jack
dc7365b27b Updated action 2022-12-04 23:07:38 -07:00
Tonye Jack
d8b80b3b09 chore: fix typos 2022-12-04 23:06:33 -07:00
Tonye Jack
33d8d67443 Update sync-release-version.yml 2022-12-04 22:29:11 -07:00
renovate[bot]
9f74b8c9e2 chore(deps): update tj-actions/auto-doc action to v1.5.0 2022-12-03 19:31:00 -07:00
renovate[bot]
17ce62043e chore(deps): update peter-evans/create-pull-request action to v4.2.3 2022-11-28 03:14:19 -07:00
repo-ranger[bot]
896db63e40 Merge pull request #827 from tj-actions/upgrade-to-v34.5.0
Upgraded to v34.5.0
2022-11-24 05:35:19 +00:00
repo-ranger[bot]
467f657e76 Merge branch 'main' into upgrade-to-v34.5.0 2022-11-24 05:14:58 +00:00
repo-ranger[bot]
efaec6dced Merge pull request #826 from tj-actions/chore/update-readme
Updated README.md
2022-11-24 05:14:24 +00:00
jackton1
5adea4114e Upgraded from v34.4.4 -> v34.5.0 2022-11-24 04:53:36 +00:00
jackton1
02a5f95a79 Updated README.md 2022-11-24 04:46:45 +00:00
Tonye Jack
91e0894f3f Update diff-sha.sh 2022-11-23 21:46:23 -07:00
Tonye Jack
20cff0223e Update action.yml 2022-11-23 21:37:16 -07:00
Tonye Jack
8a4cc4fbd6 Merge pull request #825 from tj-actions/renovate/peter-evans-create-pull-request-4.x
chore(deps): update peter-evans/create-pull-request action to v4.2.2
2022-11-23 21:07:09 -07:00
Tonye Jack
d372997c45 Merge branch 'main' into renovate/peter-evans-create-pull-request-4.x 2022-11-23 21:06:58 -07:00
Tonye Jack
a0b9b1e5a9 Merge pull request #824 from tj-actions/chore/update-readme
Updated README.md
2022-11-23 21:06:27 -07:00
renovate[bot]
88defd04db chore(deps): update peter-evans/create-pull-request action to v4.2.2 2022-11-24 03:52:44 +00:00
repo-ranger[bot]
e428e21b89 Updated README.md 2022-11-24 03:28:08 +00:00
repo-ranger[bot]
b383c47099 Merge pull request #823 from tj-actions/feat/add-support-for-dir-names-max-depth
feat: add support for dir_names_max_depth
2022-11-24 03:27:34 +00:00
Tonye Jack
a262e55d0d Update action.yml 2022-11-23 20:08:09 -07:00
Tonye Jack
637cb57c28 Update get-changed-paths.sh 2022-11-23 20:05:28 -07:00
Tonye Jack
65688ba5c8 Update get-changed-paths.sh 2022-11-23 19:56:19 -07:00
Tonye Jack
63f38f9f41 Update get-changed-paths.sh 2022-11-23 19:46:28 -07:00
Tonye Jack
3d46931839 Update get-changed-paths.sh 2022-11-23 19:38:21 -07:00
Tonye Jack
3840bc84e6 Update get-changed-paths.sh 2022-11-23 19:30:57 -07:00
Tonye Jack
1c9a614a4f Updated get-changed-paths.sh 2022-11-23 19:26:31 -07:00
Tonye Jack
d127e35180 Updated get-changed-paths.sh 2022-11-23 19:22:38 -07:00
Tonye Jack
386cb933d4 Updated get-changed-paths.sh 2022-11-23 19:08:10 -07:00
Tonye Jack
54b7c1b8d2 Updated get-changed-paths.sh 2022-11-23 19:01:02 -07:00
Tonye Jack
967c8a0609 Updated get-changed-paths.sh 2022-11-23 19:00:52 -07:00
Tonye Jack
6093777a38 Updated get-changed-paths.sh 2022-11-23 18:59:55 -07:00
Tonye Jack
bf3ca40593 Updated get-changed-paths.sh 2022-11-23 18:46:46 -07:00
Tonye Jack
0951b64836 Updated arguments 2022-11-23 18:38:53 -07:00
Tonye Jack
32c707316b Updated get-changed-paths.sh 2022-11-23 18:35:30 -07:00
Tonye Jack
f08344bfbc fixed shellcheck error 2022-11-23 18:17:30 -07:00
Tonye Jack
bcd97d2870 fixed unbound variable 2022-11-23 18:03:39 -07:00
Tonye Jack
e54a2423a8 Merge branch 'main' into feat/add-support-for-dir-names-max-depth 2022-11-23 17:40:08 -07:00
Tonye Jack
3c938dc216 fixed unbound variable 2022-11-23 17:39:37 -07:00
Tonye Jack
80e364a5d0 Update get-changed-paths.sh 2022-11-23 17:35:43 -07:00
repo-ranger[bot]
120c425db7 Merge pull request #822 from tj-actions/feat/replace-all-usage-of-last-successful-commit-action
feat: replace all usage of nrwl/last-successful-commit-action with nrwl/nx-set-shas
2022-11-24 00:35:34 +00:00
Tonye Jack
df466ccd7d fixed test 2022-11-23 17:32:14 -07:00
Tonye Jack
0a5b7c6ec0 Added test files 2022-11-23 17:29:39 -07:00
Tonye Jack
08d0cedfea feat: add support for dir_names_max_depth 2022-11-23 17:25:26 -07:00
Tonye Jack
5abef67e95 feat: replace all usage of nrwl/last-successful-commit-action with nrwl/nx-set-shas 2022-11-23 15:02:10 -07:00
renovate[bot]
ba788ed4ee chore(deps): update peter-evans/create-pull-request action to v4.2.1 2022-11-21 19:51:58 -07:00
repo-ranger[bot]
e883d3fc1b Merge pull request #819 from tj-actions/chore/update-renovate.json
chore: update renovate.json
2022-11-20 00:46:31 +00:00
Tonye Jack
7f3332eb99 chore: update renovate.json 2022-11-19 17:27:54 -07:00
Tonye Jack
28638a0d9b Merge pull request #818 from tj-actions/upgrade-to-v34.4.4
Upgraded to v34.4.4
2022-11-18 08:39:50 -07:00
jackton1
0686733297 Upgraded from v34.4.3 -> v34.4.4 2022-11-18 15:23:49 +00:00
repo-ranger[bot]
8a7336fb6f Merge pull request #817 from tj-actions/chore/fix-error-locating-last-remote-commit-sha
chore: fix error locating last remote commit sha
2022-11-18 13:46:28 +00:00
Tonye Jack
bf097488b7 Update diff-sha.sh 2022-11-18 06:28:49 -07:00
Tonye Jack
fad01cd373 chore: fix error locating last remote commit sha 2022-11-18 06:17:59 -07:00
repo-ranger[bot]
5b0b92e859 Merge pull request #816 from tj-actions/dependabot/github_actions/hmarr/auto-approve-action-3
Bump hmarr/auto-approve-action from 2 to 3
2022-11-18 02:09:44 +00:00
Tonye Jack
dc7e117725 Update auto-approve.yml 2022-11-17 18:52:13 -07:00
dependabot[bot]
f4f55124a4 Bump hmarr/auto-approve-action from 2 to 3
Bumps [hmarr/auto-approve-action](https://github.com/hmarr/auto-approve-action) from 2 to 3.
- [Release notes](https://github.com/hmarr/auto-approve-action/releases)
- [Commits](https://github.com/hmarr/auto-approve-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: hmarr/auto-approve-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-18 01:02:07 +00:00
repo-ranger[bot]
b86dc28fcb Merge pull request #815 from tj-actions/upgrade-to-v34.4.3
Upgraded to v34.4.3
2022-11-17 21:11:53 +00:00
repo-ranger[bot]
c6cd9a4c8b Merge branch 'main' into upgrade-to-v34.4.3 2022-11-17 20:43:28 +00:00
repo-ranger[bot]
62974b6c9c Merge pull request #814 from tj-actions/chore/update-readme
Updated README.md
2022-11-17 20:42:12 +00:00
jackton1
f76843a802 Upgraded from v34.4.2 -> v34.4.3 2022-11-17 20:19:19 +00:00
repo-ranger[bot]
fb362d4f10 Updated README.md 2022-11-17 20:16:14 +00:00
15 changed files with 308 additions and 144 deletions

View File

@@ -3,11 +3,12 @@ name: Auto approve
on:
pull_request_target
jobs:
auto-approve:
runs-on: ubuntu-latest
steps:
- uses: hmarr/auto-approve-action@v2
- uses: hmarr/auto-approve-action@v3
if: |
(
github.event.pull_request.user.login == 'dependabot[bot]' ||

View File

@@ -19,9 +19,10 @@ jobs:
git submodule update --remote --recursive
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4.2.0
uses: peter-evans/create-pull-request@v4.2.3
with:
title: "Updated submodule"
labels: "merge when passing"
branch: "chore/update-submodule"
commit-message: "Updated submodule"
body: "Updated submodule"

View File

@@ -26,9 +26,10 @@ jobs:
with:
output: 'HISTORY.md'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4.2.0
uses: peter-evans/create-pull-request@v4.2.3
with:
base: "main"
labels: "merge when passing"
title: "Upgraded to ${{ steps.sync-release-version.outputs.new_version }}"
branch: "upgrade-to-${{ steps.sync-release-version.outputs.new_version }}"
commit-message: "Upgraded from ${{ steps.sync-release-version.outputs.old_version }} -> ${{ steps.sync-release-version.outputs.new_version }}"

View File

@@ -417,6 +417,27 @@ jobs:
echo '${{ toJSON(steps.changed-files-quotepath.outputs) }}'
shell:
bash
- name: Run changed-files with dir_names and dir_names_max_depth
id: changed-files-dir-names-max-depth
uses: ./
with:
base_sha: ba788ed
sha: 0a5b7c6
fetch_depth: 60000
dir_names: "true"
dir_names_max_depth: 3
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-dir-names-max-depth.outputs) }}'
shell:
bash
- name: Check dir_names output
if: "!contains(steps.changed-files-dir-names-max-depth.outputs.all_changed_files, 'test/test2/test3')"
run: |
echo "Invalid output: Expected to include (test/test2/test3) got (${{ steps.changed-files-dir-names-max-depth.outputs.all_changed_files }})"
exit 1
shell:
bash
- name: Run changed-files with dir_names
id: changed-files-dir-names
uses: ./
@@ -925,19 +946,18 @@ jobs:
id: branch-name
uses: tj-actions/branch-names@v6
if: github.event_name == 'pull_request'
- uses: nrwl/last-successful-commit-action@v1
- uses: nrwl/nx-set-shas@v3
id: last_successful_commit
if: github.event_name == 'pull_request' && github.event.action != 'closed'
with:
branch: ${{ steps.branch-name.outputs.base_ref_branch }}
workflow_id: 'test.yml'
github_token: ${{ secrets.PAT_TOKEN }}
main-branch-name: ${{ steps.branch-name.outputs.base_ref_branch }}
workflow-id: 'test.yml'
- name: Run changed-files with a custom base sha
if: github.event_name == 'pull_request' && github.event.action != 'closed'
id: changed-files-custom-base-sha
uses: ./
with:
base_sha: ${{ steps.last_successful_commit.outputs.commit_hash }}
base_sha: ${{ steps.last_successful_commit.outputs.base }}
- name: Show output
if: github.event_name == 'pull_request' && github.event.action != 'closed'
run: |

View File

@@ -14,7 +14,7 @@ jobs:
fetch-depth: 0
- name: Run auto-doc
uses: tj-actions/auto-doc@v1.4.3
uses: tj-actions/auto-doc@v1.5.0
- name: Run test
uses: tj-actions/remark@v3
@@ -34,9 +34,10 @@ jobs:
- name: Create Pull Request
if: failure()
uses: peter-evans/create-pull-request@v4.2.0
uses: peter-evans/create-pull-request@v4.2.3
with:
base: "main"
labels: "merge when passing"
title: "Updated README.md"
branch: "chore/update-readme"
commit-message: "Updated README.md"

View File

@@ -1,20 +1,119 @@
# Changelog
## [Unreleased](https://github.com/tj-actions/changed-files/tree/HEAD)
## [v34.5.3](https://github.com/tj-actions/changed-files/tree/v34.5.3) (2022-12-10)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.4.2...HEAD)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34...v34.5.3)
## [v34](https://github.com/tj-actions/changed-files/tree/v34) (2022-12-10)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.5.2...v34)
**Fixed bugs:**
- \[BUG\] Error: Unable to locate the previous sha: fatal: ambiguous argument 'main': unknown revision or path not in the working tree [\#840](https://github.com/tj-actions/changed-files/issues/840)
**Merged pull requests:**
- chore: update diff-sha.sh [\#845](https://github.com/tj-actions/changed-files/pull/845) ([jackton1](https://github.com/jackton1))
- Upgraded to v34.5.2 [\#844](https://github.com/tj-actions/changed-files/pull/844) ([jackton1](https://github.com/jackton1))
## [v34.5.2](https://github.com/tj-actions/changed-files/tree/v34.5.2) (2022-12-10)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.5.1...v34.5.2)
**Merged pull requests:**
- fix: error verifying the previous commit sha for push event [\#843](https://github.com/tj-actions/changed-files/pull/843) ([jackton1](https://github.com/jackton1))
- chore: rename env variable [\#841](https://github.com/tj-actions/changed-files/pull/841) ([jackton1](https://github.com/jackton1))
- Upgraded to v34.5.1 [\#839](https://github.com/tj-actions/changed-files/pull/839) ([jackton1](https://github.com/jackton1))
## [v34.5.1](https://github.com/tj-actions/changed-files/tree/v34.5.1) (2022-12-05)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.5.0...v34.5.1)
**Implemented enhancements:**
- \[Feature\] Deprecate usage of `set-output` command and upgrade to environment variable [\#833](https://github.com/tj-actions/changed-files/issues/833)
**Fixed bugs:**
- \[BUG\] set-output call is deprecated [\#831](https://github.com/tj-actions/changed-files/issues/831)
- Unable to find merge-base between master and HEAD\[BUG\] \<title\> [\#830](https://github.com/tj-actions/changed-files/issues/830)
- \[BUG\] Glob not matching changed files [\#829](https://github.com/tj-actions/changed-files/issues/829)
- \[BUG\] Wrong changed-files returned for forked PRs [\#714](https://github.com/tj-actions/changed-files/issues/714)
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
**Merged pull requests:**
- Updated README.md [\#838](https://github.com/tj-actions/changed-files/pull/838) ([jackton1](https://github.com/jackton1))
- fix: wrong changed files for forked prs [\#837](https://github.com/tj-actions/changed-files/pull/837) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#836](https://github.com/tj-actions/changed-files/pull/836) ([jackton1](https://github.com/jackton1))
- fix: determining the merge base [\#835](https://github.com/tj-actions/changed-files/pull/835) ([jackton1](https://github.com/jackton1))
- chore: fix typos [\#834](https://github.com/tj-actions/changed-files/pull/834) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update tj-actions/auto-doc action to v1.5.0 [\#832](https://github.com/tj-actions/changed-files/pull/832) ([renovate[bot]](https://github.com/apps/renovate))
- chore\(deps\): update peter-evans/create-pull-request action to v4.2.3 [\#828](https://github.com/tj-actions/changed-files/pull/828) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v34.5.0 [\#827](https://github.com/tj-actions/changed-files/pull/827) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#826](https://github.com/tj-actions/changed-files/pull/826) ([jackton1](https://github.com/jackton1))
## [v34.5.0](https://github.com/tj-actions/changed-files/tree/v34.5.0) (2022-11-24)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.4.4...v34.5.0)
**Implemented enhancements:**
- \[Feature\] Replace all usage of nrwl/last-successful-commit-action with nrwl/nx-set-shas [\#820](https://github.com/tj-actions/changed-files/issues/820)
- \[Feature\] Unique directories max\_depth option [\#789](https://github.com/tj-actions/changed-files/issues/789)
**Merged pull requests:**
- chore\(deps\): update peter-evans/create-pull-request action to v4.2.2 [\#825](https://github.com/tj-actions/changed-files/pull/825) ([renovate[bot]](https://github.com/apps/renovate))
- Updated README.md [\#824](https://github.com/tj-actions/changed-files/pull/824) ([jackton1](https://github.com/jackton1))
- feat: add support for dir\_names\_max\_depth [\#823](https://github.com/tj-actions/changed-files/pull/823) ([jackton1](https://github.com/jackton1))
- feat: replace all usage of nrwl/last-successful-commit-action with nrwl/nx-set-shas [\#822](https://github.com/tj-actions/changed-files/pull/822) ([jackton1](https://github.com/jackton1))
- chore\(deps\): update peter-evans/create-pull-request action to v4.2.1 [\#821](https://github.com/tj-actions/changed-files/pull/821) ([renovate[bot]](https://github.com/apps/renovate))
- chore: update renovate.json [\#819](https://github.com/tj-actions/changed-files/pull/819) ([jackton1](https://github.com/jackton1))
- Upgraded to v34.4.4 [\#818](https://github.com/tj-actions/changed-files/pull/818) ([jackton1](https://github.com/jackton1))
## [v34.4.4](https://github.com/tj-actions/changed-files/tree/v34.4.4) (2022-11-18)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.4.3...v34.4.4)
**Implemented enhancements:**
- \[Feature\] Compare `HEAD` and `unstaged` [\#813](https://github.com/tj-actions/changed-files/issues/813)
**Fixed bugs:**
- `increase the fetch_depth to a number higher than 5000` [\#812](https://github.com/tj-actions/changed-files/issues/812)
- \[BUG\] changed-files v34.4.2 unable to locate a common ancestor [\#809](https://github.com/tj-actions/changed-files/issues/809)
**Merged pull requests:**
- chore: fix error locating last remote commit sha [\#817](https://github.com/tj-actions/changed-files/pull/817) ([jackton1](https://github.com/jackton1))
- Bump hmarr/auto-approve-action from 2 to 3 [\#816](https://github.com/tj-actions/changed-files/pull/816) ([dependabot[bot]](https://github.com/apps/dependabot))
- Upgraded to v34.4.3 [\#815](https://github.com/tj-actions/changed-files/pull/815) ([jackton1](https://github.com/jackton1))
- Updated README.md [\#814](https://github.com/tj-actions/changed-files/pull/814) ([jackton1](https://github.com/jackton1))
## [v34.4.3](https://github.com/tj-actions/changed-files/tree/v34.4.3) (2022-11-17)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.4.2...v34.4.3)
**Fixed bugs:**
- \[BUG\] diff-sha.sh results in "fatal: ambiguous argument '': unknown revision or path not in the working tree." [\#750](https://github.com/tj-actions/changed-files/issues/750)
**Merged pull requests:**
- Updated README.md [\#811](https://github.com/tj-actions/changed-files/pull/811) ([jackton1](https://github.com/jackton1))
- fix: pulling current branch history [\#810](https://github.com/tj-actions/changed-files/pull/810) ([jackton1](https://github.com/jackton1))
- Upgraded to v34.4.2 [\#808](https://github.com/tj-actions/changed-files/pull/808) ([jackton1](https://github.com/jackton1))
## [v34.4.2](https://github.com/tj-actions/changed-files/tree/v34.4.2) (2022-11-15)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34...v34.4.2)
## [v34](https://github.com/tj-actions/changed-files/tree/v34) (2022-11-15)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.4.1...v34)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v34.4.1...v34.4.2)
**Fixed bugs:**
@@ -75,10 +174,6 @@
- \[BUG\] Action compares only two latest commits on push [\#783](https://github.com/tj-actions/changed-files/issues/783)
- Detected dubious ownership in repository error when running the action [\#782](https://github.com/tj-actions/changed-files/issues/782)
**Closed issues:**
- Dependency Dashboard [\#27](https://github.com/tj-actions/changed-files/issues/27)
**Merged pull requests:**
- fix: bug with force pushing commits to pr branches [\#787](https://github.com/tj-actions/changed-files/pull/787) ([jackton1](https://github.com/jackton1))
@@ -185,7 +280,6 @@
**Fixed bugs:**
- \[BUG\] Action failing on PR with "Unable to find merge-base in shallow clone" [\#737](https://github.com/tj-actions/changed-files/issues/737)
- \[BUG\] Wrong changed-files returned for forked PRs [\#714](https://github.com/tj-actions/changed-files/issues/714)
**Closed issues:**
@@ -270,7 +364,7 @@
## [v34.0.0](https://github.com/tj-actions/changed-files/tree/v34.0.0) (2022-10-25)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v33...v34.0.0)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v33.0.0...v34.0.0)
**Fixed bugs:**
@@ -283,13 +377,13 @@
- feat: add support for fetching more history [\#709](https://github.com/tj-actions/changed-files/pull/709) ([jackton1](https://github.com/jackton1))
- Upgraded to v33.0.0 [\#707](https://github.com/tj-actions/changed-files/pull/707) ([jackton1](https://github.com/jackton1))
## [v33](https://github.com/tj-actions/changed-files/tree/v33) (2022-10-21)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v33.0.0...v33)
## [v33.0.0](https://github.com/tj-actions/changed-files/tree/v33.0.0) (2022-10-21)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32...v33.0.0)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v33...v33.0.0)
## [v33](https://github.com/tj-actions/changed-files/tree/v33) (2022-10-21)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v32...v33)
**Closed issues:**
@@ -427,7 +521,7 @@
## [v31.0.0](https://github.com/tj-actions/changed-files/tree/v31.0.0) (2022-09-25)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v30.0.0...v31.0.0)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v30...v31.0.0)
**Merged pull requests:**
@@ -440,13 +534,13 @@
- chore: update broken link [\#642](https://github.com/tj-actions/changed-files/pull/642) ([jackton1](https://github.com/jackton1))
- Upgraded to v30.0.0 [\#641](https://github.com/tj-actions/changed-files/pull/641) ([jackton1](https://github.com/jackton1))
## [v30.0.0](https://github.com/tj-actions/changed-files/tree/v30.0.0) (2022-09-24)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v30...v30.0.0)
## [v30](https://github.com/tj-actions/changed-files/tree/v30) (2022-09-24)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29...v30)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v30.0.0...v30)
## [v30.0.0](https://github.com/tj-actions/changed-files/tree/v30.0.0) (2022-09-24)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.9...v30.0.0)
**Fixed bugs:**
@@ -462,13 +556,13 @@
- chore\(deps\): update codacy/codacy-analysis-cli-action action to v4.2.0 [\#634](https://github.com/tj-actions/changed-files/pull/634) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v29.0.9 [\#633](https://github.com/tj-actions/changed-files/pull/633) ([jackton1](https://github.com/jackton1))
## [v29](https://github.com/tj-actions/changed-files/tree/v29) (2022-09-20)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.9...v29)
## [v29.0.9](https://github.com/tj-actions/changed-files/tree/v29.0.9) (2022-09-20)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.8...v29.0.9)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29...v29.0.9)
## [v29](https://github.com/tj-actions/changed-files/tree/v29) (2022-09-20)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v29.0.8...v29)
**Implemented enhancements:**
@@ -1911,7 +2005,7 @@
## [v7](https://github.com/tj-actions/changed-files/tree/v7) (2021-06-09)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.3...v7)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6...v7)
**Closed issues:**
@@ -1927,13 +2021,13 @@
- Update tj-actions/sync-release-version action to v8.7 [\#86](https://github.com/tj-actions/changed-files/pull/86) ([renovate[bot]](https://github.com/apps/renovate))
- Upgraded to v6.3 [\#85](https://github.com/tj-actions/changed-files/pull/85) ([jackton1](https://github.com/jackton1))
## [v6.3](https://github.com/tj-actions/changed-files/tree/v6.3) (2021-05-26)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6...v6.3)
## [v6](https://github.com/tj-actions/changed-files/tree/v6) (2021-05-26)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.2...v6)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.3...v6)
## [v6.3](https://github.com/tj-actions/changed-files/tree/v6.3) (2021-05-26)
[Full Changelog](https://github.com/tj-actions/changed-files/compare/v6.2...v6.3)
**Merged pull requests:**

View File

@@ -15,7 +15,7 @@
## changed-files
Retrieve all changed files and directories relative to the target branch or the last remote commit returning the **absolute path** from the project root.
Retrieve all changed files and directories relative to the target branch or the last remote commit returning the **absolute paths** from the project root.
## Features
@@ -25,7 +25,8 @@ Retrieve all changed files and directories relative to the target branch or the
* Git submodules support.
* No extra API calls.
* Escaped JSON Output which can be used for running matrix jobs based on changed files.
* List only changed directories.
* Optionally list only changed directories.
* Restrict the max depth of changed directories.
* Monorepos (Fetches only the last remote commit).
* Supports all platforms (Linux, MacOS, Windows).
* [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners) support
@@ -160,19 +161,20 @@ Support this project with a :star:
| INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION |
|-----------------------------------|--------|----------|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| base\_sha | string | false | | Specify a different base commit<br>SHA used for comparing changes<br> |
| diff\_relative | string | false | | Exclude changes outside the current<br>directory and show pathnames relative<br>to it. **NOTE:** This requires<br>you to specify the top<br>level directory via the `path`<br>input. |
| diff\_relative | string | false | | 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. |
| dir\_names | string | false | `"false"` | Output unique changed directories instead<br>of filenames. **NOTE:** This returns<br>`.` for changed files located<br>in the root of the<br>project. |
| fetch\_depth | string | false | `"40"` | Limit depth of the branch<br>history fetched. **NOTE**: This can<br>be adjusted to resolve errors<br>with insufficient history. |
| files | string | false | | File and directory patterns to<br>detect changes using only these<br>list of file(s) (Defaults to<br>the entire repo) **NOTE:** Multiline<br>file/directory patterns should not include<br>qoutes. |
| dir\_names\_max\_depth | string | false | | Maximum depth of directories to<br>output. e.g `test/test1/test2` with max<br>depth of `2` returns `test/test1`.<br> |
| fetch\_depth | string | false | `"40"` | Initial depth of the branch<br>history fetched. **NOTE**: This can<br>be adjusted to resolve errors<br>with insufficient history. |
| files | string | false | | File and directory patterns to<br>detect changes using only these<br>list of file(s) (Defaults to<br>the entire repo) **NOTE:** Multiline<br>file/directory patterns should not include<br>quotes. |
| files\_from\_source\_file | string | false | | Source file(s) used to populate<br>the `files` input. |
| files\_ignore | string | false | | Ignore changes to these file(s)<br>**NOTE:** Multiline file/directory patterns should<br>not include qoutes. |
| files\_ignore | string | false | | Ignore changes to these file(s)<br>**NOTE:** Multiline file/directory patterns should<br>not include quotes. |
| files\_ignore\_from\_source\_file | string | false | | Source file(s) used to populate<br>the `files_ignore` input |
| files\_ignore\_separator | string | false | `"\n"` | Separator used to split the<br>`files-ignore` input |
| files\_separator | string | false | `"\n"` | Separator used to split the<br>`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). |
| json | string | false | `"false"` | Output list of changed files<br>in a JSON formatted string<br>which can be used for<br>matrix jobs. |
| max\_fetch\_depth | string | false | `"5000"` | Maximum depth of the branch<br>history fetched. **NOTE**: This can<br>be adjusted to resolve errors<br>with insufficient history. |
| old\_new\_files\_separator | string | false | `" "` | Split character for multiple old<br>and new filename pairs. |
| old\_new\_files\_separator | string | false | `" "` | Split character for old and<br>new renamed filename pairs. |
| old\_new\_separator | string | false | `","` | Split character for old and<br>new filename pairs. |
| path | string | false | `"."` | Specify a relative path under<br>`$GITHUB_WORKSPACE` to locate the repository.<br> |
| quotepath | string | false | `"true"` | Use non ascii characters to<br>match files and output the<br>filenames completely verbatim by setting<br>this to `false` |
@@ -466,18 +468,17 @@ See [inputs](#inputs) for more information.
id: branch-name
uses: tj-actions/branch-names@v6
- uses: nrwl/last-successful-commit-action@v1
- uses: nrwl/nx-set-shas@v3
id: last_successful_commit_push
with:
branch: ${{ steps.branch-name.outputs.current_branch }} # Get the last successful commit for the current branch.
workflow_id: 'test.yml'
github_token: ${{ secrets.GITHUB_TOKEN }}
main-branch-name: ${{ steps.branch-name.outputs.current_branch }} # Get the last successful commit for the current branch.
workflow-id: 'test.yml'
- 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@v34
with:
base_sha: ${{ steps.last_successful_commit_push.outputs.commit_hash }}
base_sha: ${{ steps.last_successful_commit_push.outputs.base }}
...
```
@@ -494,18 +495,17 @@ See [inputs](#inputs) for more information.
id: branch-name
uses: tj-actions/branch-names@v5
- uses: nrwl/last-successful-commit-action@v1
- uses: nrwl/nx-set-shas@v3
id: last_successful_commit_pull_request
with:
branch: ${{ steps.branch-name.outputs.base_ref_branch }} # Get the last successful commit on master or main branch
main-branch-name: ${{ steps.branch-name.outputs.base_ref_branch }} # Get the last successful commit on master or main branch
workflow_id: 'test.yml'
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Run changed-files with the commit of the last successful test workflow run on main
id: changed-files-base-sha-pull-request
uses: tj-actions/changed-files@v34
with:
base_sha: ${{ steps.last_successful_commit_pull_request.outputs.commit_hash }}
base_sha: ${{ steps.last_successful_commit_pull_request.outputs.base }}
...
```

View File

@@ -16,7 +16,7 @@ inputs:
required: false
default: ","
old_new_files_separator:
description: "Split character for multiple old and new filename pairs."
description: "Split character for old and new renamed filename pairs."
required: false
default: " "
files_from_source_file:
@@ -24,7 +24,7 @@ inputs:
required: false
default: ""
files:
description: "File and directory patterns to detect changes using only these list of file(s) (Defaults to the entire repo) **NOTE:** Multiline file/directory patterns should not include qoutes."
description: "File and directory patterns to detect changes using only these list of file(s) (Defaults to the entire repo) **NOTE:** Multiline file/directory patterns should not include quotes."
required: false
default: ""
files_separator:
@@ -32,7 +32,7 @@ inputs:
default: "\n"
required: false
files_ignore:
description: "Ignore changes to these file(s) **NOTE:** Multiline file/directory patterns should not include qoutes."
description: "Ignore changes to these file(s) **NOTE:** Multiline file/directory patterns should not include quotes."
required: false
default: ""
files_ignore_separator:
@@ -67,12 +67,15 @@ inputs:
default: "true"
required: false
diff_relative:
description: "Exclude changes outside the current directory and show pathnames 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
dir_names:
default: "false"
description: "Output unique changed directories instead of filenames. **NOTE:** This returns `.` for changed files located in the root of the project."
required: false
dir_names_max_depth:
description: "Maximum depth of directories to output. e.g `test/test1/test2` with max depth of `2` returns `test/test1`."
required: false
json:
description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs."
required: false
@@ -170,9 +173,12 @@ runs:
GITHUB_BASE_REF: ${{ github.base_ref }}
GITHUB_HEAD_REF: ${{ github.head_ref }}
GITHUB_WORKSPACE: ${{ github.workspace }}
GITHUB_EVENT_HEAD_REPO_FORK: ${{ github.event.pull_request.head.repo.fork }}
GITHUB_EVENT_PULL_REQUEST_BASE_SHA: ${{ github.event.pull_request.base.sha }}
GITHUB_EVENT_PULL_REQUEST_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
GITHUB_EVENT_BEFORE: ${{ github.event.before }}
GITHUB_EVENT_FORCED: ${{ github.event.forced }}
GITHUB_REFNAME: ${{ github.ref_name }}
# INPUT_<VARIABLE_NAME> is not available in Composite run steps
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#example-specifying-inputs
INPUT_SHA: ${{ inputs.sha }}
@@ -206,6 +212,7 @@ runs:
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
GITHUB_BASE_REF: ${{ github.base_ref }}
GITHUB_EVENT_HEAD_REPO_FORK: ${{ github.event.pull_request.head.repo.fork }}
# INPUT_<VARIABLE_NAME> is not available in Composite run steps
# https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#example-specifying-inputs
INPUT_FILES_PATTERN_FILE: ${{ steps.glob.outputs.paths-output-file }}
@@ -221,6 +228,7 @@ runs:
INPUT_OLD_NEW_FILES_SEPARATOR: ${{ inputs.old_new_files_separator }}
INPUT_DIFF_RELATIVE: ${{ inputs.diff_relative }}
INPUT_DIR_NAMES: ${{ inputs.dir_names }}
INPUT_DIR_NAMES_MAX_DEPTH: ${{ inputs.dir_names_max_depth }}
INPUT_JSON: ${{ inputs.json }}
INPUT_HAS_CUSTOM_PATTERNS: ${{ steps.glob.outputs.has-custom-patterns }}

View File

@@ -7,11 +7,16 @@ GITHUB_OUTPUT=${GITHUB_OUTPUT:-""}
EXTRA_ARGS="--no-tags"
PREVIOUS_SHA=""
CURRENT_SHA=""
DIFF="..."
if [[ "$GITHUB_REF" == "refs/tags/"* ]]; then
EXTRA_ARGS=""
fi
if [[ "$GITHUB_EVENT_HEAD_REPO_FORK" == "true" ]]; then
DIFF=".."
fi
echo "::group::changed-files-diff-sha"
if [[ -n $INPUT_PATH ]]; then
@@ -47,6 +52,8 @@ fi
if [[ -z $GITHUB_BASE_REF ]]; then
echo "Running on a push event..."
TARGET_BRANCH=$GITHUB_REFNAME
CURRENT_BRANCH=$TARGET_BRANCH
echo "::debug::Getting HEAD SHA..."
if [[ -n "$INPUT_UNTIL" ]]; then
@@ -62,14 +69,11 @@ if [[ -z $GITHUB_BASE_REF ]]; then
CURRENT_SHA=$(git rev-list -n 1 HEAD 2>&1) && exit_status=$? || exit_status=$?
else
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH"
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH" origin "$CURRENT_BRANCH"
CURRENT_SHA=$INPUT_SHA; exit_status=$?
fi
fi
TARGET_BRANCH=$(git name-rev --name-only "$CURRENT_SHA" 2>&1) && exit_status=$? || exit_status=$?
CURRENT_BRANCH=$TARGET_BRANCH && exit_status=$? || exit_status=$?
echo "::debug::Verifying the current commit SHA: $CURRENT_SHA"
git rev-parse --quiet --verify "$CURRENT_SHA^{commit}" 1>/dev/null 2>&1 && exit_status=$? || exit_status=$?
@@ -121,14 +125,14 @@ if [[ -z $GITHUB_BASE_REF ]]; then
fi
else
if [[ -z "$PREVIOUS_SHA" ]]; then
echo "::error::Unable to locate a previous commit"
echo "::error::Unable to locate a previous commit."
exit 1
fi
fi
fi
else
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH"
git fetch $EXTRA_ARGS -u --progress --deepen="$INPUT_FETCH_DEPTH" origin "$CURRENT_BRANCH"
PREVIOUS_SHA=$INPUT_BASE_SHA
fi
@@ -158,6 +162,9 @@ else
# shellcheck disable=SC2086
git fetch -u --progress $EXTRA_ARGS --depth="$INPUT_FETCH_DEPTH" origin +refs/heads/"$TARGET_BRANCH":refs/remotes/origin/"$TARGET_BRANCH"
git branch --track "$TARGET_BRANCH" origin/"$TARGET_BRANCH" 2>/dev/null || true
else
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --depth="$INPUT_FETCH_DEPTH" origin +"$GITHUB_REF":refs/remotes/origin/"$CURRENT_BRANCH"
fi
echo "::debug::Getting HEAD SHA..."
@@ -197,10 +204,10 @@ else
PREVIOUS_SHA=$(git rev-parse origin/"$CURRENT_BRANCH" 2>&1) && exit_status=$? || exit_status=$?
fi
else
PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA && exit_status=$? || exit_status=$?
PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA
if ! git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA"..."$CURRENT_SHA" 1>/dev/null 2>&1; then
PREVIOUS_SHA=$(git rev-parse origin/"$TARGET_BRANCH" 2>&1) && exit_status=$? || exit_status=$?
if ! git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA$DIFF$CURRENT_SHA" 1>/dev/null 2>&1; then
PREVIOUS_SHA=$(git merge-base "$PREVIOUS_SHA" "$CURRENT_SHA" 2>&1) && exit_status=$? || exit_status=$?
fi
fi
@@ -208,6 +215,31 @@ else
PREVIOUS_SHA=$GITHUB_EVENT_PULL_REQUEST_BASE_SHA && exit_status=$? || exit_status=$?
fi
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "false" ]]; then
if [[ -f .git/shallow ]]; then
depth=$INPUT_FETCH_DEPTH
max_depth=$INPUT_MAX_FETCH_DEPTH
for ((i=0; i<max_depth; i+=depth)); do
echo "Fetching $i commits..."
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --deepen="$i" origin +"$GITHUB_REF":refs/remotes/origin/"$CURRENT_BRANCH"
if git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA$DIFF$CURRENT_SHA" 1>/dev/null 2>&1; then
break
fi
done
if ((i >= max_depth)); then
echo "::error::Unable to locate a common ancestor between $TARGET_BRANCH and $CURRENT_BRANCH with: $PREVIOUS_SHA$DIFF$CURRENT_SHA"
exit 1
fi
else
echo "::debug::Not a shallow clone, skipping merge-base check."
fi
fi
echo "::debug::Previous SHA: $PREVIOUS_SHA"
else
PREVIOUS_SHA=$INPUT_BASE_SHA && exit_status=$? || exit_status=$?
@@ -216,29 +248,6 @@ else
echo "::debug::Target branch: $TARGET_BRANCH"
echo "::debug::Current branch: $CURRENT_BRANCH"
if [[ "$INPUT_SINCE_LAST_REMOTE_COMMIT" == "false" ]]; then
if [[ -f .git/shallow ]]; then
depth=$INPUT_FETCH_DEPTH
max_depth=$INPUT_MAX_FETCH_DEPTH
while ! git diff --name-only --ignore-submodules=all "$PREVIOUS_SHA"..."$CURRENT_SHA" 1>/dev/null; do
echo "Fetching $depth commits..."
# shellcheck disable=SC2086
git fetch $EXTRA_ARGS -u --progress --deepen="$depth" origin +"$GITHUB_REF":refs/remotes/origin/"$CURRENT_BRANCH"
if [[ $depth -gt $max_depth ]]; then
echo "::error::Unable to locate a common ancestor between $TARGET_BRANCH and $CURRENT_SHA"
exit 1
fi
depth=$((depth + 300))
done
else
echo "::debug::Not a shallow clone, skipping merge-base check."
fi
fi
echo "::debug::Verifying the previous commit SHA: $PREVIOUS_SHA"
git rev-parse --quiet --verify "$PREVIOUS_SHA^{commit}" 1>/dev/null 2>&1 && exit_status=$? || exit_status=$?

View File

@@ -10,7 +10,7 @@ INPUT_SEPARATOR="${INPUT_SEPARATOR//$'\r'/'%0D'}"
GITHUB_OUTPUT=${GITHUB_OUTPUT:-""}
DIFF="..."
if [[ -z $GITHUB_BASE_REF ]]; then
if [[ -z $GITHUB_BASE_REF || "$GITHUB_EVENT_HEAD_REPO_FORK" == "true" ]]; then
DIFF=".."
fi
@@ -24,6 +24,31 @@ if [[ -n $INPUT_DIFF_RELATIVE ]]; then
git config --global diff.relative "$INPUT_DIFF_RELATIVE"
fi
function get_dirname_max_depth() {
while IFS='' read -r line; do
local dir="$line"
local dirs=()
IFS='/' read -ra dirs <<<"$dir"
local max_depth=${#dirs[@]}
local input_dir_names_max_depth="${INPUT_DIR_NAMES_MAX_DEPTH:-$max_depth}"
if [[ -n "$input_dir_names_max_depth" && "$input_dir_names_max_depth" -lt "$max_depth" ]]; then
max_depth="$input_dir_names_max_depth"
fi
local output="${dirs[0]}"
local depth="1"
while [ "$depth" -lt "$max_depth" ]; do
output="$output/${dirs[${depth}]}"
depth=$((depth + 1))
done
echo "$output"
done < <(uniq)
}
function get_diff() {
local base="$1"
local sha="$2"
@@ -43,17 +68,17 @@ function get_diff() {
fi
if [ -n "$sub_commit_cur" ]; then
(
cd "$sub" && (
# the strange magic number is a hardcoded "empty tree" commit sha
get_diff "${sub_commit_pre:-4b825dc642cb6eb9a060e54bf8d69288fbee4904}" "${sub_commit_cur}" "$filter" | awk -v r="$sub" '{ print "" r "/" $0}'
(
cd "$sub" && (
# the strange magic number is a hardcoded "empty tree" commit sha
get_diff "${sub_commit_pre:-4b825dc642cb6eb9a060e54bf8d69288fbee4904}" "${sub_commit_cur}" "$filter" | awk -v r="$sub" '{ print "" r "/" $0}'
)
)
)
fi
done < <(git submodule | awk '{print $2}')
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$?
git diff --diff-filter="$filter" --name-only --ignore-submodules=all "$base$DIFF$sha" | xargs -I {} dirname {} | get_dirname_max_depth | uniq && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get changed directories between: $base$DIFF$sha"
@@ -80,24 +105,24 @@ function get_renames() {
exit 1
fi
sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[+]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$?
sub_commit_cur="$(git diff "$base$DIFF$sha" -- "$sub" | { grep '^[+]Subproject commit' || true; } | awk '{print $3}')" && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get current commit for submodule ($sub) between: $base$DIFF$sha"
exit 1
fi
if [ -n "$sub_commit_cur" ]; then
(
cd "$sub" && (
# the strange magic number is a hardcoded "empty tree" commit sha
get_renames "${sub_commit_pre:-4b825dc642cb6eb9a060e54bf8d69288fbee4904}" "${sub_commit_cur}" | awk -v r="$sub" '{ print "" r "/" $0}'
(
cd "$sub" && (
# the strange magic number is a hardcoded "empty tree" commit sha
get_renames "${sub_commit_pre:-4b825dc642cb6eb9a060e54bf8d69288fbee4904}" "${sub_commit_cur}" | awk -v r="$sub" '{ print "" r "/" $0}'
)
)
)
fi
done < <(git submodule | awk '{print $2}')
if [[ "$INPUT_DIR_NAMES" == "true" ]]; then
git log --name-status --ignore-submodules=all "$base" "$sha" | { grep -E "^R" || true; } | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | uniq && exit_status=$? || exit_status=$?
git log --name-status --ignore-submodules=all "$base" "$sha" | { grep -E "^R" || true; } | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' | xargs -I {} dirname {} | get_dirname_max_depth | uniq && exit_status=$? || exit_status=$?
if [[ $exit_status -ne 0 ]]; then
echo "::error::Failed to get renamed directories between: $base$sha"
@@ -145,19 +170,19 @@ if [[ "$INPUT_HAS_CUSTOM_PATTERNS" == "false" ]]; then
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | awk -v d="$INPUT_OLD_NEW_FILES_SEPARATOR" '{s=(NR==1?s:s d)$0}END{print s}')
fi
else
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ADDED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" A | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
COPIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" C | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
DELETED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" D | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" M | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
RENAMED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" R | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
TYPE_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" T | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
UNMERGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" U | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
UNKNOWN=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" X | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_CHANGED_AND_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "*ACDMRTUX" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_CHANGED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMR" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_MODIFIED=$(get_diff "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" "ACMRD" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
if [[ $INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES == "true" ]]; then
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}'| jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
ALL_OLD_NEW_RENAMED=$(get_renames "$INPUT_PREVIOUS_SHA" "$INPUT_CURRENT_SHA" | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}' | jq -R 'split("|") | @json' | sed -r 's/^"|"$//g' | tr -s /)
fi
fi
else
@@ -183,13 +208,13 @@ else
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_changed::true"
else
echo "any_changed=true" >> "$GITHUB_OUTPUT"
echo "any_changed=true" >>"$GITHUB_OUTPUT"
fi
else
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_changed::false"
else
echo "any_changed=false" >> "$GITHUB_OUTPUT"
echo "any_changed=false" >>"$GITHUB_OUTPUT"
fi
fi
@@ -197,7 +222,7 @@ else
if [[ -n $ALL_OTHER_CHANGED ]]; then
if [[ -n "$ALL_CHANGED" ]]; then
OTHER_CHANGED=$(echo "${ALL_OTHER_CHANGED}|${ALL_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort | uniq -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
OTHER_CHANGED=$(echo "${ALL_OTHER_CHANGED}|${ALL_CHANGED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort | uniq -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
else
OTHER_CHANGED=$ALL_OTHER_CHANGED
fi
@@ -216,15 +241,15 @@ else
echo "::set-output name=only_changed::false"
echo "::set-output name=other_changed_files::$OTHER_CHANGED"
else
echo "only_changed=false" >> "$GITHUB_OUTPUT"
echo "other_changed_files=$OTHER_CHANGED" >> "$GITHUB_OUTPUT"
echo "only_changed=false" >>"$GITHUB_OUTPUT"
echo "other_changed_files=$OTHER_CHANGED" >>"$GITHUB_OUTPUT"
fi
elif [[ -n "${ALL_CHANGED}" ]]; then
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=only_changed::true"
else
echo "only_changed=true" >> "$GITHUB_OUTPUT"
echo "only_changed=true" >>"$GITHUB_OUTPUT"
fi
fi
@@ -235,13 +260,13 @@ else
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_modified::true"
else
echo "any_modified=true" >> "$GITHUB_OUTPUT"
echo "any_modified=true" >>"$GITHUB_OUTPUT"
fi
else
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_modified::false"
else
echo "any_modified=false" >> "$GITHUB_OUTPUT"
echo "any_modified=false" >>"$GITHUB_OUTPUT"
fi
fi
@@ -249,7 +274,7 @@ else
if [[ -n $ALL_OTHER_MODIFIED ]]; then
if [[ -n "$ALL_MODIFIED" ]]; then
OTHER_MODIFIED=$(echo "${ALL_OTHER_MODIFIED}|${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort | uniq -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
OTHER_MODIFIED=$(echo "${ALL_OTHER_MODIFIED}|${ALL_MODIFIED}" | awk '{gsub(/\|/,"\n"); print $0;}' | sort | uniq -u | awk -v d="|" '{s=(NR==1?s:s d)$0}END{print s}')
else
OTHER_MODIFIED=$ALL_OTHER_MODIFIED
fi
@@ -268,14 +293,14 @@ else
echo "::set-output name=only_modified::false"
echo "::set-output name=other_modified_files::$OTHER_MODIFIED"
else
echo "only_modified=false" >> "$GITHUB_OUTPUT"
echo "other_modified_files=$OTHER_MODIFIED" >> "$GITHUB_OUTPUT"
echo "only_modified=false" >>"$GITHUB_OUTPUT"
echo "other_modified_files=$OTHER_MODIFIED" >>"$GITHUB_OUTPUT"
fi
elif [[ -n "${ALL_MODIFIED}" ]]; then
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=only_modified::true"
else
echo "only_modified=true" >> "$GITHUB_OUTPUT"
echo "only_modified=true" >>"$GITHUB_OUTPUT"
fi
fi
@@ -286,13 +311,13 @@ else
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_deleted::true"
else
echo "any_deleted=true" >> "$GITHUB_OUTPUT"
echo "any_deleted=true" >>"$GITHUB_OUTPUT"
fi
else
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=any_deleted::false"
else
echo "any_deleted=false" >> "$GITHUB_OUTPUT"
echo "any_deleted=false" >>"$GITHUB_OUTPUT"
fi
fi
@@ -318,14 +343,14 @@ else
echo "::set-output name=only_deleted::false"
echo "::set-output name=other_deleted_files::$OTHER_DELETED"
else
echo "only_deleted=false" >> "$GITHUB_OUTPUT"
echo "other_deleted_files=$OTHER_DELETED" >> "$GITHUB_OUTPUT"
echo "only_deleted=false" >>"$GITHUB_OUTPUT"
echo "other_deleted_files=$OTHER_DELETED" >>"$GITHUB_OUTPUT"
fi
elif [[ -n "${DELETED}" ]]; then
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=only_deleted::true"
else
echo "only_deleted=true" >> "$GITHUB_OUTPUT"
echo "only_deleted=true" >>"$GITHUB_OUTPUT"
fi
fi
if [[ "$INPUT_JSON" == "false" ]]; then
@@ -383,7 +408,7 @@ if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=all_changed_files::$ALL_CHANGED"
echo "::set-output name=all_modified_files::$ALL_MODIFIED"
else
cat <<EOF >> "$GITHUB_OUTPUT"
cat <<EOF >>"$GITHUB_OUTPUT"
added_files=$ADDED
copied_files=$COPIED
deleted_files=$DELETED
@@ -402,7 +427,7 @@ if [[ $INPUT_INCLUDE_ALL_OLD_NEW_RENAMED_FILES == "true" ]]; then
if [[ -z "$GITHUB_OUTPUT" ]]; then
echo "::set-output name=all_old_new_renamed_files::$ALL_OLD_NEW_RENAMED"
else
echo "all_old_new_renamed_files=$ALL_OLD_NEW_RENAMED" >> "$GITHUB_OUTPUT"
echo "all_old_new_renamed_files=$ALL_OLD_NEW_RENAMED" >>"$GITHUB_OUTPUT"
fi
fi

View File

@@ -7,7 +7,8 @@
"prConcurrentLimit": 5,
"rebaseWhen": "behind-base-branch",
"addLabels": [
"dependencies"
"dependencies",
"merge when passing"
],
"assignees": [
"jackton1"

View File

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

1
test/test2/test.txt Normal file
View File

@@ -0,0 +1 @@
Lorem ipsum dolor sit amet, consectetur adip eget, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

1
test/test2/test3/new.txt Normal file
View File

@@ -0,0 +1 @@
Test file.

View File

@@ -0,0 +1 @@
Test file.