https://github.com/amezin/compare-commit-files-action
Check whether specific files were changed in a pull request or push
https://github.com/amezin/compare-commit-files-action
action actions github-action github-actions github-api
Last synced: 4 months ago
JSON representation
Check whether specific files were changed in a pull request or push
- Host: GitHub
- URL: https://github.com/amezin/compare-commit-files-action
- Owner: amezin
- License: mit
- Created: 2025-06-07T13:49:28.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-10-04T01:55:06.000Z (4 months ago)
- Last Synced: 2025-10-04T03:37:49.849Z (4 months ago)
- Topics: action, actions, github-action, github-actions, github-api
- Language: TypeScript
- Homepage:
- Size: 1.02 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Compare commits' files
Check whether the specified files were changed in a pull request or push
(or between two arbitrary commits).
This action uses GitHub API and not `git` CLI,
so it won't work for local commits that weren't pushed to GitHub.
Intended use: skip jobs or steps if relevant files were not changed.
## Inputs
### `repository`
The owner and repository name, in `owner/name` format.
**Default**: `${{ github.repository }}` -
the repository where the workflow was triggered.
### `files`
File path/name glob patterns to check, one pattern per line.
No default value. Required input.
Patterns starting with `!` exclude files.
Last matched pattern determines whether to include or exclude the file.
Only files are matched. To include directories, use `dir/**` syntax.
Only Unix path separator `/` is used, even on Windows.
See [minimatch](https://www.npmjs.com/package/minimatch) documentation
for syntax details.
### `base`
Base commit/branch to compare.
**Default**: Pull request/merge group base branch/commit.
Or the previous branch head for `push` event.
### `head`
Head commit/branch to compare.
**Default**: `${{ github.event.pull_request.merge_commit_sha }}` for `pull_request_target` event,
otherwise `${{ github.sha }}` - the "current commit" or merge commit for pull requests.
> [!NOTE]
> There is a special case for `pull_request_target` event -
> because `${{ github.sha }}` will be the head of the base branch for `pull_request_target`.
### `github-token`
GitHub API token to use.
**Default**: `${{ github.token }}`
## Outputs
### `changed`
`true` if a change in `files` was detected, `false` otherwise.
There is no output with a file list, because GitHub API can return
an incomplete list of changed files (it returns up to 300 files) - see
https://docs.github.com/en/rest/commits/commits?apiVersion=2022-11-28#compare-two-commits.
When an incomplete list is detected, `changed` is always set to `true`,
even if the list doesn't contain any file matching `files` input.