Skip to content

ci(release): validate Sentry releases after deploy - #1743

Merged
JSONbored merged 1 commit into
mainfrom
codex/validate-sentry-release-deploy
Jun 29, 2026
Merged

ci(release): validate Sentry releases after deploy#1743
JSONbored merged 1 commit into
mainfrom
codex/validate-sentry-release-deploy

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

Scope

  • The PR title follows type(scope): short summary Conventional Commit format, for example fix(api): restore profile access checks.
  • This PR is focused and does not mix unrelated backend, UI, MCP, docs, dependency, and deploy changes.
  • This follows CONTRIBUTING.md and does not reintroduce GitHub Pages, VitePress, site/, or CNAME.
  • I linked an issue, or this is small enough that the summary explains why an issue is not needed.

Validation

  • git diff --check
  • npm run actionlint
  • npm run typecheck
  • npm run test:coverage locally; codecov/patch requires >=97% coverage of the lines AND branches you changed (aim for 98%+ on your diff so CI variance does not fail near the threshold). Global coverage is a non-blocking trend with a loose 90% backstop, not the gate.
  • npm run test:workers
  • npm run build:mcp
  • npm run test:mcp-pack
  • npm run ui:openapi:check
  • npm run ui:lint
  • npm run ui:typecheck
  • npm run ui:build
  • npm audit --audit-level=moderate
  • New or changed behavior has unit/integration tests for new branches, fallback paths, and sanitizer boundaries
  • npm run test:ci
  • npm run rees:test
  • node scripts/build-selfhost.mjs --all && node scripts/validate-selfhost-sourcemap.mjs
  • npx vitest run test/unit/selfhost-sentry-release.test.ts
  • Live read-only check: validated the current REES Sentry release with the new validator using Railway service env.

If any required check was skipped, explain why:

  • MCP preflight could not run because the local MCP session is signed out; full local gate and live Sentry validation passed.

Safety

  • No secrets, wallet details, hotkeys, coldkeys, user PATs, private keys, raw trust scores, private rankings, or private maintainer evidence are exposed.
  • Public GitHub text stays sanitized, low-noise, and does not imply compensation guarantees or optimization tactics.
  • Auth, cookie, CORS, GitHub App, Cloudflare, or session changes include negative-path tests. N/A: this PR does not change those surfaces.
  • API/OpenAPI/MCP behavior is updated and tested where needed. N/A: no public API contract changed.
  • UI changes use live API data or real empty/error/loading states, not production mock/demo fallbacks. N/A: no UI changed.
  • Visible UI changes include a UI Evidence section below with JPG/JPEG or PNG screenshots arranged as organized, captioned, clickable thumbnails. SVG screenshots are not used as review evidence. Review-only screenshots or recordings are not committed to the repository. N/A: no rendered UI changed.
  • Public docs/changelogs are updated where needed; changelogs are only edited for release-prep PRs.

UI Evidence

N/A: documentation and CI/runtime validation only; no rendered UI surface changed.

Notes

  • REES validation runs after upload/finalize and checks release existence, finalization, expected commit, and Railway deploy association.
  • The self-host release workflow now pins Sentry CLI, waits for source-map processing, validates upload, finalizes, and validates the exact gittensory-selfhost@<version> release.
  • Source maps stay private release artifacts and are not served by the app/container.

@dosubot dosubot Bot added the size:L label Jun 29, 2026
@loopover-orb

loopover-orb Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Warning

🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨

⏸️ Gittensory review result - manual review recommended

Review updated: 2026-06-29 12:06:10 UTC

9 files · 1 AI reviewer · no blockers · readiness 75/100 · CI green · unknown

⏸️ Suggested Action - Manual Review

  • Touches a guarded path — held for manual review

Review summary
This PR adds a reusable Sentry release validator and wires it into both the REES runtime sourcemap upload path and the self-host release workflow. The main validation flow is coherent: it checks the exact release id, finalization, commit association, optional deploy association, and keeps the runtime image able to execute the validator by copying `scripts/`. The notable risk is around operational coverage and strictness rather than an obvious code break in the provided files.

Nits — 7 non-blocking
  • nit: `review-enrichment/scripts/validate-sentry-release.mjs` accepts any commit id that is a prefix of the expected SHA or vice versa, so I would either document that short-SHA matching is intentional or require a minimum candidate length before `wanted.startsWith(got)` can pass.
  • nit: `review-enrichment/test/sentry-release-validation.test.ts` does not cover the non-JSON or non-2xx Sentry API error path in `sentryJson`, which is one of the more important failure modes for an external validation gate.
  • nit: `.github/workflows/release-selfhost.yml` pins `@​sentry/cli@​3.6.0` in three separate commands; consider centralizing that version in an env var so future CLI upgrades do not require synchronized edits.
  • In `review-enrichment/scripts/validate-sentry-release.mjs`, tighten `commitMatches` to avoid accepting very short commit fragments unless that is explicitly desired.
  • Add a unit test in `review-enrichment/test/sentry-release-validation.test.ts` for a failed Sentry API response to lock down the sanitized error message behavior.
  • PR author also opened the linked issue — Link an issue that was opened by a different contributor, or provide a rationale for why this self-authored issue represents genuine discovery work.
  • Touches a guarded path — held for manual review — A maintainer must review and merge this change.
Signal Result Evidence
Code review ✅ No blockers 1 reviewer
Linked issue ✅ Linked #1736
Related work ⚠️ 3 scoped overlaps Top overlaps are listed below; lower-confidence bulk is hidden.
Review load ❌ 8/20 Readiness component derived from cached public PR metadata and labels; size label size:L.
Validation evidence ✅ 25/25 PR body includes validation/test evidence.
Open PR queue ❌ 3/10 21 open PR(s), 9 likely reviewable, 12 unlinked.
Contributor context ✅ Confirmed Gittensor contributor JSONbored; Gittensor profile; 80 PR(s), 284 issue(s).
Gate result ⚠️ Not blocking Advisory; not blocking this PR.
Review context
Contributor next steps
  • Treat this as maintainer-lane context rather than normal contributor-lane activity.
  • Review top overlaps.
  • Add scope summary.
  • Expect slower review.
  • No action.
  • Check active issues and PRs before submitting.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Review load = cached public PR metadata such as size labels, changed paths, and preflight status.
  • Open PR queue = repo-wide review pressure; it is not a PR quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.

🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed


💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →.

Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.

  • Re-run Gittensory review

@loopover-orb loopover-orb Bot added gittensor gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. labels Jun 29, 2026
@JSONbored
JSONbored merged commit 29da3b1 into main Jun 29, 2026
19 checks passed
@JSONbored
JSONbored deleted the codex/validate-sentry-release-deploy branch June 29, 2026 12:08
@codecov

codecov Bot commented Jun 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.59%. Comparing base (ce1d354) to head (256173e).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1743   +/-   ##
=======================================
  Coverage   95.59%   95.59%           
=======================================
  Files         204      204           
  Lines       22316    22316           
  Branches     8067     8067           
=======================================
  Hits        21332    21332           
  Misses        408      408           
  Partials      576      576           
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci(release): validate Sentry releases after deploy

1 participant