install-smoke: remove Slack alerting (public repo must not hold prod secrets) - #76
Conversation
… signal This repository is public, and paging #polylane-notifications requires the SLACK_REPORTER_TOKEN from the 1Password "Prod" environment. Granting this repo's CI service account access to Prod would expose the entire prod secret set to a public repo — which is exactly why that access is withheld by design. So remove the alerting path entirely (the op CLI install, the op run --environment call, the SECRETS_ENVIRONMENT_ID/1Password-CLI env, the test_alert dispatch input, and secrets: inherit on the release.yml call). The value of the smoke is unchanged: a release that breaks the installer still FAILS the install-smoke run (red check on the release), visible to whoever cut it. Slack paging for the same real-install legs lives in polylanedotcom's private install-bytes workflow, which already holds Prod access. Detection here; paging in the private backstop. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
LGTM: Slack alerting is cleanly removed, the smoke check still fails loudly, and the backstop-lives-elsewhere claim checks out against live evidence.
Verified, not just taken on faith:
- Head/base: local checkout head
574fed5matches the PR API exactly; true merge-base withorigin/main(93cc6fb) equals main's current tip, so the base isn't stale. Diff vs merge-base: 2 files, +19/-74 (install-smoke.yml,release.yml) — matches the API's reported stats exactly. - Removal is real: grepped
install-smoke.ymlbefore/after for slack/webhook/alert/1password/op-run/secrets tokens. Before: theInstall 1Password CLIstep, theAlert the internal channelstep (op run --environment ... slack.com/api/chat.postMessage),SECRETS_ENVIRONMENT_ID/ONEPASSWORD_CLI_*env, theOP_SERVICE_ACCOUNT_TOKENsecret, and thetest_alertdispatch input. After: zero code hits — the only remaining mentions are in the explanatory header comment.release.yml'ssecrets: inheriton theinstall-smokejob call is gone too, so the reusable workflow now runs with no secrets at all. - Safety property holds: read the full post-PR YAML control flow (not just the diff). Both real-install steps still run
set -euo pipefail, capture output underset +e/set -e, then gate on threegrep -qF ... || { echo ::error::...; exit 1; }assertions apiece. Nothing wraps them incontinue-on-errororif: always(), andrelease.ymlstill callsinstall-smokeas a plainneeds:-linked job with no error-swallowing — a broken release still exits non-zero on the job, still shows as a red check on the release run. The alerting steps that were removed were purely additive (if: failure() || inputs.test_alert); nothing about their removal touches this control flow. - The "who fails, who pages" claim: confirmed against live GitHub state, not just the PR description.
coreplanelabs/cliis a public repo (GET /repos/coreplanelabs/cli→"private": false);coreplanelabs/polylanedotcomis private ("private": true).- polylanedotcom has
.github/workflows/install-bytes.yml: a daily-cron (schedule: "15 17 * * *") job that runs the same real-install legs plus served-bytes checks, alerts#polylane-notificationsviaop run --environment 4r6j7zk3wmoppaotpeds6xg63mon failure — the identical environment ID cli's pre-PR code referenced. - The PR body's linked "control run" (polylanedotcom run
32790697826,workflow_dispatch, actor justinhelmer) is real and did succeed (conclusion: success, 2026-08-24T23:44Z) — not a fabricated link. - Pulled the actual cli install-smoke run that motivated this PR (run
32786303661, same day): job logs show both real-install legs green, the 1Password-CLI-install step green, and only theAlert the internal channelstep failing, withop runerroringfailed to retrieve environment variables: An unexpected error occurred while processing the request— consistent with the claimed missing-Prod-access failure mode, not some other break in the smoke logic itself.
- No stale references: grepped the whole repo for
test_alert,SECRETS_ENVIRONMENT_ID,ONEPASSWORD_CLI,OP_SERVICE_ACCOUNT_TOKEN,polylane-notifications— nothing left dangling outside this PR's own explanatory comments (theOP_SERVICE_ACCOUNT_TOKENhit incut-release.ymlis a distinct, pre-existing, unrelated usage). - YAML/local checks: both changed files parse as valid YAML. Repo has no workflow-file linter (
npm run lintonly coverssrc//codegen/); ran the full suite anyway since it's the standing local-check step:npm run codegen+typecheckclean,lintclean,test359/359 passing — unaffected by this workflow-only change, as expected. - CI on this head: 3/3 "checks / Test & typecheck" (20.x/22.x/24.x) green, 0 failures.
Author is justinhelmer (human) — the bot-authored/bot-approved self-approval pattern doesn't apply here.
No blocking issues.
Generated by Claude Code
There was a problem hiding this comment.
Auto-approved: Claude reviewed this PR and posted an LGTM verdict (see its review). A repo admin enabled this via the auto-approve workflow.
Generated by Claude Code
Post-merge prod validation — all green ✅Merged and validated against the freshly-cut v0.2.26 (assets: Release-integrated install-smoke (the whole point of this workflow): the Direct prod checks against v0.2.26 through the served polylane.com/install:
Detection lives here as a red-check on the release; Slack paging remains in polylanedotcom's private install-bytes backstop. Nothing further outstanding. |
Removes the Slack-alert path from the release install-smoke workflow. The smoke checks stay and still fail a broken release loudly as a red check; Slack paging lives in polylanedotcom's private backstop, which already has the access this public repo intentionally lacks.
What & why
install-smoke.yml(added in #65) alerted #polylane-notifications on failure viaop run --environmentagainst the 1Password "Prod" environment. That environment can only be resolved by a service account with access to Prod's vaults — and granting this public repo's CI service account that access would expose the whole prod secret set to an OSS repo. Per the decision in #polylane-notifications, that access is withheld by design, so the alerting can't (and shouldn't) work here. Remove it rather than leave a permanently-failing alert step.I confirmed before removing that the missing access is the only reason it failed and that the pattern itself is sound: the identical
op run --environment 4r6j…succeeds from polylanedotcom's private workflow (control run) and fails only here — the difference is purely the service account, which is exactly the exposure we're declining to create.Changes
install-smoke.yml: remove theInstall 1Password CLIandAlert the internal channelsteps, theSECRETS_ENVIRONMENT_ID/ONEPASSWORD_CLI_*env, and thetest_alertdispatch input. The two real-install legs (API-digest and checksums.txt fallback) are untouched.release.yml: dropsecrets: inheritfrom theinstall-smokecall — no secrets are used anymore.Decisions
Validation
sha256 verified+ install completed + sign-in stop; fallback verified via checksums.txt with the API blocked).grepconfirms no Slack/1Password/op/secret references remain in the workflow beyond the explanatory comment; YAML lint clean on both files.workflow_dispatchrun of install-smoke (version=0.2.20) green with no alert step present.🤖 Generated with Claude Code