A workflow is a blob in Git 1,932 's object database (Git), and a run always uses the workflow as it exists in the commit it runs for, GITHUB_SHA (4943462 above). Pull requests add refs that GitHub 29 maintains, visible from any clone; in the fork from First Pull Request Etiquette, whose pull request is still open:
git -C ../booknest ls-tree --abbrev=7 4943462 .github/workflows/
git ls-remote origin 'refs/pull/*'
git fetch -q origin refs/pull/1/merge && git log --oneline --graph -3 FETCH_HEAD | cut -c1-72100644 blob 3bc68df .github/workflows/inside-a-job.yml 3f5f3838dd465d16ae19efe4340c40de90728d59 refs/pull/1/head 5e043d406ba7ca3843d91c0918fff4f48e955691 refs/pull/1/merge * 5e043d4 Merge 3f5f3838dd465d16ae19efe4340c40de90728d59 into d0dd1f61 |\ | * 3f5f383 Describe the Octocat image for screen readers |/ * d0dd1f6 Pointing to the guide for forking
refs/pull/1/head is the branch tip; refs/pull/1/merge is a test merge into the base, recreated when either side moves and dropped when the pull request closes. A pull_request workflow checks out that merge commit, so CI tests the result of merging. Everything else a run produces lives outside Git: logs, artifacts and caches sit in GitHub's storage (logs and artifacts for 90 days by default), and the API answers a request for this run's logs with HTTP/2 303 to https://results-receiver.actions.githubusercontent.com/ 743 .... None of it enlarges the repository or survives a clone.