Dashboard › publish › Distillation
7e2c3062-958c-4d68-abd4-0d778feb5f7c["lore_tm_v1_tdjQUwydEmTMhudfBSSKyq4JReH3BbvcSla7SDHFeMM"]
Date: Sep 8, 2026
src/libs/github.js reformatted getGitHubToken()’s missing-token error construction without changing its full runtime message (No "GITHUB_TOKEN" environment variable found. Please ensure the workflow is configured correctly), while src/libs/__tests__/github.js was changed to expect only No "GITHUB_TOKEN" environment variable found.—creating a test/implementation message mismatch.src/modules/details-from-context.js extracted title parsing into exported PUBLISH_TITLE_REGEX and parsePublishTitle(title). The regex accepts publish: titles with optional getsentry/, repository [^/@]+, optional path /[\w./-]+, and version [\w.+-]+; parsePublishTitle() returns named groups or null.detailsFromContext() in src/modules/details-from-context.js now calls parsePublishTitle(context.payload.issue.title) and throws Invalid publish issue title: ${context.payload.issue.title} when parsing fails, rather than dereferencing .groups from a failed match.src/modules/__tests__/details-from-context.js added coverage confirming parsePublishTitle("publish: getsentry/sentry-javascript/packages/core@10.0.0") returns { path: "/packages/core", repo: "sentry-javascript", version: "10.0.0" } and legacy parsePublishTitle("publish: sentry-javascript@10.0.0") returns { path: undefined, repo: "sentry-javascript", version: "10.0.0" }.src/modules/update-issue.js changed updateIssue({ context, octokit, inputs }) so Craft target restoration runs only when inputs?.version exists; removal of the accepted label still always runs concurrently through Promise.all.src/modules/__tests__/update-issue.js added test removes accepted without parsed publish inputs, verifying undefined inputs does not call fs.existsSync, issues.get, or issues.update, but calls issues.removeLabel for issue "211" in getsentry/publish.src/publish/update-issue.js was refactored into exported async main(): it creates GitHub context/Octokit, parses process.env.PUBLISH_ARGS only when set, catches JSON parsing failure to warn Could not parse publish inputs; skipping target update, then awaits updateIssue({ context, octokit, inputs }).src/publish/update-issue.js now executes main() only under if (require.main === module) and catches top-level errors to console.error(error) and set process.exitCode = 1; it exports { main } for testing/reuse.src/modules/post-workflow-details.js, src/modules/process-end-state.js, src/modules/update-issue.js, src/publish/inputs.js, src/publish/post-result.js, and src/publish/post-workflow-details.js, including quote/spacing normalization and final newline additions; no intended behavioral changes were shown in those formatting-only portions.