Skip to content

[docs-agent] Rename Alchemy Rollups overview page title to "Alchemy Rollups"#1261

Closed
JackReacher0807 wants to merge 1 commit intomainfrom
docs/rename-rollups-page-title
Closed

[docs-agent] Rename Alchemy Rollups overview page title to "Alchemy Rollups"#1261
JackReacher0807 wants to merge 1 commit intomainfrom
docs/rename-rollups-page-title

Conversation

@JackReacher0807
Copy link
Copy Markdown
Collaborator

Summary

Renames the page title at https://www.alchemy.com/docs/rollups from "Alchemy Rollups Overview" to "Alchemy Rollups".

Changes

  • content/api-reference/alchemy-rollups/rollups-quickstart.mdx: frontmatter title changed from Alchemy Rollups Overview to Alchemy Rollups.

Notes

  • Slug (rollups) is unchanged, so no redirects are needed.
  • Nav sidebar entry (Rollups Overview) and H1 headings inside the page (Intro, What is a Rollup?) are unchanged per the request (title-only rename).

Refs DOCS-64.

Requested via Slack.

Change frontmatter title from 'Alchemy Rollups Overview' to
'Alchemy Rollups' on the /docs/rollups page.

Refs DOCS-64
@JackReacher0807 JackReacher0807 requested a review from a team as a code owner April 24, 2026 21:42
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 24, 2026

🔗 Preview Mode

Name Status Preview Updated (UTC)
Alchemy Docs ✅ Ready 🔗 Visit Preview Apr 24, 2026, 9:43 PM

@github-actions
Copy link
Copy Markdown

🔍 Link Check

Status: ❌ Failed

Summary

Status Count
🔍 Total 8008
✅ Successful 6846
⏳ Timeouts 1
🔀 Redirected 464
👻 Excluded 676
❓ Unknown 0
🚫 Errors 20
⛔ Unsupported 1
Broken links (20) — click to expand

Errors per input

Errors in ./content/wallets/wallet-integrations/privy/jwt-auth-migration.mdx

Errors in ./content/tutorials/alchemy-university/cryptography-basics/patricia-merkle-tries.mdx

Errors in ./content/wallets/wallet-integrations/privy/signer-migration-overview.mdx

Errors in ./content/wallets/wallet-integrations/privy/react-migration.mdx

Errors in ./content/api-reference/arbitrum-nova/arbitrum-nova-deprecation-notice.mdx

View workflow run

@JackReacher0807
Copy link
Copy Markdown
Collaborator Author

cancelling because was a test

1 similar comment
@JackReacher0807
Copy link
Copy Markdown
Collaborator Author

cancelling because was a test

SahilAujla added a commit that referenced this pull request Apr 25, 2026
Codex P1 (id 3141513483) plus three additional gaps caught in a full
audit before pushing this commit. End-to-end tested locally against
PRs #1261 (no trailer), #1263 (no trailer), and #1264 (trailer present)
across 6 cases: originator dismissal (canonical + case-variant),
non-originator allow, missing-attribution warn for various approvers.
All 6 cases produce the expected outcome.

1. Add `contents: read` permission (codex P1)

   Setting `permissions:` explicitly removes any unlisted permission
   (sets to `none`). Without `contents: read`, `actions/checkout`
   fails on private/internal repos before the dismissal logic runs,
   so the self-approval rule is never enforced. Adds the read-only
   permission needed for sparse checkout of the pubkey file.

2. Verify pubkey loaded after gpg --import (audit gap)

   If the pubkey import silently succeeded-but-loaded-no-keys
   (corrupted file, empty file, etc.), every commit's signature
   verification would fail the trust filter, ALL_REQUESTED_BY would
   end up empty, and the workflow would silently degrade to the
   missing-attribution warn-only path on EVERY PR — never enforcing.
   Now: `gpg --list-keys $EXPECTED_FPR` after import; if absent,
   dismiss the approval and exit 1.

3. Paginate the comments-list call used for duplicate-warning
   suppression (audit gap)

   PRs that accumulate >30 comments (over weeks) could push the
   existing warning comment off the first page; without pagination
   the duplicate-suppression check would miss it and post a
   duplicate every approval. Adds `--paginate -F per_page=100` +
   `jq -s 'add'`.

4. Explicit `event=DISMISS` on dismissals API calls (audit gap)

   The PUT /dismissals endpoint defaults `event` per most-recent
   docs but historical behavior has varied. Setting it explicitly
   avoids relying on an undocumented default for a security-critical
   call.

Test matrix run locally before this commit:

  PR #1264 approver=SahilAujla    expected=dismiss actual=dismiss OK
  PR #1264 approver=danielcoyle   expected=allow   actual=allow   OK
  PR #1264 approver=SAHILAUJLA    expected=dismiss actual=dismiss OK
  PR #1263 approver=SahilAujla    expected=warn    actual=warn    OK
  PR #1263 approver=anyone        expected=warn    actual=warn    OK
  PR #1261 approver=SahilAujla    expected=warn    actual=warn    OK

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
SahilAujla added a commit that referenced this pull request Apr 25, 2026
Codex flagged a P1 where `gpg --verify` returning non-zero (BADSIG on a
tampered payload, NO_PUBKEY for an unrelated signer, malformed signature
data) would abort the step under `set -euo pipefail` before the else
branch could run — turning "skip an untrusted commit" into a hard
workflow failure that prevented the dismissal logic from running for
legitimately verified commits later in the loop.

Wrap the verify in `if gpg_status="$(...)"; then ...` so a non-zero
exit just falls through to the SKIP path with primary_fpr="".

Pre-push audit also caught four init-path gaps where a transient or
silent failure could have left an approval intact:

1. gpg --import itself can fail (corrupted .asc, wrong format) — now
   wrapped in `if !` and fail-closed.
2. .github/workflows/docs-agent-pubkey.asc could be deleted from main —
   added existence check before --import, fail-closed if missing.
3. Dismissal API calls were single-attempt — added dismiss_with_retry()
   with 3 attempts and exponential backoff; used everywhere we dismiss.
4. Originator-match dismissal previously appended `|| true` — now
   exit 1 if all 3 retries fail, so a transient API hiccup surfaces
   instead of silently leaving the approval intact.

Local test matrix (PR #1264 with Requested-by: @SahilAujla, PR #1263
with no trailer, PR #1261 likewise, plus PR #1262 which has only
human-authored commits): all 7 cases produce the expected outcome
(dismiss / allow / warn-only). Tampered-payload BADSIG test confirms
the step survives instead of aborting.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant