Dashboard › publish › Distillation
2ec0ecff-6c81-41d8-a993-29d300f09d45["lore_tm_v1_Dw6Ig7_demE5OQRk6AifEodyVgACHNGtn6zwyt03dhg"]
Date: Aug 27, 2026
src/publish/authorize-approval.js reads auto-approve-repos.txt synchronously as UTF-8, splits on /\r?\n/, filters blank lines, and returns a Set via getAutoApprovedRepositories().src/publish/authorize-approval.js GitHub API helper getGitHubResponse(path) calls fetch("https://api.github.com/${path}") with Accept: "application/vnd.github+json", Authorization: Bearer ${process.env.APPROVAL_TOKEN}, and X-GitHub-Api-Version: "2026-03-10".getPermission({ owner, repository, username }) in src/publish/authorize-approval.js requests repos/${encodeURIComponent(owner)}/${encodeURIComponent(repository)}/collaborators/${encodeURIComponent(username)}/permission; on a non-OK response it throws Could not retrieve ${username}'s permission for ${owner}/${repository}: GitHub returned ${response.status}, otherwise returns response.json().getIssue({ repository, issueNumber }) in src/publish/authorize-approval.js requests repos/${repository}/issues/${issueNumber} and throws Could not retrieve issue #${issueNumber}: GitHub returned ${response.status} on non-OK responses.getIssueEvents({ repository, issueNumber }) in src/publish/authorize-approval.js paginates repos/${repository}/issues/${issueNumber}/events?per_page=100&page=${page}, appends all page events, and stops only when a response page contains fewer than 100 events; a failed request throws Could not retrieve events for issue #${issueNumber}: GitHub returned ${response.status}.main() in src/publish/authorize-approval.js requires environment variables GITHUB_OUTPUT, APPROVAL_TOKEN, APPROVAL_ISSUE_NUMBER, and APPROVAL_ISSUE_REPOSITORY, throwing explicit No "... " environment variable found errors when absent.src/publish/authorize-approval.js: calls authorizeApproval({ actor: process.env.APPROVAL_ACTOR, issueTitle: process.env.APPROVAL_ISSUE_TITLE, getPermission, autoApprovedRepositories: getAutoApprovedRepositories() }); if unauthorized, appends authorized=false\n to GITHUB_OUTPUT and returns.src/publish/authorize-approval.js concurrently fetches the current issue and all issue events with Promise.all, derives the latest accepted-label event via currentAcceptedEvent(events), and denies approval (authorized=false\n) if the fetched issue title differs from APPROVAL_ISSUE_TITLE, no eligible accepted event exists, or that eventβs actor differs from APPROVAL_ACTOR.src/publish/authorize-approval.js creates an attestation with createApprovalAttestation({ actor: event.actor, eventId: event.eventId, title }) and appends exactly authorized=true\napproval_attestation=${attestation}\n to GITHUB_OUTPUT; direct execution invokes main() and logs errors before setting process.exitCode = 1.