diff --git a/.github/workflows/backup.yml b/.github/workflows/backup.yml index 1c92a01..659b627 100644 --- a/.github/workflows/backup.yml +++ b/.github/workflows/backup.yml @@ -23,13 +23,24 @@ jobs: sudo apt-get -y install restic - name: Trigger backup export run: | + # needed for sanity check + NUMBER=$(gh api \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer $GH_TOKEN" \ + -H "X-GitHub-Api-Version: 2022-11-28" repos/$REPO/pulls --jq '.[0].number') + TITLE=$(gh api \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer $GH_TOKEN" \ + -H "X-GitHub-Api-Version: 2022-11-28" repos/$REPO/pulls --jq '.[0].title') ID=$(gh api --method POST /user/migrations \ --raw-field "repositories[]=$REPO" \ --field lock_repositories=false \ --field exclude_git_data=true --jq '.id') # define some ENV vars needed below + echo "LATEST_PR_NUMBER=$NUMBER" >>$GITHUB_ENV + echo "LATEST_PR_TITLE=$TITLE" >>$GITHUB_ENV echo "EXPORT_ID=$ID" >>$GITHUB_ENV - echo "REPO_NAME=${{ github.event.repository.name }}" >> $GITHUB_ENV + echo "REPO_NAME=${{ github.event.repository.name }}" >>$GITHUB_ENV - name: Wait until backup is finished run: | while true; do @@ -46,12 +57,12 @@ jobs: -o "archive.tgz" "$ARCHIVE_URL" - name: Sanity check run: | - TITLE_LATEST_PR=$(gh api \ - -H "Accept: application/vnd.github+json" \ - -H "Authorization: Bearer $GH_TOKEN" \ - -H "X-GitHub-Api-Version: 2022-11-28" repos/$REPO/pulls --jq '.[0].title') - zgrep -a -B3 "$TITLE_LATEST_PR" archive.tgz || { - echo "Latest PR title not found in archive.tgz" + # Make sure that we have the latest PR information + # title and corresponding number (from URL) + zgrep -a -B3 "$LATEST_PR_TITLE" archive.tgz | + grep "\"url\":" | + grep -q "https://github.com/$REPO/pull/$LATEST_PR_NUMBER" || { + echo "Latest PR not found in archive.tgz" exit 1 } - name: Save backup (restic)