Skip to content

ci(release): name excluded approvers in the Slack approval request - #5379

Merged
ioannisj merged 3 commits into
mainfrom
ci/release-approval-slack-exclusions
Oct 23, 2026
Merged

ioannisj merged 3 commits into
mainfrom
ci/release-approval-slack-exclusions

Conversation

@ioannisj

@ioannisj ioannisj commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Problem

With the merge queue the push to main comes from github-merge-queue[bot], so GitHub's "Prevent self-review" on the NPM Release environment never excludes the PR author or whoever queued it. The approval guard catches that after the fact and fails the release, but the Slack approval request gives no hint who's excluded, and nothing posts back when the guard rejects an approval. In run 39750702665 I queued #5273, approved it myself, the guard failed, and a teammate had to re-run and approve.

Changes

Picks up PostHog/.github#82 (merged as f0431489d137b9e7474fc428cf176e4c668cc4a2), which teaches the shared notify-approval-needed.yml to name the excluded approvers and list the PRs in the Slack message when the caller lets it read PRs.

  • Grants the notify job pull-requests: read so the shared workflow can run the guard in report mode.
  • Bumps both PostHog/.github pins to f0431489d137b9e7474fc428cf176e4c668cc4a2.
  • Replies in the Slack thread when the guard rejects an approval, naming who approved and pointing at the re-run, since re-running the failed jobs asks for a fresh approval. This only fires when the guard reported a violation.
  • Replies separately when the guard itself failed to run (API error, no approval found), pointing at the job log, so an outage isn't announced as a rejected approval.

CI only, no library code changes, so no changeset.

Release info Sub-libraries affected

Libraries affected

  • All of them
  • posthog-js (web)
  • posthog-js-lite (web lite)
  • posthog-node
  • posthog-react-native
  • @posthog/react-native-plugin
  • @posthog/react
  • @posthog/ai
  • @posthog/convex
  • @posthog/next
  • @posthog/nextjs-config
  • @posthog/nuxt
  • @posthog/openfeature-node-provider
  • @posthog/openfeature-web-provider
  • @posthog/rollup-plugin
  • @posthog/webpack-plugin
  • @posthog/types
  • @posthog/browser-common

Checklist

  • Tests for new code
  • Accounted for the impact of any changes across different platforms
  • Accounted for backwards compatibility of any changes (no breaking changes!)
  • Took care not to unnecessarily increase the bundle size

If releasing new changes

  • Ran pnpm changeset to generate a changeset file

🤖 Agent context

DRI: @ioannisj
Autonomy: Human-driven (agent-assisted)

@ioannisj ioannisj self-assigned this Oct 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📝 No Changeset Found

This PR doesn't include a changeset. A changeset is required to release a new version.

How to add a changeset

Run this command and follow the prompts:

pnpm changeset

Remember: Never use major version bumps for posthog-js as it's autoloaded by clients.

@posthog posthog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PostHog Review · Standard · reviewed 46d6eba: 1 Should fix.

This is the only automatic review while this pull request is a draft. Comment @posthog review to review new changes sooner. Otherwise, a review of the new changes runs when you mark it ready for review.

Comment thread .github/workflows/release.yml Resolved
@github-actions

Copy link
Copy Markdown
Contributor

Coherence

4 spec problems · 0 failing chokepoints · 2 spec gaps · 0 guard failures

44 components, 7 bullets (5 invariants, 2 requirements), 4 problems

Spec problems (spec --check)

  • packages/ai/src/otel/Otel.spec.md:7 an invariant bullet starts with <name>: <sentence>
  • packages/ai/src/otel/Otel.spec.md:8 an invariant bullet starts with <name>: <sentence>
  • Posthog-js.practice.md:20 practice add an invariant cites 187a5c5, which is no commit in this repository
  • Posthog-js.practice.md:20 practice add an invariant cites 8922ab2, which is no commit in this repository

Chokepoints: none declared.

Spec gaps: 2 entrances with outside or unknown trust and no traced control, and 10 more held by the adoption baseline

  • packages/web/Web.spec.md entrance public api (trust host-app): packages/web
  • packages/webpack-plugin/Webpack-plugin.spec.md entrance webpack plugin (trust build): packages/webpack-plugin

Close one with guard: <chokepoint>, an invariant that names it on its entrances: line, or control: none — <reason>; scaffold control proposes it.

@ioannisj
ioannisj marked this pull request as ready for review October 23, 2026 08:00
@ioannisj
ioannisj requested a review from a team as a code owner October 23, 2026 08:00
@ioannisj
ioannisj added this pull request to the merge queue Oct 23, 2026
Merged via the queue into main with commit c481b82 Oct 23, 2026
72 checks passed
@ioannisj
ioannisj deleted the ci/release-approval-slack-exclusions branch October 23, 2026 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants