Dashboard › craft › Distillation
2da33c83-1754-4942-8f3a-85545a5bb914["lore_tm_v1_DskfVatiOJGcGb55A_mPvn3wfyN0jskBp62qmAdKn6Q","lore_tm_v1_BW-PHlO8M5C2Eo_4r4DyijZnnd5AT1sXN_arpdBRYgA","lore_tm_v1_LMhGreKKZIwlH9TRLOrEsWrH6IbmL_DGwLh2dsMqnZE","lore_tm_v1_6D00Xn4YWXps2xmNx9FzICKbyB4axg2sNtZujtY2BuE","lore_tm_v1_hWjKwxcAiwxhT9xa1k84cxEosrzhztgJ8jKi9GlMuXE","lore_tm_v1_LDij-lEgIjAWpHRgdFdIopRXzrUtHtNRsa0qhu0aX0I","lore_tm_v1_jSO4jS0f5G6k51Chlvs0mLwmRQ8dsPmmXacYW6xRIfw","lore_tm_v1_iTDaHDFWU5T9wLYYp-j-jbrhj8uebSJvpuB45sbocHg","lore_tm_v1_PEvqEF7KkDMGnm1r0l-faCsMA3pRdE_aL5fl5-otngo","lore_tm_v1_x3Lwlf10ivdXuY-zjd4ehy1QBhsi4IR1aCTgsMEF6fc"]
Date: Aug 29, 2026
default switch case such as throw new Error(\Unknown status: '${status}'`)`.AGENTS.md describes the Sentry Publish repository as a GitHub Actions approval system for releases across Sentry projects using Craft; it is a CommonJS JavaScript project on Node.js 24.0.0.package.json, and no npm; commands are yarn install, yarn test, yarn test:watch, yarn test src/modules/__tests__/update-issue.js, yarn test -t "pattern", yarn lint, and yarn prettier.src/libs/ contains shared utilities and __tests__/; src/modules/ contains reusable core business logic and __tests__/; src/publish/ contains GitHub Actions entry points.details-from-context.js and update-issue.js; tests in same-named __tests__/ subdirectories; camelCase variables/functions; UPPER_SNAKE_CASE constants/regexes; CommonJS (require/module.exports) source files and ES modules (import/export) test files; imports ordered Node built-ins, external packages, then local modules; double-quoted strings and required semicolons under default Prettier settings.fs.existsSync(CRAFT_STATE_FILE_PATH) before reading state files.vi.mock("@actions/github"), vi.mock("@actions/core"), or an fs implementation; import the module under test after mocks; inline snapshots use toMatchInlineSnapshot.@actions/core, @actions/github, and @sentry/node; common async parallel-execution pattern is await Promise.all([operation1(), operation2()]).feat/workspace-action-propagation is at commit 6dae341f9bc1378abde7a9022108caded2d22226 (feat: propagate release workspaces), based on 21270a1d12a60b461c51fba93bd076b90d9cf4af (feat(config): add release workspaces).action.yml, docs/src/content/docs/targets/github.md, src/__tests__/action.test.ts, src/__tests__/config.test.ts, src/commands/__tests__/publish.test.ts, src/commands/publish.ts, src/config.ts, src/index.ts, and src/schemas/project_config.ts; untracked paths are src/commands/workspace.ts and src/commands/workspace_cmds/. Relative to base, .github/workflows/release.yml is also modified.feat/workspace-acceptance is at b658ffa0299fedf78c9dd9a2121cd740691ca157 (fix: validate publish workspace JSON); origin/master does not exist, while origin/main is available..github/workflows/publish.yml, docs/publish-issue-format.md, package.json, src/modules/__tests__/details-from-context.js, src/modules/__tests__/publish-workflow.js, src/modules/details-from-context.js, src/modules/post-workflow-details.js, src/publish/inputs.js, and yarn.lock; untracked files include pnpm-lock.yaml, scripts/, src/modules/__tests__/publish-location.js, src/modules/__tests__/release-revision.js, src/modules/publish-issue-title.js, src/modules/publish-issue-title.peggy, src/modules/publish-location.js, src/modules/release-revision.js, src/publish/resolve-location.js, and src/publish/resolve-release-revision.js.83d210b29553ea6f4d97508821724a834c43856e (origin/main); branch commits are 33de3f1 (feat: accept workspace publish requests) and b658ffa (fix: validate publish workspace JSON). Base-to-branch changes additionally include .github/workflows/cocoapods-keepalive.yml, README.md, src/modules/__tests__/update-issue.js, and src/modules/update-issue.js, whereas the current worktree diff does not modify those files.4da4a25 chore: replace deprecated trimRight() with trimEnd() (#9012).action.yml, docs/src/content/docs/targets/github.md, src/__tests__/action.test.ts, src/__tests__/config.test.ts, src/commands/__tests__/publish.test.ts, src/commands/publish.ts, src/config.ts, src/index.ts, and src/schemas/project_config.ts.action.yml validation now passes inputs.path as PATH_INPUT; rejects nonempty WORKSPACE when PATH_INPUT != '.' with The path and workspace inputs cannot be used together.; and restricts nonempty workspace names to /^[A-Za-z0-9_.-]+$/, rejecting all other names with an ASCII-only error.runActionStep() gained pathInput = '.' and locale = 'C' arguments, sets LC_ALL and PATH_INPUT, and tests workspace validation under en_US.utf8, option-looking workspace names, and compact workspace paths in publish request titles.cli: { github: { owner: 'getsentry', repo: 'toolkit' } } is allowed, while a partial override containing only projectPath: 'cli' is rejected; tests also cover __proto__, empty workspace maps, and github.projectPath.checkWorkspacesMinVersion(config) replacing inline min-version gating, workspace GitHub-field merging, and handling preserving an own workspace entry.pnpm; never use npm or yarn.src/commands/workspace.ts, src/commands/workspace_cmds/list.ts, and src/commands/workspace_cmds/__tests__/list.test.ts.src/commands/workspace.ts defines yargs command workspace <command>, description Manage release workspaces, requires a subcommand via yargs.demandCommand().command(list), and has a no-op handler().src/commands/workspace_cmds/list.ts defines workspace list, described as List defined release workspaces as a JSON array; its handler() calls console.log(formatJson(getWorkspaceNames())).src/commands/workspace_cmds/__tests__/list.test.ts mocks getWorkspaceNames and formatJson; verifies exact configured workspace names ['cli', 'mcp.v2'] print as ["cli","mcp.v2"], and no configured workspaces print [].