commit bdb2c825e91a3972245065d9d2fa25bb6298ea27
parent 069658b0644c3db880efd776ddc36928e047a7cc
Author: $: DAΞMON <zer0sec.xp@icloud.com>
Date: Thu, 13 Aug 2026 00:55:24 +0100
ci: weekly PayloadsAllTheThings sync workflow
Adds a scheduled (Mon 06:17 UTC) + manual workflow that clones upstream
at HEAD, runs scripts/sync-payloads.py, builds to validate, and opens a
PR on any content diff. PR-gated so upstream restructuring is reviewed
before deploy.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Diffstat:
1 file changed, 59 insertions(+), 0 deletions(-)
diff --git a/.github/workflows/sync-payloads.yml b/.github/workflows/sync-payloads.yml
@@ -0,0 +1,59 @@
+name: Sync PayloadsAllTheThings
+
+on:
+ schedule:
+ - cron: '17 6 * * 1' # Mondays 06:17 UTC
+ workflow_dispatch:
+
+permissions:
+ contents: write
+ pull-requests: write
+
+concurrency:
+ group: sync-payloads
+ cancel-in-progress: false
+
+jobs:
+ sync:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout site
+ uses: actions/checkout@v4
+
+ - name: Clone upstream at HEAD
+ run: |
+ git clone --depth 1 https://github.com/swisskyrepo/PayloadsAllTheThings /tmp/patt
+ echo "SHA=$(git -C /tmp/patt rev-parse HEAD)" >> "$GITHUB_ENV"
+ echo "SHORT=$(git -C /tmp/patt rev-parse --short HEAD)" >> "$GITHUB_ENV"
+
+ - name: Sync content
+ run: python3 scripts/sync-payloads.py /tmp/patt "$SHA"
+
+ - name: Setup Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: 22
+ cache: npm
+
+ - name: Install
+ run: npm ci
+
+ - name: Build (validate the sync)
+ run: npm run build
+
+ - name: Open PR on change
+ uses: peter-evans/create-pull-request@v7
+ with:
+ branch: sync/payloads
+ base: main
+ commit-message: 'sync: PayloadsAllTheThings @ ${{ env.SHORT }}'
+ title: 'sync: PayloadsAllTheThings @ ${{ env.SHORT }}'
+ body: |
+ Automated mirror of [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings) at `${{ env.SHA }}`.
+
+ Generated by `scripts/sync-payloads.py`. Review the content diff before merging — upstream may add, rename, or restructure topics.
+ add-paths: |
+ src/content/payloads
+ vendor/PayloadsAllTheThings
+ payloads-manifest.json
+ delete-branch: true