Dashboard › craft › Distillation
5d11c3bb-09a4-428f-ae3f-9cac14fd1599["lore_tm_v1_v0cG4fKT2JcTjKaZgE0yg-xWMPjssORucZVZrtBZcS4","lore_tm_v1_kIJTkEVxrGUWHaTon1m52_PxhdYv1RmB2HSMvyV4BS4","lore_tm_v1_DK6qmKcCbaMIqYE5-1ipg8KdblrDCfOb3CffLr4UDIk","lore_tm_v1_47ITFd5eO2jWp9KdzSkAbNhEVgECVhVy832pgWmOXyI"]
Date: Sep 8, 2026
.craft.yml always means checkout-path behavior.docs/publish-issue-format.md defines publish issues as release requests: title identifies the release; body supplies merge target and selected targets; hand-edited titles must remain valid under the documented format.src/modules/publish-issue-title.peggy: PublishIssueTitle = "publish: " "getsentry/"? repo:Repository path:Path? "@" version:Version !.; it returns { repo, path: path || "", version }. RepositoryCharacter and PathSegment use [A-Za-z0-9_.-]; Version uses [A-Za-z0-9_.+-]+.publish: getsentry/sentry@21.3.1 and publish: getsentry/toolkit/packages/cli@1.2.3.[A-Za-z0-9_.-]+; ., .., __proto__, and segments beginning with - are forbidden, while Craft preserves valid segment spelling exactly. Repository identities follow the same safe-token rule and also cannot be ., .., __proto__, or begin with -.4.2.6+sentry1 is valid. getsentry/ is optional when parsing existing issue titles.View check runs link, the controller uses craft workspace list to obtain concrete workspace paths if checkout root has .craft.yml; a suffix exactly matching a listed path is a workspace, while every other suffix remains a checkout path. Discovery errors when root configuration exists fail the release.Requested by: @<actor>, Merge target: <branch-or-(default)>, then Quick links: containing exactly one - [View changes](compare-url) followed by exactly one - [View check runs](checks-url) for the checkout repository.Merge target is mandatory; (default) means the target repository default branch, and branch names may use letters, digits, _, ., /, and -.### Targets section uses checkbox entries - [ ] <target-id>; the workflow reads checked - [x] <target-id> entries. Checked targets are skipped because they were already published or explicitly user-skipped, and can be retried by unchecking them.accepted label starts CI waiting. Publishing requires the CI poller to add a fresh ci-ready label to an open accepted issue that has neither ci-pending nor ci-failed; dry-run requests enable dry-run mode.package.json identifies the private publish package, version 0.0.1, as an Apache-2.0 approval-based publishing system for Sentry; repository is git@github.com:getsentry/publish.git, author is Sentry Open Source <oss@sentry.io>.24.0.0 and Yarn 1.22.22; undici resolution is ^6.23.0. Scripts: generate runs node scripts/generate-publish-issue-title-parser.js; check:generated adds --check; test runs yarn check:generated && vitest run; test:watch runs vitest; lint runs eslint src .github --ignore-pattern '!.github'; prettier runs prettier --write src.@actions/core ^2.0.0, @actions/github ^7.0.0, and @sentry/node ^10.0.0; dev dependencies include peggy 5.1.0, vitest ^4.1.0, eslint ^8.9.0, eslint-config-prettier ^8.3.0, eslint-plugin-yml ^0.13.0, and prettier ^2.2.1.yarn check:generated completed successfully: node scripts/generate-publish-issue-title-parser.js --check finished in 0.59s.eslint src .github --ignore-pattern '!.github' finished in 1.10s.