Config File Validator is a lightweight GitHub Action that checks whether required configuration files exist in a repository.
It is useful for keeping repositories consistent by requiring files such as .editorconfig, .gitignore, .env.example, .npmrc, .prettierrc, CODEOWNERS, or other project-level configuration files.
Create a workflow file such as .github/workflows/config-file-validator.yml:
name: Config File Validator
on:
pull_request:
push:
branches:
- main
jobs:
validate-config-files:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Check required config files
uses: brandonhimpfen/config-file-validator@v1By default, the action checks for:
.editorconfig
.gitignore
.env.example
Use required-files to define the files your project requires.
- name: Check required config files
uses: brandonhimpfen/config-file-validator@v1
with:
required-files: '.editorconfig,.gitignore,.env.example,.prettierrc'You can also use a multiline list:
- name: Check required config files
uses: brandonhimpfen/config-file-validator@v1
with:
required-files: |
.editorconfig
.gitignore
.env.example
CODEOWNERSUse base-path when the required files should be checked inside a specific directory.
- name: Check app config files
uses: brandonhimpfen/config-file-validator@v1
with:
base-path: apps/web
required-files: '.env.example,.npmrc'By default, the action fails when required files are missing.
Set fail-on-missing to false to report missing files as warnings only.
- name: Check required config files
uses: brandonhimpfen/config-file-validator@v1
with:
fail-on-missing: 'false'| Input | Description | Required | Default |
|---|---|---|---|
required-files |
Comma-separated or newline-separated list of required config files. | No | .editorconfig,.gitignore,.env.example |
fail-on-missing |
Whether the action should fail when required files are missing. | No | true |
base-path |
Directory to check from. | No | . |
| Output | Description |
|---|---|
checked-files |
Comma-separated list of all files checked. |
found-files |
Comma-separated list of required files that were found. |
missing-files |
Comma-separated list of required files that were missing. |
missing-count |
Number of missing required files. |
- name: Check required config files
id: config_files
uses: brandonhimpfen/config-file-validator@v1
with:
required-files: '.editorconfig,.gitignore,.env.example'
- name: Print missing files
run: echo "Missing files: ${{ steps.config_files.outputs.missing-files }}"with:
required-files: '.editorconfig,.gitignore,.env.example,README.md,LICENSE'with:
required-files: '.editorconfig,.gitignore,.env.example,package.json'with:
required-files: 'README.md,LICENSE,CODE_OF_CONDUCT.md,CONTRIBUTING.md,SECURITY.md'The action checks files relative to base-path and rejects paths that attempt to escape that directory.
For example, ../.env will not be checked outside the configured base path.
This project is licensed under the MIT License.