diff --git a/.github/workflows/check-todos.yml b/.github/workflows/check-todos.yml new file mode 100644 index 00000000..9916f0b7 --- /dev/null +++ b/.github/workflows/check-todos.yml @@ -0,0 +1,34 @@ +name: "Check for TODOs" + +on: + pull_request: + +jobs: + check-todos: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Scan for TODO strings + run: | + echo "Scanning codebase for TODOs..." + + git grep -nE "TODO" -- . ':(exclude).github/workflows/*' > todos_found.txt || true + + if [ -s todos_found.txt ]; then + echo "❌ ERROR: Found TODOs in the following files:" + echo "-------------------------------------------" + + while IFS=: read -r file line content; do + echo "::error file=$file,line=$line::TODO found at $file:$line - must be resolved before merge:%0A$content" + done < todos_found.txt + + echo "-------------------------------------------" + echo "Please resolve these TODOs or track them in an issue before merging." + + exit 1 + else + echo "✅ No TODOs found. Codebase is clean!" + exit 0 + fi