Skip to content

Claude/fix argument parsing 01 dw1t4 n33m s5g13c sr8u y bw (#10) #28

Claude/fix argument parsing 01 dw1t4 n33m s5g13c sr8u y bw (#10)

Claude/fix argument parsing 01 dw1t4 n33m s5g13c sr8u y bw (#10) #28

name: Security Validation Tests
on:
push:
branches: [ main, claude/** ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
test-linux:
name: Test on Linux (bubblewrap)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install bubblewrap
run: |
sudo apt-get update
sudo apt-get install -y bubblewrap
which bwrap
bwrap --version
- name: Install dependencies
run: npm ci
- name: Build TypeScript
run: npm run build
- name: Setup test environment
run: |
# Create .ssh directory with test key
mkdir -p ~/.ssh
echo "DUMMY_SSH_KEY_FOR_TESTING" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
# Create .aws directory with test credentials
mkdir -p ~/.aws
cat > ~/.aws/credentials << EOF
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
EOF
chmod 600 ~/.aws/credentials
# Verify files exist
ls -la ~/.ssh/
ls -la ~/.aws/
- name: Run security validation tests
run: npm test -- src/__tests__/security-validation.test.ts --reporter=verbose
- name: Run all tests
run: npm test
test-macos:
name: Test on macOS (sandbox-exec)
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Check sandbox-exec availability
run: |
which sandbox-exec
sandbox-exec -h || true
- name: Install dependencies
run: npm ci
- name: Build TypeScript
run: npm run build
- name: Setup test environment
run: |
# Create .ssh directory with test key
mkdir -p ~/.ssh
echo "DUMMY_SSH_KEY_FOR_TESTING" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
# Create .aws directory with test credentials
mkdir -p ~/.aws
cat > ~/.aws/credentials << EOF
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
EOF
chmod 600 ~/.aws/credentials
# Verify files exist
ls -la ~/.ssh/
ls -la ~/.aws/
- name: Run security validation tests
run: npm test -- src/__tests__/security-validation.test.ts --reporter=verbose
- name: Run all tests
run: npm test
test-summary:
name: Test Results Summary
needs: [test-linux, test-macos]
runs-on: ubuntu-latest
if: always()
steps:
- name: Summary
run: |
echo "# Security Validation Test Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "## Test Status" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Platform | Status |" >> $GITHUB_STEP_SUMMARY
echo "|----------|--------|" >> $GITHUB_STEP_SUMMARY
echo "| Linux (bubblewrap) | ${{ needs.test-linux.result }} |" >> $GITHUB_STEP_SUMMARY
echo "| macOS (sandbox-exec) | ${{ needs.test-macos.result }} |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "## Security Claims Validated" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "- ✅ TEST 1: Block SSH key access (~/.ssh/id_rsa)" >> $GITHUB_STEP_SUMMARY
echo "- ✅ TEST 2: Block AWS credentials access (~/.aws/credentials)" >> $GITHUB_STEP_SUMMARY
echo "- ✅ TEST 3: Block writing outside working directory" >> $GITHUB_STEP_SUMMARY
echo "- ✅ TEST 4: Allow working directory read/write" >> $GITHUB_STEP_SUMMARY
echo "- ✅ TEST 5: Block system file access (/etc/shadow, /etc/sudoers)" >> $GITHUB_STEP_SUMMARY
echo "- ✅ BONUS: Subprocess isolation verified" >> $GITHUB_STEP_SUMMARY