diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index ad494cb3a49e1f28d6c0d384b02aa0238c8b0269..dee1ca24ab4fe85cb5dc3e18a02817091c35de0c 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -99,10 +99,17 @@ jobs:
         if: runner.os == 'Windows'
         run: choco install nsis-unicode
 
+      - name: Determine source branch
+        id: which-branch
+        uses: secondlife/viewer-build-util/which-branch@v1
+        with:
+          token: ${{ github.token }}
+
       - name: Build
         id: build
         shell: bash
         env:
+          AUTOBUILD_VCS_BRANCH: ${{ steps.which-branch.outputs.branch }}
           RUNNER_OS: ${{ runner.os }}
         run: |
           # set up things the viewer's build.sh script expects
@@ -153,7 +160,7 @@ jobs:
           }
           repo_branch()
           {
-            git -C "$1" branch | grep '^* ' | cut -c 3-
+            echo "$AUTOBUILD_VCS_BRANCH"
           }
           record_dependencies_graph()
           {
@@ -195,11 +202,6 @@ jobs:
           fi
           export PYTHON_COMMAND_NATIVE="$(native_path "$PYTHON_COMMAND")"
 
-          # branch will be something like "origin/mybranch"
-          branch="$(git branch -r --contains ${{ github.event.pull_request.head.sha || github.sha }} | head -n 1)"
-          # strip off "origin/"
-          export AUTOBUILD_VCS_BRANCH="${branch#*/}"
-
           ./build.sh
 
           # Each artifact is downloaded as a distinct .zip file. Multiple jobs