name: Sync Exploit Archives on: workflow_dispatch: schedule: - cron: '50 4 * * *' permissions: contents: write concurrency: group: repository-updates cancel-in-progress: false jobs: ScheduledRun: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v7 - name: Set up Python uses: actions/setup-python@v7 with: python-version: '3.13' - name: Pull ExploitDB, Metasploit and Vulhub into the index run: python3 scripts/sync_exploits.py - name: Verify the generated index run: | python3 -m unittest discover -s tests python3 scripts/build_site.py - name: Check for changes and commit run: | git config user.name 'CVE-BOT' git config user.email 'cve@codepwn.win' git add --all -- index/cve_dates.json index/cve_record_state.json cves/ if git diff --cached --quiet; then echo "No changes to commit" exit 0 fi git commit -m "Sync exploit archives $(date -u +'%Y-%m-%d') :robot:" for attempt in 1 2 3; do if git push origin HEAD:main; then exit 0 fi echo "Push rejected; replaying onto the current main (attempt $attempt)" git fetch --unshallow origin main 2>/dev/null || git fetch origin main git rebase FETCH_HEAD done exit 1