-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
docs(cli): Add code mappings documentation page #17196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| --- | ||
| title: "Code Mappings" | ||
| sidebar_order: 5 | ||
| description: "Upload code mappings to Sentry via the CLI. Code mappings link stack trace paths to source code paths in your repository, enabling source context, suspect commits, and code owners." | ||
| --- | ||
|
|
||
| Code mappings link stack trace paths to source code paths in your repository. They enable features like [source context](/platforms/java/source-context/), [suspect commits](/product/issues/suspect-commits/), [stack trace linking](/organization/integrations/source-code-mgmt/github/#stack-trace-linking), and [code owners](/product/issues/ownership-rules/). | ||
|
|
||
| You can [manage code mappings through the Sentry web UI](/product/issues/suspect-commits/#set-up-code-mappings), or upload them in bulk using Sentry CLI. It is also possible to upload code mappings automatically in your CI process to keep them in sync with your repository structure. | ||
|
|
||
| ## Permissions | ||
|
|
||
| Sentry CLI requires an [Organization Token](https://sentry.io/orgredirect/organizations/:orgslug/settings/auth-tokens/) with the `org:ci` scope to upload code mappings. | ||
|
|
||
| ## Upload Code Mappings | ||
|
|
||
| Use the `sentry-cli code-mappings upload` command to upload code mappings: | ||
|
|
||
| ```bash | ||
| sentry-cli code-mappings upload ./mappings.json | ||
| ``` | ||
|
|
||
| Run `sentry-cli code-mappings upload --help` to see all available options. | ||
|
|
||
| ### JSON File Format | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there a standardized way to generate such files? If so, I think we should mention it.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nope, not really. I was thinking to add a sentry.io/changelog entry where I'd provide an example snippet on how to do this in Gradle, but I could also add it here if you prefer. Although, the next step would be to do this automatically in the Sentry Gradle plugin so this would make the snippet redundant. |
||
|
|
||
| The input file should be a JSON array of mapping objects, each with a `stackRoot` and `sourceRoot`: | ||
|
|
||
| - **stackRoot**: The path prefix as it appears in stack traces (e.g. `io/sentry/android/core` for Java, `src/` for Python/JS). | ||
| - **sourceRoot**: The corresponding path in your repository where the source code lives. | ||
|
|
||
| Multiple mappings can share the same `stackRoot` if they point to different `sourceRoot` paths. This is useful for monorepos where the same package prefix exists in multiple modules. Sentry evaluates mappings from most specific to least specific, using the first one that resolves to a real file in the repository. | ||
|
|
||
| #### Example | ||
|
|
||
| The following example is based on the [getsentry/sentry-java](https://github.com/getsentry/sentry-java) monorepo, which has multiple modules sharing the `io/sentry` package prefix: | ||
|
|
||
| ```json {filename:mappings.json} | ||
| [ | ||
| { | ||
| "stackRoot": "io/sentry/android/core", | ||
| "sourceRoot": "sentry-android-core/src/main/java/io/sentry/android/core" | ||
| }, | ||
| { | ||
| "stackRoot": "io/sentry/opentelemetry", | ||
| "sourceRoot": "sentry-opentelemetry/sentry-opentelemetry-core/src/main/java/io/sentry/opentelemetry" | ||
| }, | ||
| { | ||
| "stackRoot": "io/sentry/opentelemetry", | ||
| "sourceRoot": "sentry-opentelemetry/sentry-opentelemetry-bootstrap/src/main/java/io/sentry/opentelemetry" | ||
| }, | ||
| { | ||
| "stackRoot": "io/sentry", | ||
| "sourceRoot": "sentry/src/main/java/io/sentry" | ||
| } | ||
| ] | ||
| ``` | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@szokeasaurusrex not sure if we should mention the min supported version here?