Skip to content

feat(code-mappings): Wire up API integration for code-mappings upload#3209

Merged
romtsn merged 5 commits intomasterfrom
rz/feat/code-mappings-api-integration
Mar 24, 2026
Merged

feat(code-mappings): Wire up API integration for code-mappings upload#3209
romtsn merged 5 commits intomasterfrom
rz/feat/code-mappings-api-integration

Conversation

@romtsn
Copy link
Copy Markdown
Member

@romtsn romtsn commented Mar 12, 2026

#skip-changelog

Connect the code-mappings upload command to the bulk code mappings API
endpoint (POST /api/0/organizations/{org}/code-mappings/bulk/).

Adds:

  • bulk_upload_code_mappings() method on AuthenticatedApi
  • Request/response data types in src/api/data_types/code_mappings.rs
  • Summary table and error reporting in the command output
  • Happy-path integration test with mock endpoint

Stack: #3207#3208#3209#3210

Backend PRs: getsentry/sentry#109783, getsentry/sentry#109785, getsentry/sentry#109786

Closes getsentry/sentry-android-gradle-plugin#1079

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 12, 2026

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against bbd9516

@romtsn romtsn force-pushed the rz/feat/code-mappings-git-inference branch from 684caab to 912da39 Compare March 12, 2026 10:55
@romtsn romtsn force-pushed the rz/feat/code-mappings-api-integration branch from f5ab182 to 37fbb57 Compare March 12, 2026 10:55
@romtsn romtsn force-pushed the rz/feat/code-mappings-api-integration branch from 37fbb57 to 5720ec2 Compare March 12, 2026 11:11
@romtsn romtsn force-pushed the rz/feat/code-mappings-git-inference branch from 912da39 to 95e8814 Compare March 12, 2026 11:11
@romtsn romtsn force-pushed the rz/feat/code-mappings-api-integration branch from 5720ec2 to bbc4d47 Compare March 12, 2026 11:30
@romtsn romtsn marked this pull request as ready for review March 18, 2026 11:44
@romtsn romtsn requested review from a team and szokeasaurusrex as code owners March 18, 2026 11:44
Copy link
Copy Markdown
Member

@szokeasaurusrex szokeasaurusrex left a comment

Choose a reason for hiding this comment

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

lgtm, added some minor optional improvements

@romtsn romtsn force-pushed the rz/feat/code-mappings-git-inference branch from e405066 to 8f9babe Compare March 18, 2026 17:15
@romtsn romtsn force-pushed the rz/feat/code-mappings-api-integration branch from 3d14593 to e288070 Compare March 18, 2026 17:54
Copy link
Copy Markdown
Member

@szokeasaurusrex szokeasaurusrex left a comment

Choose a reason for hiding this comment

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

🚀

romtsn added a commit that referenced this pull request Mar 20, 2026
_#skip-changelog_

Add the `sentry-cli code-mappings upload` subcommand group and the
`upload`
subcommand with file parsing and validation.

This is the first in a stack of 4 PRs to support bulk uploading code
mappings
from a JSON file — useful for Java/Android multi-module projects that
need
dozens of mappings.

This PR adds:
- Command scaffold following the `repos`/`deploys` pattern
- JSON file reading and validation (empty arrays, empty
stackRoot/sourceRoot)
- CLI args: positional `PATH`, `--repo`, `--default-branch`
- Help and no-subcommand trycmd integration tests

Stack: **#3207** → #3208#3209#3210

Backend PRs: getsentry/sentry#109783, getsentry/sentry#109785,
getsentry/sentry#109786

Closes getsentry/sentry-android-gradle-plugin#1076
Closes getsentry/sentry-android-gradle-plugin#1077

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
@romtsn romtsn force-pushed the rz/feat/code-mappings-git-inference branch from 70ddd86 to 6dae115 Compare March 20, 2026 21:35
Base automatically changed from rz/feat/code-mappings-git-inference to master March 24, 2026 10:19
romtsn added a commit that referenced this pull request Mar 24, 2026
…3208)

*#skip-changelog*

When `--repo` or `--default-branch` are not provided, infer them from
the<br>local git repository. Uses the configured VCS remote
(SENTRY_VCS_REMOTE / ini)<br>first, then falls back to best-effort
remote detection (upstream > origin > first).

Also extracts `find_best_remote()` as a shared utility in
`src/utils/vcs.rs`,<br>replacing the inline logic that was duplicated in
`git_repo_base_repo_name_preserve_case`.

Stack: #3207 →
[#3208](<#3208>) →
[#3209](<#3209>) →
[#3210](<#3210>)

Backend PRs:
[getsentry/sentry#109783](<getsentry/sentry#109783>),
[getsentry/sentry#109785](<getsentry/sentry#109785>),
[getsentry/sentry#109786](<getsentry/sentry#109786>)

Closes
[GRADLE-79](https://linear.app/getsentry/issue/GRADLE-79/add-git-inference-for-repo-name-and-default-branch)

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
romtsn and others added 4 commits March 24, 2026 11:25
Add bulk_upload_code_mappings() API method and BulkCodeMappingsRequest/
Response data types. Wire up the upload command to authenticate, call
the bulk endpoint, and display results in a table with summary counts.
Exit with code 1 if any mappings fail.
The bulk code-mappings endpoint is scoped to an organization, so a 404
should report "organization not found" rather than generic "resource
not found", consistent with other org-scoped endpoints.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Simplify the status match per review feedback and extract the table
building logic into a print_results_table function.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@romtsn romtsn force-pushed the rz/feat/code-mappings-api-integration branch from a008901 to 42740cf Compare March 24, 2026 10:28
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

…se borrowed types

- Move print_results_table before #[cfg(test)] to fix "items after test
  module" lint error
- Change BulkCodeMappingsRequest to use borrowed types (&str, &[T])
  instead of owned types to avoid unnecessary cloning

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@romtsn romtsn merged commit be15335 into master Mar 24, 2026
26 checks passed
@romtsn romtsn deleted the rz/feat/code-mappings-api-integration branch March 24, 2026 13:22
romtsn added a commit that referenced this pull request Mar 24, 2026
_#skip-changelog_

Split large mapping files into batches of 300 (the backend limit) per
request.
Each batch is sent sequentially with progress reporting, and results are
merged
into a single summary.

Also changes the output table to only show error rows — for large
uploads
(hundreds of mappings), printing every row would flood the terminal.
Successful
mappings are reflected in the summary counts instead.

Stack: #3207#3208#3209 → **#3210**

Backend PRs: getsentry/sentry#109783, getsentry/sentry#109785,
getsentry/sentry#109786

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
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.

API integration and error reporting for code-mappings upload

2 participants