From 02601a3017aa59d5e5dc0b3862ec805929433395 Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 13 Apr 2026 14:14:20 -0500 Subject: [PATCH 1/2] fix: fetch PR head history for Lunaria builds Fetch the PR head ref in the reusable frontend workflow before the Lunaria build so PR merge checkouts stop falling back to shallow history for new docs pages. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/ci.yml | 1 + .github/workflows/frontend-build.yml | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5e1870ca..75a56e432 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,6 +68,7 @@ jobs: uses: ./.github/workflows/frontend-build.yml with: node_version: '24.x' + pull_number: ${{ github.event_name == 'pull_request' && github.event.pull_request.number || '' }} apphost-build: needs: changes diff --git a/.github/workflows/frontend-build.yml b/.github/workflows/frontend-build.yml index d83b8f7b1..995040989 100644 --- a/.github/workflows/frontend-build.yml +++ b/.github/workflows/frontend-build.yml @@ -8,6 +8,11 @@ on: required: true default: "24.x" type: string + pull_number: + description: Pull request number when available + required: false + default: "" + type: string permissions: contents: read @@ -25,7 +30,18 @@ jobs: fetch-depth: 0 - name: Ensure full git history for Lunaria - run: git fetch --unshallow 2>/dev/null || true + env: + PULL_NUMBER: ${{ inputs.pull_number }} + run: | + if [ -n "$PULL_NUMBER" ]; then + git fetch origin \ + "+refs/pull/${PULL_NUMBER}/head:refs/remotes/pull/${PULL_NUMBER}/head" \ + --unshallow 2>/dev/null || \ + git fetch origin \ + "+refs/pull/${PULL_NUMBER}/head:refs/remotes/pull/${PULL_NUMBER}/head" + else + git fetch --unshallow 2>/dev/null || true + fi - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 with: From 34bd03d1cfd86cbc1660b5b126f7d83b84cfd95b Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 13 Apr 2026 14:38:46 -0500 Subject: [PATCH 2/2] fix: harden PR history fetch for Lunaria Validate the reusable workflow pull number input, use a clearer remote-tracking ref namespace, and avoid suppressing real fetch failures while still handling shallow PR merge checkouts correctly. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/frontend-build.yml | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/frontend-build.yml b/.github/workflows/frontend-build.yml index 995040989..2a8c67d39 100644 --- a/.github/workflows/frontend-build.yml +++ b/.github/workflows/frontend-build.yml @@ -34,13 +34,22 @@ jobs: PULL_NUMBER: ${{ inputs.pull_number }} run: | if [ -n "$PULL_NUMBER" ]; then - git fetch origin \ - "+refs/pull/${PULL_NUMBER}/head:refs/remotes/pull/${PULL_NUMBER}/head" \ - --unshallow 2>/dev/null || \ - git fetch origin \ - "+refs/pull/${PULL_NUMBER}/head:refs/remotes/pull/${PULL_NUMBER}/head" - else - git fetch --unshallow 2>/dev/null || true + case "$PULL_NUMBER" in + (*[!0-9]*) + echo "Invalid pull_number input: '$PULL_NUMBER'" >&2 + exit 1 + ;; + esac + + pull_ref="+refs/pull/${PULL_NUMBER}/head:refs/remotes/origin/pull/${PULL_NUMBER}/head" + + if [ "$(git rev-parse --is-shallow-repository)" = "true" ]; then + git fetch origin "$pull_ref" --unshallow + else + git fetch origin "$pull_ref" + fi + elif [ "$(git rev-parse --is-shallow-repository)" = "true" ]; then + git fetch --unshallow fi - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0