diff --git a/.bin/check-file-for-starting-slash b/.bin/check-file-for-starting-slash new file mode 100644 index 00000000..ab951d03 --- /dev/null +++ b/.bin/check-file-for-starting-slash @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# Script to verify if a file contain any entries starting with a slash and show a warning into the github action result UI. +# Received as input a list of file paths to check separated by a space. +# More precisely the result of the "tj-actions/changed-files" github action. +## References: +# See https://github.com/tj-actions/changed-files +modified_files="$1" +for modified_file in $modified_files +do + echo "[+] Check $modified_file ..." + matches=$(grep -cE '^/[a-zA-Z0-9\._]+' $modified_file) + echo "Entries identified starting with a slash: $matches" + if [ $matches -ne 0 ] + then + echo "::warning file=$modified_file,line=1,col=1,endColumn=1::$matches entries start with a slash." + fi +done diff --git a/.github/workflows/wordlist-validator_verify_entries_for_starting_with_slash.yml b/.github/workflows/wordlist-validator_verify_entries_for_starting_with_slash.yml new file mode 100644 index 00000000..cf21e2cd --- /dev/null +++ b/.github/workflows/wordlist-validator_verify_entries_for_starting_with_slash.yml @@ -0,0 +1,30 @@ +# Validate that no entry start with a "/" for every modified or added files. +# Sources: +# https://dev.to/scienta/get-changed-files-in-github-actions-1p36 +# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions +# https://github.com/marketplace/actions/changed-files +name: Wordlist Validator - Verify if any file entry start with a slash +on: + push: + paths: + - "**.txt" + pull_request: + paths: + - "**.txt" + workflow_dispatch: +jobs: + check_files_changed: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Get changed files + id: changed-files + with: + files: "**/*.txt" + uses: tj-actions/changed-files@v34 + - name: Analyze all added or modified files + run: | + chmod +x ./.bin/check-file-for-starting-slash + ./.bin/check-file-for-starting-slash "${{ steps.changed-files.outputs.all_changed_files }}"