This action works to prevent both:
- Large files that are not LFS tracked
- Files that are LFS tracked
from being checked-in in non-pointer format/not stored in LFS. The latter happens if the client does not have git-lfs installed.
This action scans files in commits of a pull request and will mark the pull request as failed, add a lfs-detected!
label and reply with an issue comment if any of the following is true about any of the pull request files:
- The file size is greater than the configured file size limit threshold.
- The file is tracked in LFS but is being checked-in as a regular file
- the current implementation of this check is that the file has git attribute
filter: lfs
but does not contain the stringversion https://git-lfs.github.com/spec/v1
- the current implementation of this check is that the file has git attribute
Note: Remember to configure the branch protection rule and select the LFS-warning
status when you enable the Required status check to pass
option.
Optional. set's the file size limit threshold. Accepts b
(bytes), mb
(megabytes) and gb
(gigabytes) as units of measurement, if omitted interprets as bytes.
Default 10mb
.
Optional. Takes a valid GitHub Token from the Repo by default.
Optional. A newline delimited list of glob patterns that match checked in files to exclude form LFS Warning.
Optional. The name of the label, defaults to lfs-detected!
Optional. The color of the label, defaults to ff1493.
Returns an array of possible detected large file(s)
Consume the action by referencing the stable release
uses: ppremk/lfs-warning@v3.2
with:
token: ${{ secrets.GITHUB_TOKEN }} # Optional
filesizelimit: 10MB
exclusionPatterns: |
**/*.png