Restrict Claude workflows to jnasbyupgrade, add pg-tle-test CI job - #16
Draft
jnasbyupgrade wants to merge 5 commits into
Draft
Restrict Claude workflows to jnasbyupgrade, add pg-tle-test CI job#16jnasbyupgrade wants to merge 5 commits into
jnasbyupgrade wants to merge 5 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Merged
… fork The gate checked github.event.pull_request.head.repo.owner.login == 'jnasbyupgrade', written back when PRs came from that personal fork. Now that the convention is to push branches directly to this repo instead (never the fork), every PR's head repo owner is Postgres-Extensions, not jnasbyupgrade - so the condition never matched and claude-review silently skipped on every single PR this session (#12, #13, #14 all show it as skipped). Replaced with head.repo.full_name == github.repository, which is actually a tighter trust boundary than the old check: it only allows PRs whose head branch lives in this exact repo, requiring push access here, rather than naming one specific external fork as trusted.
…h pg_tle Ports the smoke-test portion of cat_tools' pg-tle-test job (Postgres-Extensions/cat_tools PR #47) so count_nulls gets the same coverage: build pg_tle 1.5.2 from source, register the extension against template1 via pg_tle instead of a filesystem .control file, and verify with bin/assert_fs_clean (copied over unchanged - it's already extension-agnostic) that nothing ever lands on disk while a fresh CREATE EXTENSION count_nulls in a smoke-test db resolves and null_count() actually works. Matrix is [17, 16, 15, 14, 13, 12] for this job specifically: count_nulls' own supported range is 10-17, but pg_tle 1.5.2 only supports 12+ (pgxntool/pgtle_versions.md), so 10 and 11 are dropped here. Deliberately NOT porting cat_tools' update-path portion (TEST_EXISTING_DEPLOY=pgtle bin/test_existing update-scenario ...): count_nulls' master has no bin/test_existing at all - that infrastructure only exists on the still-unmerged extension-update-test/pgxntool-update branches. Once that lands, the update-path half of this job can be added the same way cat_tools did it.
jnasbyupgrade
force-pushed
the
fix-claude-review-gate
branch
from
July 29, 2026 21:43
d89b461 to
84b21fb
Compare
…ntool's own Makefile variable pgxntool's pgtle: target reads a make variable also named PGTLE_VERSION to restrict SQL generation to one version range. Make auto-imports environment variables as make variables, so this job's own env: PGTLE_VERSION silently overrode it: make run-pgtle generated into pg_tle/1.5.2/ (the literal pinned version, passed straight through as --pgtle-version) instead of the correct range directory pg_tle/1.5.0+/, then failed when --run looked for that range directory and it didn't exist. Confirmed reproducing with a one-line `PGTLE_VERSION=1.5.2 make pgtle`, no CI or database needed. Renamed to PG_TLE_BUILD_VERSION, which doesn't collide. Filed as Postgres-Extensions/pgxntool#78 (also affects cat_tools' own pg-tle-test job, which uses the same env var name, once it upgrades pgxntool - worth a heads-up there too).
…RSION PR #13 (merged) flipped count_nulls.control's default_version to the stable pseudo-version, so a version-less CREATE EXTENSION now installs 'stable', not the last real release. The smoke test's version assertion still compared against PGXNVERSION (the PGXN distribution version, from META.in.json, still 1.0.0) - the exact distribution-vs-extension-version distinction RELEASE.md documents. Confirmed failing in CI (installed=stable expected=1.0.0) and locally (`make -s print-EXTENSION_count_nulls_VERSION` correctly reports stable). Fixed to assert against that variable instead.
…me-repo The same-repo check (head.repo.full_name == github.repository) added earlier this PR only re-established that the fork-era check had gone stale -- it didn't restore the original trust boundary. This repo has another collaborator (decibel) with push access, so any same-repo PR or @claude comment from them would still burn CLAUDE_CODE_OAUTH_TOKEN, which is tied to jnasbyupgrade's personal account. Both workflows now check the actual triggering identity instead: claude-code-review.yml on github.event.pull_request.user.login (the PR's original author, stable across synchronize events and unspoofable by PR content), and claude.yml on github.actor (whoever's comment/review/issue triggered the event) -- correct regardless of whether the PR happens to live in this repo or an external fork.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The gate checked github.event.pull_request.head.repo.owner.login == 'jnasbyupgrade', written back when PRs came from that personal fork. Now that the convention is to push branches directly to this repo instead (never the fork), every PR's head repo owner is Postgres-Extensions, not jnasbyupgrade - so the condition never matched and claude-review silently skipped on every single PR this session (#12, #13, #14 all show it as skipped). An intermediate fix replaced it with head.repo.full_name == github.repository (same-repo-only), but that's not actually the right trust boundary: this repo has another collaborator (decibel) with push access, so a same-repo PR of theirs would still burn CLAUDE_CODE_OAUTH_TOKEN, which is tied to jnasbyupgrade's personal account. Both claude-code-review.yml and claude.yml (the @claude-mention workflow, which previously had no author restriction at all) now check the actual triggering identity instead: the PR's original author for claude-code-review.yml (github.event.pull_request.user.login, unspoofable by PR content and stable across synchronize events), and whoever's comment/review/issue triggered the event for claude.yml (github.actor). Both are correct regardless of whether the PR happens to live in this repo or an external fork.
Also adds a pg-tle-test CI job, porting the smoke-test portion of cat_tools' pg-tle-test job (Postgres-Extensions/cat_tools PR #47): build pg_tle 1.5.2 from source, register count_nulls against template1 purely through pg_tle (never make install'ed), and verify via bin/assert_fs_clean (copied over unchanged, already extension-agnostic) that nothing lands on disk while a fresh CREATE EXTENSION count_nulls in a smoke-test db resolves and null_count() actually works. Matrix is [17, 16, 15, 14, 13, 12] for this job - count_nulls supports 10-17 but pg_tle 1.5.2 only supports 12+ (pgxntool/pgtle_versions.md), so 10 and 11 are dropped here. Not porting cat_tools' update-path portion (TEST_EXISTING_DEPLOY=pgtle bin/test_existing update-scenario ...): count_nulls' master has no bin/test_existing at all - that only exists on the still-unmerged extension-update-test/pgxntool-update branches. Once that lands, the update-path half can be added the same way.
Three real bugs surfaced and fixed along the way, all green now:
CI is green across every PG version for both the test and pg-tle-test jobs.