From sentry
Manages Sentry releases: create/finalize with CLI, upload source maps via webpack/vite/next.js plugins, track deployments/health in CI/CD.
npx claudepluginhub thebushidocollective/han --plugin sentryThis skill is limited to using the following tools:
Manage releases, upload source maps, and track deployments.
Manages Sentry releases: creates versions with semver/SHA, associates git commits for suspect commit detection, uploads source maps, monitors health metrics, cleans old releases.
Guides use of Sentry CLI to view issues, events, projects, organizations, make API calls, and authenticate from the command line. Useful for Sentry CLI interactions.
Checks Sentry release health metrics including crash-free sessions/users, new issues, adoption rates, and error comparisons to identify deployment regressions.
Share bugs, ideas, or general feedback.
Manage releases, upload source maps, and track deployments.
# Create a new release
sentry-cli releases new "$VERSION"
# Associate commits
sentry-cli releases set-commits "$VERSION" --auto
# Finalize the release
sentry-cli releases finalize "$VERSION"
# GitHub Actions
- name: Create Sentry Release
uses: getsentry/action-release@v1
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: your-org
SENTRY_PROJECT: your-project
with:
environment: production
version: ${{ github.sha }}
release:
stage: deploy
script:
- sentry-cli releases new "$CI_COMMIT_SHA"
- sentry-cli releases set-commits "$CI_COMMIT_SHA" --auto
- sentry-cli releases finalize "$CI_COMMIT_SHA"
- sentry-cli releases deploys "$CI_COMMIT_SHA" new -e production
# Upload source maps for a release
sentry-cli sourcemaps upload \
--release="$VERSION" \
--url-prefix="~/" \
./dist
# With validation
sentry-cli sourcemaps upload \
--release="$VERSION" \
--validate \
./dist
// webpack.config.js
const { sentryWebpackPlugin } = require("@sentry/webpack-plugin");
module.exports = {
devtool: "source-map",
plugins: [
sentryWebpackPlugin({
org: "your-org",
project: "your-project",
authToken: process.env.SENTRY_AUTH_TOKEN,
release: {
name: process.env.RELEASE_VERSION,
},
sourcemaps: {
assets: "./dist/**",
},
}),
],
};
// vite.config.ts
import { sentryVitePlugin } from "@sentry/vite-plugin";
export default defineConfig({
build: {
sourcemap: true,
},
plugins: [
sentryVitePlugin({
org: "your-org",
project: "your-project",
authToken: process.env.SENTRY_AUTH_TOKEN,
}),
],
});
// next.config.js
const { withSentryConfig } = require("@sentry/nextjs");
module.exports = withSentryConfig(nextConfig, {
org: "your-org",
project: "your-project",
authToken: process.env.SENTRY_AUTH_TOKEN,
silent: true,
hideSourceMaps: true,
});
# Create a deployment
sentry-cli releases deploys "$VERSION" new \
--env production \
--started $(date +%s) \
--finished $(date +%s)
Sentry.init({
dsn: "...",
release: "my-app@1.2.3",
environment: "production",
autoSessionTracking: true,
});
[defaults]
org = your-org
project = your-project
[auth]
token = your-auth-token
defaults.org=your-org
defaults.project=your-project
auth.token=your-auth-token
# Delete old releases
sentry-cli releases delete "$OLD_VERSION"
# Delete source maps (keeps release)
sentry-cli releases files "$VERSION" delete --all