Dashboard › craft › Distillation
1ed98edf-5170-4da1-9f23-bda589343e3c["lore_tm_v1_W50xl6Cy60dBYHAwWQtb4fd06fntijJdDJkwYbONPCU","lore_tm_v1_bVMzD5ICNYWyP8yUveZPGf8Hyb91Ali_3b3e28Ly05s","lore_tm_v1_fCg8k3k6q3YZW7xvk2A00-uBjxwMaZBI_F_fREC19hg","lore_tm_v1_UQCijQKZXJcRjbwaxjySjrq88kbrCblk3r7srCgEZGo"]
Date: Aug 28, 2026
src/modules/__tests__/update-issue.js lines 61, 160, and 179; src/modules/__tests__/details-from-context.js lines 19 and 78; docs/publish-issue-format.md line 61; .github/workflows/publish.yml line 236; and .github/workflows/ci-poller.yml lines 107, 148, 169, 173, 189, 195–197, 202, 230, 234, and 243..github/workflows/ci-poller.yml extracts a commit SHA from the issue body’s “View check runs” link, fetches/paginates check runs, handles missing check runs/statuses and pending checks, and on failures comments with links formatted as https://github.com/${repo}/commit/${sha}/checks/; failed CI and failed commit-status comments instruct users to re-add the accepted label after CI is fixed.src/modules/__tests__/publish-workflow.js imports spawnSync from "child_process"; mkdtempSync, readFileSync, rmSync, and writeFileSync from "fs"; tmpdir from "os"; join from "path"; and afterEach, expect, and test from "vitest".src/modules/__tests__/publish-workflow.js defines temporaryDirectories = []; getSetTargetsScript() reads .github/workflows/publish.yml, extracts the Set targets shell script using / {6}- name: Set targets[\s\S]*? {8}run: \|\n(?<script>[\s\S]*?)\n {6}- uses: docker:\/\/getsentry\/craft:latest/, throws new Error("Missing Set targets workflow script") if absent, and removes 10-space YAML indentation with .replace(/^ {10}/gm, "").src/modules/__tests__/publish-workflow.js defines runSetTargets({ path, repo, version, workspace = "" }), creates a temporary publish-workflow-test- directory and github-output file, then runs the extracted workflow script with bash -e -c. Its environment sets CRAFT_PUBLISH_PATH, CRAFT_PUBLISH_REPO, CRAFT_PUBLISH_TARGETS_JSON to ["github"], CRAFT_PUBLISH_VERSION, CRAFT_PUBLISH_WORKSPACE, GITHUB_OUTPUT, and GITHUB_WORKSPACE; it asserts exit status 0, reads state_file= from output, and returns { stateFile, state }.src/modules/__tests__/publish-workflow.js cleanup uses afterEach to remove every directory in temporaryDirectories via rmSync(directory, { recursive: true, force: true }).src/modules/__tests__/publish-workflow.js test 1, "uses Craft's legacy root state filename", calls runSetTargets({ path: ".", repo: "sentry", version: "21.3.1" }); expects a state-file suffix matching \.craft-state\/craft\/publish-state-getsentry-sentry-c232c383e26f-21\.3\.1\.json$ and JSON state { published: { github: true } }.src/modules/__tests__/publish-workflow.js test 2, "matches Craft's workspace state filename for a monorepo release", calls runSetTargets({ path: "./cli", repo: "toolkit", version: "1.2.3", workspace: "cli" }); expects a state-file suffix matching \.craft-state\/craft\/publish-state-getsentry-toolkit-21cf7beaeda4-workspace-Y2xp-1\.2\.3\.json$ and JSON state { published: { github: true } }.