Skip to content

Populate security-review.md with content #4

Populate security-review.md with content

Populate security-review.md with content #4

Workflow file for this run

name: Lint and Validate
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
shellcheck:
name: Shell Script Linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
with:
scandir: 'scripts'
format: gcc
severity: error
yaml-lint:
name: YAML Linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run yamllint
uses: karancode/yamllint-github-action@v2.3.1
with:
yamllint_file_or_dir: '.'
yamllint_strict: false
yamllint_comment: true
markdown-lint:
name: Markdown Linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run markdownlint
uses: DavidAnson/markdownlint@v3
with:
globs: |
**/*.md
!node_modules/**
json-validate:
name: JSON Validation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate JSON files
run: |
find . -name "*.json" -not -path "./.git/*" | while read -r file; do
echo "Validating $file"
python3 -m json.tool "$file" > /dev/null || exit 1
done
file-structure:
name: Validate File Structure
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check required files exist
run: |
required_files=(
"README.md"
"LICENSE"
".gitignore"
"templates/terraform/CLAUDE.md"
"templates/kubernetes/CLAUDE.md"
"templates/python/CLAUDE.md"
"templates/cicd/CLAUDE.md"
"prompts/iac-generation.md"
"prompts/debugging.md"
"prompts/migration.md"
"prompts/security-review.md"
"scripts/setup-claude-project.sh"
"scripts/bulk-review.sh"
"scripts/generate-docs.sh"
)
missing_files=()
for file in "${required_files[@]}"; do
if [[ ! -f "$file" ]]; then
missing_files+=("$file")
fi
done
if [[ ${#missing_files[@]} -gt 0 ]]; then
echo "Missing required files:"
printf ' - %s\n' "${missing_files[@]}"
exit 1
fi
echo "All required files present"
scripts-executable:
name: Check Scripts are Executable
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check script permissions
run: |
scripts=(
"scripts/setup-claude-project.sh"
"scripts/bulk-review.sh"
"scripts/generate-docs.sh"
)
for script in "${scripts[@]}"; do
if [[ ! -x "$script" ]]; then
echo "Script $script is not executable"
exit 1
fi
done
echo "All scripts are executable"