48 lines
1.4 KiB
YAML
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"
|