Files
2026-11-10 21:44:49 +01:00

48 lines
1.4 KiB
YAML

name: BSI WID CSAF Mirror
on:
workflow_dispatch:
schedule:
- cron: '23 */4 * * *'
permissions:
contents: write
concurrency:
group: vuln-bsi-sync
cancel-in-progress: false
jobs:
mirror:
runs-on: vuln-runner
timeout-minutes: 360
steps:
- name: Sync BSI CSAF using persistent Git checkout
env:
GITEA_JOB_TOKEN: ${{ secrets.GITEA_TOKEN }}
CACHE_ROOT: /var/lib/act_runner/cache/vuln-bsi
REPO_URL: https://git.apex-project.de/VULN/vuln-bsi.git
run: |
set -Eeuo pipefail
# Workflow runs from Gitea's job workspace; cache repo may not exist yet.
# On first run, fetch script from repository using authenticated Git.
umask 077
tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT
cat > "$tmpdir/askpass" <<'EOF'
#!/bin/sh
case "$1" in
*Username*) printf '%s\n' 'oauth2' ;;
*Password*) printf '%s\n' "$GITEA_JOB_TOKEN" ;;
esac
EOF
chmod 700 "$tmpdir/askpass"
export GIT_ASKPASS="$tmpdir/askpass" GIT_TERMINAL_PROMPT=0
if [ ! -f "$CACHE_ROOT/repo/scripts/run-cached.sh" ]; then
git clone --depth 1 --branch main "$REPO_URL" "$tmpdir/bootstrap"
exec_path="$tmpdir/bootstrap/scripts/run-cached.sh"
else
exec_path="$CACHE_ROOT/repo/scripts/run-cached.sh"
fi
bash "$exec_path"