AgentSkillsCN

sentry-cli

通过 sentry-cli 实现 Sentry 错误监控。当您需要处理 Sentry 发布版本、源映射、dSYM 文件、事件记录,或是进行问题管理时,这款工具将为您提供全方位的支持。涵盖身份验证、发布流程、部署跟踪,以及调试文件上传等关键功能。

SKILL.md
--- frontmatter
name: sentry-cli
description: Sentry.io error monitoring via sentry-cli. Use when working with Sentry releases, source maps, dSYMs, events, or issue management. Covers authentication, release workflows, deploy tracking, and debug file uploads.

Sentry CLI

Interact with Sentry.io for error monitoring, release management, and debug artifact uploads.

Installation

bash
# macOS
brew install sentry-cli

# npm (cross-platform)
npm install -g @sentry/cli

# Direct download
curl -sL https://sentry.io/get-cli/ | bash

Authentication

bash
# Interactive login (opens browser)
sentry-cli login

# Or set token directly
export SENTRY_AUTH_TOKEN="sntrys_..."

# Verify
sentry-cli info

Store tokens in .sentryclirc or environment:

ini
[auth]
token=sntrys_...

[defaults]
org=my-org
project=my-project

Releases

Create & Finalize

bash
# Create release (usually git SHA or version)
sentry-cli releases new "$VERSION"

# Associate commits (links errors to commits)
sentry-cli releases set-commits "$VERSION" --auto

# Finalize when deployed
sentry-cli releases finalize "$VERSION"

# One-liner for CI
sentry-cli releases new "$VERSION" --finalize

Deploys

bash
# Mark release as deployed to an environment
sentry-cli releases deploys "$VERSION" new -e production
sentry-cli releases deploys "$VERSION" new -e staging

List Releases

bash
sentry-cli releases list
sentry-cli releases info "$VERSION"

Source Maps

Upload source maps for JavaScript error deobfuscation:

bash
# Upload all .js and .map files
sentry-cli sourcemaps upload ./dist --release="$VERSION"

# With URL prefix (match your deployed paths)
sentry-cli sourcemaps upload ./dist \
  --release="$VERSION" \
  --url-prefix="~/static/js"

# Validate before upload
sentry-cli sourcemaps explain ./dist/main.js.map

Inject Debug IDs (Recommended)

bash
# Inject debug IDs into source files (modern approach)
sentry-cli sourcemaps inject ./dist
sentry-cli sourcemaps upload ./dist --release="$VERSION"

Debug Files (iOS/Android)

dSYMs (iOS)

bash
# Upload dSYMs from Xcode archive
sentry-cli debug-files upload --include-sources path/to/dSYMs

# From derived data
sentry-cli debug-files upload ~/Library/Developer/Xcode/DerivedData/*/Build/Products/*/*.app.dSYM

ProGuard (Android)

bash
sentry-cli upload-proguard mapping.txt --uuid="$UUID"

Check Debug Files

bash
sentry-cli debug-files check path/to/file
sentry-cli debug-files list

Events & Issues

Send Test Event

bash
sentry-cli send-event -m "Test error message"
sentry-cli send-event -m "Error" --logfile /var/log/app.log

Query Issues

bash
# List unresolved issues
sentry-cli issues list

# Resolve an issue
sentry-cli issues resolve ISSUE_ID

# Mute/ignore
sentry-cli issues mute ISSUE_ID

Monitors (Cron)

bash
# Wrap a cron job
sentry-cli monitors run my-cron-monitor -- /path/to/script.sh

# Manual check-ins
sentry-cli monitors check-in my-monitor --status ok
sentry-cli monitors check-in my-monitor --status error

CI/CD Integration

GitHub Actions

yaml
- name: Create Sentry Release
  uses: getsentry/action-release@v1
  env:
    SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
    SENTRY_ORG: my-org
    SENTRY_PROJECT: my-project
  with:
    environment: production
    sourcemaps: ./dist

Generic CI

bash
export SENTRY_AUTH_TOKEN="$SENTRY_TOKEN"
export SENTRY_ORG="my-org"
export SENTRY_PROJECT="my-project"
VERSION=$(sentry-cli releases propose-version)

sentry-cli releases new "$VERSION" --finalize
sentry-cli releases set-commits "$VERSION" --auto
sentry-cli sourcemaps upload ./dist --release="$VERSION"
sentry-cli releases deploys "$VERSION" new -e production

Common Flags

FlagDescription
-o, --orgOrganization slug
-p, --projectProject slug
--auth-tokenOverride auth token
--log-leveldebug/info/warn/error
--quietSuppress output

Troubleshooting

bash
# Check configuration
sentry-cli info

# Debug upload issues
sentry-cli --log-level=debug sourcemaps upload ./dist

# Validate source map
sentry-cli sourcemaps explain ./dist/main.js.map

# Check connectivity
sentry-cli send-event -m "test" --log-level=debug