Dashboard › publish › Distillation
82797d92-a3d8-4353-9b6d-5765ad08a369["lore_tm_v1_VSBavMaBk2dpoY0uc22HU52V4g8rDmWFusFoYe1sk1M","lore_tm_v1_Bgs0F6EM4e3VQFPrPb0hzcvsSgVOQdqNH8iLSYB1fBE","lore_tm_v1_Emtpnz2KaojNL1WRcDjskE3bwtRTYkvFLTesmEYkF7c","lore_tm_v1_KPsgudpFr4lLBTKbASEPQJMQH34sC5Lv29ZYPzRt0Yc","lore_tm_v1_SEUugGUjnYeHiiLZcPO-0L4ev0TqrbL-8AYC3U9FM_M","lore_tm_v1_qkEDwGtmc0-sqoVkPdRVBrAyA9fB9z8tggyG-d0TBDM","lore_tm_v1_UQq6vrJ0ambvpSSuWJTk5yrdesB9MaNPama0sW4PCxM","lore_tm_v1_C-N8PrOiV0aU21hmVxZ5clENlLY7Kivx7cKstERbpnw","lore_tm_v1_wEPdq0uY3mbyFsO-gyLJ2D8pkHy8a_zDtBSaDJPJJUM","lore_tm_v1_xdub5h2wHnNeL1zLVpHfiWLsL0L-7Tk21VX0CTkcdLs","lore_tm_v1_ChewDFE3zpP7Dg92dzK4WNScUddY2iZat4u328EE1Fo","lore_tm_v1_5tLVJwkCCH1Zmmkf4qJ5kFZdV4QFg1-payEPzlfGVhE","lore_tm_v1_CT88royzAYWIp53sE4jyiZ2UGsCmFhECmeuMCjucMIM","lore_tm_v1_wDnBK4wza8AeHbLNqABsp6iPwbzjx25yR5KVBk8y4_E","lore_tm_v1_piBnUxQMqBscVQzvjxwFYpHAVoYb3DVlnOj9FLDIy8M","lore_tm_v1_3_LPs-xDPeSlpoL7AHD7NP-UwGUu82i5SURDKOXssRg"]
Date: Sep 9, 2026
/home/byk/Code/getsentry/publish must be read-only: never edit files./home/byk/Code/getsentry/publish, including changed and untracked files, for security/correctness regressions involving approval proofs, self-approval, live request/event binding, CI-ready behavior, the final Craft fence, failure cleanup, dispatch trust, and immutable references.git diff --check.file:line evidence, ending exactly with MERGE or DO-NOT-MERGE; if blocked, the report must state the exact blocker and end with DO-NOT-MERGE.main...origin/main [behind 1]..github/workflows/auto-approve.yml, .github/workflows/ci-poller.yml, .github/workflows/cocoapods-keepalive.yml, .github/workflows/publish.yml, .github/workflows/test.yml, AGENTS.md, README.md, docs/key_rotation_vault_changes.md, docs/rfc.md, src/libs/__tests__/github.js, src/libs/github.js, src/modules/__tests__/details-from-context.js, src/modules/__tests__/update-issue.js, src/modules/details-from-context.js, src/modules/post-workflow-details.js, src/modules/process-end-state.js, src/modules/update-issue.js, src/publish/inputs.js, src/publish/post-result.js, src/publish/post-workflow-details.js, and src/publish/update-issue.js..github/workflows/ci-poller-dispatch.yml, .lore.md, src/modules/__tests__/approval-attestation.js, src/modules/__tests__/approval-authorizer.js, src/modules/approval-attestation.js, src/modules/approval-authorizer.js, src/publish/__tests__/authorize-approval.js, src/publish/__tests__/auto-approval-workflow.js, src/publish/__tests__/ci-poller-workflow.js, src/publish/__tests__/current-accepted-event.js, src/publish/__tests__/publish-workflow.js, src/publish/__tests__/record-auto-approval-attestation.js, src/publish/__tests__/record-ci-ready-attestation.js, src/publish/__tests__/validate-approval-attestation.js, src/publish/__tests__/workflow-action-pinning.js, src/publish/authorize-approval.js, src/publish/current-accepted-event.js, src/publish/record-auto-approval-attestation.js, src/publish/record-ci-ready-attestation.js, and src/publish/validate-approval-attestation.js..github/workflows/ci-poller-dispatch.yml workflow; protected production environment secrets enforce that an arbitrarily dispatched ref cannot add them..github/workflows/ci-poller-dispatch.yml defines name: Run CI Status Poller, triggers via workflow_dispatch, sets permissions: {}, uses a dispatch job on ubuntu-latest, binds it to environment: production, and runs only ":".workflow_dispatch can target any ref, the CI poller checkout is intended to use trusted code rather than the dispatched ref.ci-ready after it changes; every poll cycle must bind to the current accepted-label event before inspecting CI.ci-ready..github/workflows/auto-approve.yml runs for newly opened issues only when the actor is sentry-release-bot[bot] or getsantry[bot] and the title begins with publish: . It checks out auto-approve-repos.txt, creates an App token using vars.SENTRY_INTERNAL_APP_ID and secrets.SENTRY_INTERNAL_APP_PRIVATE_KEY, runs node src/publish/record-auto-approval-attestation.js, posts the generated attestation with ${{ github.token }}, parses the repository from the issue title, and adds the accepted label with the App token only if the repository exactly matches a line in auto-approve-repos.txt..github/workflows/auto-approve.yml pins actions to immutable commit references: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 and actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1..github/workflows/test.yml runs on pushes to main and pull requests with contents: read, uses Node 24, runs yarn install --frozen-lockfile on cache miss, then runs yarn test; actions are pinned to actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803, actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38, and actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830..github/workflows/cocoapods-keepalive.yml runs daily at midnight UTC (0 0 * * *) on macos-15 in the production environment, exposes secrets.COCOAPODS_TRUNK_TOKEN as COCOAPODS_TRUNK_TOKEN, installs CocoaPods, prints its version, and runs pod trunk me > /dev/null 2>&1; its comment states CocoaPods sessions currently expire after 3 days of inactivity (VALIDITY_LENGTH).