Dashboard › publish › Distillation
cdc64c50-95b8-4937-8d84-973b7adb788a["lore_tm_v1_79k87Lc1zNOK9j-HciRGk4h_nAP0e1S-Kyq0Trc9130"]
Date: Sep 14, 2026
/home/byk/Code/getsentry/publish/src/modules/publish-issue-title.peggy showed PublishIssueTitle at lines 11–18 parses the exact prefix "publish: ", an optional "getsentry/", repo:Repository, optional path:Path, "@", and version:Version, then requires end-of-input with !.; it returns { repo, path: path || "", version }.src/modules/publish-issue-title.peggy, RepositoryCharacter at lines 23–24 permits only [A-Za-z0-9_.-]; Path at lines 26–27 consists of one or more slash-prefixed PathSegments; PathSegment uses the same RepositoryCharacter rule at lines 29–30; and Version at lines 32–33 permits [A-Za-z0-9_.+-]+.src/modules/publish-issue-title.peggy:8-10 state that a title path suffix is syntactic only and that the controller resolves the complete suffix as a workspace after checking out the CI-approved revision.ReleaseRevision at src/modules/publish-issue-title.peggy:38-39 parses header:RequestHeader followed by arbitrary remaining body content (.*) and returns the parsed header.RequestHeader at src/modules/publish-issue-title.peggy:41-48 requires, in order: Requested by: @ plus a non-newline value; Merge target: plus MergeTarget; Quick links:; a - [View changes](...) link; and a - [View check runs](https://github.com/getsentry/{repo}/commit/{revision}/checks) link with an optional trailing slash. It returns { repo, mergeTarget, revision }.CheckRunsRevision at src/modules/publish-issue-title.peggy:50-56 accepts lowercase hexadecimal [0-9a-f]+, semantically requires exactly 40 characters, and returns { value, start: range.start.offset, end: range.end.offset }.CheckRunsLinkCount at src/modules/publish-issue-title.peggy:58-62 scans the complete input through !. and counts occurrences of the literal prefix "- [View check runs](".src/modules/publish-issue-title.peggy allow spaces or tabs for Indent (lines 64–65), zero or more indented blank lines for BlankLines (lines 67–68), either newline or end-of-input for LineBoundary (lines 70–72), CRLF or LF for Newline (lines 74–76), (default) or [A-Za-z0-9_./-]+ for MergeTarget (lines 81–83), and one or more characters other than CR, LF, or ) for LinkDestination (lines 85–86).