Dashboard › craft › Distillation
530433be-d16a-4ea8-9014-9f88e475b7d4["lore_tm_v1_Qp00B4x1HpU_zB2u41Do5pcF_PfXAngyHz-e_bzKCdQ","lore_tm_v1_BVlVH8JvVyK2wyIXLdY21MJ9NCKmG5oCGdzKUaZEzBU","lore_tm_v1_qcF4zl6vVuazvdUCD4DIblPwKqOGfxFapQaRHsSnjbE","lore_tm_v1_tN47YMu_fMg6gNwVf13U8lcKBJUo46RugU6YSP8PgNo","lore_tm_v1_vyUYI7kjjiWYN7tGag7W7nc-QV2RjtW84tbaz58s61o","lore_tm_v1_XuphZ3jUE-qq4Cv-WG17Tph9925BuM0iZcJqSYpoaCc","lore_tm_v1_o9zTjysJuWtw7wDZ2yGwqJpWX19mjcg8dKN61S46-3I","lore_tm_v1_DI0Y0j9vQQ8LtPE14DadkA29n9arx67FFDtqKmprJKU","lore_tm_v1_dLDbb03tkcUMxHPhYWIE61i47uOuO72fFWfiHOLZW7Y"]
Date: Sep 8, 2026
src/publish/post-workflow-details.js invokes postWorkflowDetails from ../modules/post-workflow-details.js with {context, octokit}; context is github.context, and octokit is github.getOctokit(getGitHubToken()).generateDocumentation() accepted a malformed extra generated-title-grammar marker.bash -n..craft.yml always means checkout-path behavior.publish: ; optional getsentry/ prefix; repository and path segments match [A-Za-z0-9_.-]+; version matches [A-Za-z0-9_.+-]+; parsed output is { repo, path: path || "", version }.publish: getsentry/sentry@21.3.1 and publish: getsentry/toolkit/packages/cli@1.2.3.[A-Za-z0-9_.-]+, excluding ., .., __proto__, and segments beginning with -; Craft preserves exact spelling.., .., __proto__, or begin with -; Craft semantic versions are required, and build metadata such as 4.2.6+sentry1 is valid.View check runs link; with root .craft.yml, craft workspace list provides exact concrete workspace paths, an exactly matching suffix is a workspace, and every other suffix is a checkout path; discovery errors with root configuration fail the release.getsentry/ remains optional when parsing existing issues, and paths may use only safe workspace segments.Requested by: @<actor>, blank line, Merge target: <branch-or-(default)>, blank line, Quick links:, blank line, exactly one - [View changes](compare-url) followed by exactly one - [View check runs](checks-url) for the checkout repository.Assign the **accepted** label to this issue to approve the release. and a ### Targets section with - [ ] <target-id>; checked targets are skipped, unchecking retries a target.Merge target is required; (default) means the target repository default branch; branch names may contain letters, digits, _, ., /, and -.### Targets, preserves checked entries when Craft refreshes an existing request, and on failed release updates target checkboxes from the secure Craft publish-state file; checked targets are skipped on retry unless manually unchecked.accepted starts CI waiting; publishing begins only when CI poller adds fresh ci-ready to an open accepted issue lacking ci-pending and ci-failed; dry-run enables dry-run mode.scripts/generate-publish-issue-title-parser.js reads grammar from src/modules/publish-issue-title.peggy, generates CommonJS parser source with Peggy start rules PublishIssueTitle, ReleaseRevision, and CheckRunsLinkCount, formats it with Prettier, and writes src/modules/publish-issue-title.js.scripts/generate-publish-issue-title-parser.js extracts grammar delimited by // BEGIN TITLE GRAMMAR and // END TITLE GRAMMAR, then updates the corresponding documentation block in docs/publish-issue-format.md.<!-- BEGIN GENERATED TITLE GRAMMAR --> and <!-- END GENERATED TITLE GRAMMAR --> markers, requiring exactly one each; it replaces the exact begin/end block using /<!-- BEGIN GENERATED TITLE GRAMMAR -->\n[\s\S]*?<!-- END GENERATED TITLE GRAMMAR -->/.--check mode throws The generated publish issue title parser is stale. Run \yarn generate`.whensrc/modules/publish-issue-title.jsdiffers, andThe generated publish issue title documentation is stale. Run `yarn generate`.whendocs/publish-issue-format.md` differs.src/publish/resolve-ci-poller-input.js lines 4–5 load issue body from process.env.PUBLISH_ISSUE_BODY_FILE via readFileSync(process.env.PUBLISH_ISSUE_BODY_FILE, "utf8") when the environment variable is set..github/workflows/ci-poller.yml, .github/workflows/publish.yml, docs/publish-issue-format.md, scripts/generate-publish-issue-title-parser.js, src/modules/__tests__/details-from-context.js, src/modules/__tests__/publish-workflow.js, src/modules/__tests__/release-revision.js, src/modules/details-from-context.js, src/modules/publish-issue-title.js, src/modules/publish-issue-title.peggy, src/modules/release-revision.js, src/publish/inputs.js, src/publish/resolve-ci-poller-input.js, src/publish/resolve-location.js, and src/publish/resolve-release-revision.js.src/modules/__tests__/generate-publish-issue-title-parser.js, src/publish/__tests__/, and src/publish/discover-location.js; src/publish/__tests__/ contains discover-location.js, resolve-location.js, and resolve-release-revision.js tests.generateDocumentation() in scripts/generate-publish-issue-title-parser.js:27-49 accepts malformed marker-like extras because it counts only exact markers before replacing a valid pair; probe with a valid pair plus <!-- BEGIN GENERATED TITLE GRAMMAR -- > returned successfully. Existing tests in src/modules/__tests__/generate-publish-issue-title-parser.js:7-28 cover missing and duplicate exact markers but not malformed extras alongside a valid pair..github/workflows/publish.yml:120, .github/workflows/publish.yml:159, .github/workflows/test.yml:19, and .github/workflows/auto-approve.yml:16 remain non-v7; only .github/workflows/ci-poller.yml:52 uses v7..github/workflows/ci-poller.yml:95-163, but no tests cover resolver failure, invalid/missing .issueBody, no-edit behavior, temporary-file cleanup, or exact trailing-byte preservation; existing src/modules/__tests__/ci-poller-input.js:41-53 only checks resolver reference.exit 0 is valid (.github/workflows/ci-poller.yml:95-108,255); extracted shell block passed bash -n.gh issue edit (.github/workflows/ci-poller.yml:152-163), so resolver failure cannot edit the issue body.jq -ejr requires string .issueBody; only successful decoding reaches --body-file, preventing empty/truncated resolver JSON body updates (.github/workflows/ci-poller.yml:157-163).jq input/output usage (.github/workflows/ci-poller.yml:103,157-158) and indexed SHA replacement in src/modules/release-revision.js:38-45 preserve trailing body bytes/newlines and all non-SHA bytes.EXIT trap removes all allocated temporary files (.github/workflows/ci-poller.yml:99-103).scripts/generate-publish-issue-title-parser.js:27-36); malformed marker rejection remains FAIL.Requested by and requires Merge target, Quick links, View changes, and check-runs link (src/modules/publish-issue-title.peggy:39-47); only this validated header supplies merge_target (src/modules/details-from-context.js:54-57,72).getsentry/, parsed repository must exactly equal title repository (src/modules/publish-issue-title.peggy:46, src/modules/release-revision.js:25-29), SHA must be lowercase 40 characters with exact /checks path (src/modules/publish-issue-title.peggy:46,50-55, src/modules/release-revision.js:3-5,38-45), and the full body must contain exactly one canonical-label check-runs link (src/modules/release-revision.js:7-14, src/modules/publish-issue-title.peggy:59-62).src/publish/inputs.js:5-10, src/publish/resolve-location.js:5-22, and src/publish/resolve-release-revision.js:5-8 serialize JSON and provide valid JSON fallbacks for absent inputs..github/workflows/publish.yml:159-174 checks out the resolved exact SHA before discovery; src/publish/discover-location.js:33-42 throws for malformed discovery output, failing closed.workflow_dispatch (.github/workflows/ci-poller.yml:3-24); intentional craft:latest remains used for discovery/publication (src/publish/discover-location.js:27, .github/workflows/publish.yml:231).yarn check:generated; documentation markers exist in docs/publish-issue-format.md:12-41.a81ab03; git diff --check a81ab03 passed.yarn test --printConsoleTrace passed with 87 tests; yarn lint passed; extracted CI-poller shell block passed bash -n; git diff --check a81ab03 passed.