Dashboard › publish › Distillation
25abba8d-a961-4090-b875-3724c72dbf95["lore_tm_v1_PlG2O5OoasJbc0n7Wg16rPfJSoAJH-RlkowZ5i7Eqt4","lore_tm_v1_cqL1uInw6N_xoR0z6I2bLw1d0Nd_dZ-xXoszLX4w_1g","lore_tm_v1_Y8LqHLyPsweYf74aN4bh0JIIlBDsrFWgrFTa1BpaJv4","lore_tm_v1_eUkpzcu5USzay4p7mj4fw5t1YTQ-7AStdDOHDp9Z40I","lore_tm_v1_xOJgBX5KEwAWIQGvMnEAv3DybvtgSb8-9KHBOVhdVpw","lore_tm_v1_HntG0K59IrqmqkI64MNOvgvwJQdRlz7vp6s77iD4RhA","lore_tm_v1_KoJLh6NeUjcLK4ELFRJfnvfQLUCNC-vr0L7xxx8dsKc","lore_tm_v1_RIHkSoEx0sdBclnChX_ZFlSD5HMi7oQzHDTaVDq_aic","lore_tm_v1_ViD8fdf0tlNWqRn8WKj1zY8D6IN_L4awUUSYO_dqmXw","lore_tm_v1_Ef7C49Sd_oBPbQHjxcy2RO7ksW_L_5f9-Cw08F2avuE","lore_tm_v1_T-uwKjsSv7YMDkt5IRpSKXLr-DxowAqLhNc_agsuX0Y","lore_tm_v1_e5j36E6JpeRS_8cXeQe_6ovt9nFzgxNYmlfobK0ScY4","lore_tm_v1_ZKBTFdS-XV5gaHg6YvnEYQMJETH5AHDq0ZOLUHXwed0","lore_tm_v1_c196ebpPzA7OMhfYninRK8m-ERYvHanTeqhurRa9PTk","lore_tm_v1_OaRxAg5EmE515r8Ozz10uZRHvlmlnmIkpXwG-4KICTA","lore_tm_v1_LJzBu2ZV9naysSxJ-uqlJvue3748cJrhVCD8aYXSVRg","lore_tm_v1_4MDFv0Zm7RsRBIJ8yEChy4uH8fwp9271PLUuyhq2k10","lore_tm_v1_chhhFKyiA3fI1cLzmTy1ZIYmVF5jPDyDeHAm-1T2jBA"]
Date: Aug 27, 2026
src/modules/approval-authorizer.js:5-24 lacked separation-of-duties enforcement, so a release requester with write, maintain, or admin target-repository access could self-apply accepted; the workflow never supplies requester identity, and no self-approval regression test existed.src/modules/approval-authorizer.js:14-16 allowed getsantry[bot] to bypass all target-repository authorization, without verifying that the label arose through the allowlisted auto-approval path; this could authorize arbitrary getsentry releases and violated the review’s second-person requirement.src/modules/approval-authorizer.js:3,8 reportedly rejected titles without explicit getsentry/ ownership even though src/modules/details-from-context.js:24-25 accepts them, citing publish: sentry@21.3.1; the review reported no coverage for that supported form.getsantry[bot] exception to exact release paths listed in auto-approve-repos.txt, preserving non-SDK automatic approval while preventing arbitrary-release bypass of target-repository checks..github/workflows/auto-approve.yml: workflow name auto-approve non-sdks, triggered on issues opened; it runs only when github.actor is sentry-release-bot[bot] or getsantry[bot] and issue title starts publish: ; uses actions/checkout@v4 sparse checkout of auto-approve-repos.txt, then actions/create-github-app-token@v3 with vars.SENTRY_INTERNAL_APP_ID and secrets.SENTRY_INTERNAL_APP_PRIVATE_KEY; extracts REPO via sed -n 's/^publish: \(.*\)@.*/\1/p', requires exact grep -qxF "$REPO" auto-approve-repos.txt, and adds accepted via gh issue edit "$ISSUE_URL" --add-label accepted.src/modules/approval-authorizer.js, src/publish/authorize-approval.js, and src/modules/__tests__/approval-authorizer.js; the resulting authorizer referenced undefined autoApprovedRepositories and attempted title.groups.path although the regex had no named path group.src/modules/approval-authorizer.js and src/publish/__tests__/authorize-approval.js to implement the corrected allowlist behavior, then updated src/modules/__tests__/approval-authorizer.js with regression coverage. Assistant stated the allowlist preserves monorepo paths and defaults to no bot bypass.yarn run v1.22.22 / vitest run passed: 7 test files and 33 tests—src/modules/__tests__/approval-authorizer.js (14), post-workflow-details.js (1), src/publish/__tests__/authorize-approval.js (3), update-issue.js (5), process-end-state.js (4), src/libs/__tests__/github.js (2), and details-from-context.js (4). Duration was 890ms; command completed in 1.36s.src/publish/__tests__/authorize-approval.js; assistant formatted that file, and the subsequent check reported “All matched files use Prettier code style!”ses_fbc205116ffesmEG8SWfAbIqaj started; instructions prohibited sleeping, polling for progress, requesting status, duplicating its work, or overlapping its files/topics.ses_fbc2027dbfferQZUN0ETLQ4agz started with the same no-poll/no-duplicate/no-overlap instructions..github/workflows/cocoapods-keepalive.yml:1 YAML scalar violation.