Dashboard › craft › Distillation
6f9719c4-79a9-4d21-9597-229868a64f49["lore_tm_v1_tF8ykJDyTear2a6pTzEyaMLxyAUqyLaslIPiDoDe4Vk","lore_tm_v1_Zf5Tbzg-ARFs51d_v3Eg-v6w81nOgi6G8lO3hFsrJS0","lore_tm_v1_AU2q8ZFAcreg25Pt5UgtYBl4d110YX6eXWevFKLCQi8","lore_tm_v1_ArNaQQdO7ACPvpGXaEPyu1D1Ze6_LFU2pOKTmLRmRDY","lore_tm_v1_BN3rF0qL0V2ZCkxJ3nowkaFHqlt6EemtctfSYboVYz0","lore_tm_v1_pkmhxPfJGnAJfp6J7glD4qWBvqlpLZ5yycAjp_elvoM","lore_tm_v1_CTl_mXUF2p9Rlfr0eD6qkcEI4mTmjeC9MQYLdnn4rzs","lore_tm_v1_3aaTg3aGeORUk0r7khlFCih2P7jCoeL7LkOPrkzvZFU","lore_tm_v1_-626GakhqEAFpvXusF6T-Eyi9VZatUr_GPGc60IEKLk","lore_tm_v1_WQmNKGkRaC3hvKE8Wx-tMWFglKdHQ1_VsXkbh5jHJFo","lore_tm_v1_pp7qJLoTy-Q2FdEUyr4DRQG3ViA9i8ssS7opDhwOoBY","lore_tm_v1_djhGPDC7WzsbqWBEFAg5f-cL8Qww1bErrfJildsrt-g"]
Date: Aug 28, 2026
/home/byk/Code/getsentry/publish-workspace-acceptance/package.json and untracked /home/byk/Code/getsentry/publish-workspace-acceptance/pnpm-lock.yaml untouched.ci-ready after CI passes; the waiting-for-ci workflow removes ci-ready first so a fresh labeled event triggers publish.yml..github/workflows/publish.yml: it parses issue inputs before target checkout, has protected-branch/default checkout logic, performs Set targets before Docker Craft publishing, computes canonical state CWD/path and workspace Base64URL state prefix, passes secure state identity/environment to Craft, and invokes docker://getsentry/craft:latest.src/modules/details-from-context.js: detailsFromContext({ context }) requires context.payload.issue; parses title with /^publish: (?:getsentry\/)?(?<repo>[A-Za-z0-9_.-]+)(?<path>\/[\w./-]+)?(?: \[workspace: (?<workspace>"(?:[^"\\]|\\.)*")\] )?@(?<version>[\w.+-]+)$/; parses optional JSON workspace; rejects malformed workspace JSON with Invalid publish workspace JSON in title: '<title>'; rejects empty or /[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u workspace names; converts absent title path to "."; rejects .. path segments; extracts optional Merge target: <[\w.\-/]+>; extracts checked target IDs; and returns repo, version, path, dry_run, merge_target, targets, and optional workspace.src/publish/inputs.js: it imports @actions/github, @actions/core, and detailsFromContext; inputs() calls detailsFromContext({ context: github.context }) and sets the complete result as the result action output via core.setOutput('result', result)..github/workflows/ci-poller.yml must always allow workflow_dispatch for manual recovery..github/workflows/ci-poller.yml: it runs on cron */5 * * * * and workflow_dispatch with optional attempt default "0"; the job condition is vars.CI_POLLER_HAS_PENDING == 'true' || github.event_name == 'workflow_dispatch'; it uses ci-status-poller concurrency with cancel-in-progress: false; lists up to 200 open issues carrying both ci-pending and accepted; extracts repository/version from issue title and the CI SHA from a /commit/<40-hex-SHA>/checks body link; resolves check-suite head_branch and branch-head SHA with fallback to the issue SHA; updates the issue check-runs link when branch head moved; treats success, neutral, and skipped check conclusions as passing; requires at least one status or check run; on pass removes ci-pending and adds ci-ready; on failures removes ci-pending and accepted and adds ci-failed; syncs CI_POLLER_HAS_PENDING; and self-dispatches ci-poller.yml up to 60 attempts before relying on cron fallback.src/publish/update-issue.js, src/publish/post-workflow-details.js, src/publish/post-result.js, src/publish/inputs.js, src/modules/update-issue.js, src/modules/process-end-state.js, src/modules/post-workflow-details.js, src/modules/details-from-context.js, src/modules/__tests__/publish-workflow.js, src/modules/__tests__/update-issue.js, src/modules/__tests__/process-end-state.js, src/modules/__tests__/post-workflow-details.js, src/modules/__tests__/details-from-context.js, src/libs/github.js, and src/libs/__tests__/github.js.src/modules/__tests__/details-from-context.js: existing tests cover legacy publish: getsentry/sentry@21.3.1 parsing, checked target extraction, + versions, default merge-target omission, JSON title workspaces including cli/v2, escaped cli [preview] "next", safe Unicode cli-日本語, rejection of legacy titles with a space before @version, malformed cli\qnext JSON, empty/newline/NUL/tab/bidi/U+2028/U+2029 workspace values, traversal title getsentry/toolkit/../other@1.2.3, and missing issue context./home/byk/Code/getsentry/craft-workspace-action-propagation/src/commands/workspace_cmds/list.ts: it imports getWorkspaceNames from ../../config and formatJson from ../../utils/strings, exports command = ['list'], describes itself as List defined release workspaces as a JSON array, and prints formatJson(getWorkspaceNames()).package.json declares Node 24.0.0, Yarn 1.22.22, scripts test: "vitest run", test:watch: "vitest", lint: "eslint src .github --ignore-pattern '!.github'", and prettier: "prettier --write src"; devDependency peggy remains pinned at "5.1.0"./home/byk/Code/getsentry/publish-workspace-acceptance contains .eslintrc.js, .git, .github/, .gitignore, AGENTS.md, auto-approve-repos.txt, docs/, LICENSE, node_modules/, package.json, pnpm-lock.yaml, README.md, src/, vitest.config.js, and yarn.lock; the untracked pnpm-lock.yaml remains present alongside the repository’s yarn.lock.