Repository navigation
[GB-MONITOR] Fix the Sentry DSN project lookup and give CodeCaps iOS its own DSN - #336
Conversation
…its own DSN
sentry_dsn_project() asked https://<DSN ingest host>/api/0/organizations/{org}/projects/{id}/,
an endpoint that does not exist (404 for every input), so every CodeCaps iOS
ship went red at the Sentry status step even though the uploads to codecaps
worked. It now asks https://sentry.io/api/0/projects/{org}/{id}/.
ios-ship.yml fetches SENTRY_DSN_CODECAPS (Sentry project codecaps) and makes it
the SENTRY_DSN for the archive. A missing one falls back to the shared fleet
DSN with an ::error:: and a red run; the TestFlight upload is never blocked.
Code Review Could Not Complete
|
| Options | Enabled |
|---|---|
| Bug | ✅ |
| Performance | ✅ |
| Security | ✅ |
| Business Logic | ✅ |
|
Task description is insufficient for business logic validation. 🤔 Insufficient Task ContextI found a task linked to this PR, but it only contains minimal information (title only, no description or acceptance criteria). To perform a meaningful business rules validation, I need more details. 🔍 What I need to validate:
💡 How to improve the task context:
|
| Autofix run https://github.com/Simple-With-Us/CodeCaps/actions/runs/40811857876 started for `sentry[bot]`'s tagged request. Owner/sentry request: exempt from the per-bot cap (owner rule 2026-10-20). |
The ship script refuses a dirty worktree, so a note written to the repo root before the ship step would have stopped the ship. The note now goes to RUNNER_TEMP and the Sentry status step reads it (Seer finding on #336).
Code Review Could Not Complete
|
| Options | Enabled |
|---|---|
| Bug | ✅ |
| Performance | ✅ |
| Security | ✅ |
| Business Logic | ✅ |
|
Task description is insufficient for business logic validation. 🤔 Insufficient Task ContextI found a task linked to this PR, but it only contains minimal information (title only, no description or acceptance criteria). To perform a meaningful business rules validation, I need more details. 🔍 What I need to validate:
💡 How to improve the task context:
|
|
@kody start-review |
Code Review Completed! 🔥The code review was successfully completed based on your current configurations. Kody Guide: Usage and ConfigurationInteracting with Kody
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
|
@kody start-review |
|
PR description uses two ASCII spaces instead of an NBSP sentence gap Two ASCII spaces after the quote collapse to one in rendered PR prose instead of preserving the required sentence gap. Replace them with U+00A0 followed by one ASCII space. Kody rule violation: Sentence gap by surface: two ASCII spaces in files, U+00A0 plus a space in rendered copy and GitHub text Prompt for LLM |
|
Task description is insufficient for business logic validation. 🤔 Insufficient Task ContextI found a task linked to this PR, but it only contains minimal information (title only, no description or acceptance criteria). To perform a meaningful business rules validation, I need more details. 🔍 What I need to validate:
💡 How to improve the task context:
|
Code Review Could Not Complete
|
| Options | Enabled |
|---|---|
| Bug | ✅ |
| Performance | ✅ |
| Security | ✅ |
| Business Logic | ✅ |
|
Task description is insufficient for business logic validation. 🤔 Insufficient Task ContextI found a task linked to this PR, but it only contains minimal information (title only, no description or acceptance criteria). To perform a meaningful business rules validation, I need more details. 🔍 What I need to validate:
💡 How to improve the task context:
|
…OPS as the only Sentry vault in INFISICAL.md
Code Review Completed! 🔥The code review was successfully completed based on your current configurations. Kody Guide: Usage and ConfigurationInteracting with Kody
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
|
Answers to the issue-level Kody notes on this PR: the PR-description sentence gaps now use U+00A0 plus a space, fixed in the description itself. The business-logic notes only say the linked task has no description; the PR body carries the full why, the change list, the tests and the one pre-merge step (Jay sets Infisical Fleet-OPS prod / |
|
Task description is insufficient for business logic validation. 🤔 Insufficient Task ContextI found a task linked to this PR, but it only contains minimal information (title only, no description or acceptance criteria). To perform a meaningful business rules validation, I need more details. 🔍 What I need to validate:
💡 How to improve the task context:
|
…rip a trailing slash, reject non-https bases so the API token never leaves over cleartext or off-domain, and give the project-slug curl connect/max timeouts so a hung Sentry API fails fast.
Root cause:
sentry_dsn_project()inscripts/ios-fleet/ship-testflight.sh(added in #325) calledSummary
Fixes CodeCaps iOS TestFlight Sentry routing so crashes, dSYMs, and Size Analysis land in the dedicated Sentry project
codecaps(4512207409840129) instead of the shared fleet project (botfleet), and fixes the DSN-to-project lookup that was turning every ship red.What changed
Dedicated CodeCaps DSN for iOS ship (
ios-ship.yml):SENTRY_DSN_CODECAPSfrom Fleet-OPS Infisical prod/, with same-named GitHub repository secret as fallback.Use the CodeCaps Sentry DSNstep promotesSENTRY_DSN_CODECAPStoSENTRY_DSNviaGITHUB_ENVbefore archive/ship, so the archive, dSYM upload, and Size Analysis build all targetcodecaps.SENTRY_DSNwithout blocking the TestFlight upload, but is loud — emits::error title=Sentry DSN::and writes a note to$RUNNER_TEMP/ios-ship-sentry-dsn-missing(kept out of checkout to avoid dirty-worktree ship failure).Sentry artifact upload statusstep reads that note, reports ship outcome first so a failed ship is not masked, then fails the run (exit 1) if the shared DSN was used.Sentry project lookup fix (
scripts/ios-fleet/ship-testflight.shsentry_dsn_project):${SENTRY_API_BASE:-https://sentry.io}viaGET /api/0/projects/{org}/{id or slug}/, trying numeric org ID from DSN thensimple-with-us.https://{DSN-host}/api/0/organizations/{org}/projects/{id}/— the DSN host is the ingest endpoint (*.ingest.us.sentry.io) which 404s for/api/0/paths, and that organizations-form endpoint does not exist, causing false red ships (2026-10-28). DSN host is now only used to derive the org ID.Docs: Updated
INFISICAL.mdanddocs/IOS-TESTFLIGHT.mdto documentSENTRY_DSN_CODECAPSsource, fallback-to-shared plus red-run behavior, and that TestFlight upload is never blocked.Tests (
scripts/ios-ship-workflow.test.mjs): Added coverage that numeric IDs resolve viasentry.io/api/0/projects/...never via ingest host, that unresolvable IDs try fleet org, that slug tails need no API call, and that the workflow picks the CodeCaps DSN after fetch/before ship with loud-missing behavior.