sentry
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSentry Error Monitoring Skill
Sentry错误监控工具
Created by Return Zero Inc.
Comprehensive Sentry integration for Claude Code providing issue retrieval, event analysis, error tracking, and project health monitoring capabilities.
为Claude Code提供全面的Sentry集成,具备问题检索、事件分析、错误追踪和项目健康监控能力。
Features
功能特性
1. Issue Management
1. 问题管理
- List issues by project or organization
- Retrieve issue details (title, first/last seen, event count)
- Filter by status (unresolved, resolved, ignored)
- Search issues by query
- Update issue status
- 按项目或组织列出问题
- 获取问题详情(标题、首次/末次出现时间、事件数量)
- 按状态筛选(未解决、已解决、已忽略)
- 按查询语句搜索问题
- 更新问题状态
2. Event Analysis
2. 事件分析
- List events for specific issues
- Retrieve event details with stack traces
- Debug source map issues
- Analyze error patterns
- 列出特定问题的事件
- 获取包含堆栈跟踪的事件详情
- 调试Source Map问题
- 分析错误模式
3. Project Monitoring
3. 项目监控
- List organization projects
- Get project health statistics
- View error trends
- Monitor release health
- 列出组织内的项目
- 获取项目健康统计数据
- 查看错误趋势
- 监控版本发布健康状况
4. Tag Analysis
4. 标签分析
- View tag distributions
- Analyze error patterns by tag
- Filter issues by tag values
- 查看标签分布情况
- 按标签分析错误模式
- 按标签值筛选问题
Automatic Features
自动功能
- Rate Limiting: Respects Sentry API rate limits
- Retry Logic: Automatic retry on transient errors
- Environment Detection: Flexible environment variable pattern matching
- Result Formatting: Markdown tables, JSON, or summary text
- Error Handling: Clear, actionable error messages
- 速率限制:遵循Sentry API的速率限制规则
- 重试逻辑:针对临时错误自动重试
- 环境检测:灵活的环境变量模式匹配
- 结果格式化:支持Markdown表格、JSON或摘要文本格式
- 错误处理:清晰、可执行的错误提示信息
Environment Variables
环境变量
This skill uses environment variables managed by . See for configuration details.
jelly-dotenvskills/jelly-dotenv/SKILL.mdRequired variables:
- - Your Sentry authentication token (org or personal)
SENTRY_AUTH_TOKEN - or
SENTRY_ORG- Organization slugSENTRY_ORGANIZATION
Optional variables:
- - Default project slug
SENTRY_PROJECT - - API region: us (default), de
SENTRY_REGION - - Request timeout in ms (default: 30000)
SENTRY_TIMEOUT
Variables can be configured in either:
- (skill-common, highest priority)
skills/jelly-dotenv/.env - Project root (project-specific, fallback)
/.env
本工具使用由管理的环境变量。配置详情请查看。
jelly-dotenvskills/jelly-dotenv/SKILL.md必填变量:
- - 你的Sentry认证令牌(组织或个人令牌)
SENTRY_AUTH_TOKEN - 或
SENTRY_ORG- 组织SlugSENTRY_ORGANIZATION
可选变量:
- - 默认项目Slug
SENTRY_PROJECT - - API区域:us(默认)、de
SENTRY_REGION - - 请求超时时间(毫秒,默认:30000)
SENTRY_TIMEOUT
变量可配置在以下任一位置:
- (工具通用配置,优先级最高)
skills/jelly-dotenv/.env - 项目根目录(项目专属配置,作为备选)
/.env
Configuration
配置
Environment Variables
环境变量
The skill automatically detects Sentry credentials using flexible pattern matching:
bash
undefined本工具会通过灵活的模式匹配自动检测Sentry凭证:
bash
undefined✅ Standard naming (recommended)
✅ 标准命名(推荐)
SENTRY_AUTH_TOKEN=sntrys_your_token_here
SENTRY_ORG=my-organization
SENTRY_PROJECT=my-project
SENTRY_AUTH_TOKEN=sntrys_your_token_here
SENTRY_ORG=my-organization
SENTRY_PROJECT=my-project
✅ Alternative naming
✅ 备选命名
SENTRY_ORGANIZATION=my-organization
SENTRY_TOKEN=sntrys_your_token_here
SENTRY_ORGANIZATION=my-organization
SENTRY_TOKEN=sntrys_your_token_here
✅ Wildcard patterns (auto-detected)
✅ 通配符模式(自动检测)
PROD_SENTRY_TOKEN=sntrys_your_token_here
PROD_SENTRY_ORG=my-organization
PROD_SENTRY_TOKEN=sntrys_your_token_here
PROD_SENTRY_ORG=my-organization
✅ Optional settings
✅ 可选设置
SENTRY_REGION=us # us (default), de
SENTRY_TIMEOUT=30000 # Request timeout in ms
undefinedSENTRY_REGION=us # us(默认)、de
SENTRY_TIMEOUT=30000 # 请求超时时间(毫秒)
undefinedRegional Endpoints
区域端点
Supports US and EU (Germany) regions:
bash
undefined支持美国和欧盟(德国)区域:
bash
undefinedUS (default)
美国(默认)
SENTRY_REGION=us
SENTRY_REGION=us
Base URL: https://sentry.io/api/0/
基础URL: https://sentry.io/api/0/
Germany/EU
德国/欧盟
SENTRY_REGION=de
SENTRY_REGION=de
Base URL: https://de.sentry.io/api/0/
基础URL: https://de.sentry.io/api/0/
undefinedundefinedAPI Endpoints Reference
API端点参考
Organizations
组织
- - List organizations
GET /api/0/organizations/ - - Get organization details
GET /api/0/organizations/{org}/ - - List projects
GET /api/0/organizations/{org}/projects/
- - 列出组织
GET /api/0/organizations/ - - 获取组织详情
GET /api/0/organizations/{org}/ - - 列出项目
GET /api/0/organizations/{org}/projects/
Issues
问题
- - List organization issues
GET /api/0/organizations/{org}/issues/ - - List project issues (deprecated)
GET /api/0/projects/{org}/{project}/issues/ - - Get issue details
GET /api/0/organizations/{org}/issues/{issue_id}/ - - Update issue
PUT /api/0/organizations/{org}/issues/{issue_id}/ - - Delete issue
DELETE /api/0/organizations/{org}/issues/{issue_id}/
- - 列出组织内的问题
GET /api/0/organizations/{org}/issues/ - - 列出项目内的问题(已废弃)
GET /api/0/projects/{org}/{project}/issues/ - - 获取问题详情
GET /api/0/organizations/{org}/issues/{issue_id}/ - - 更新问题
PUT /api/0/organizations/{org}/issues/{issue_id}/ - - 删除问题
DELETE /api/0/organizations/{org}/issues/{issue_id}/
Events
事件
- - List issue events
GET /api/0/organizations/{org}/issues/{issue_id}/events/ - - List project error events
GET /api/0/projects/{org}/{project}/events/ - - Get event details
GET /api/0/projects/{org}/{project}/events/{event_id}/
- - 列出问题的事件
GET /api/0/organizations/{org}/issues/{issue_id}/events/ - - 列出项目的错误事件
GET /api/0/projects/{org}/{project}/events/ - - 获取事件详情
GET /api/0/projects/{org}/{project}/events/{event_id}/
Tags
标签
- - List issue tags
GET /api/0/organizations/{org}/issues/{issue_id}/tags/ - - Get tag values
GET /api/0/organizations/{org}/issues/{issue_id}/tags/{tag}/values/
- - 列出问题的标签
GET /api/0/organizations/{org}/issues/{issue_id}/tags/ - - 获取标签值
GET /api/0/organizations/{org}/issues/{issue_id}/tags/{tag}/values/
Usage Scenarios
使用场景
Scenario 1: List Unresolved Issues
场景1:列出未解决的问题
User Request: "Show me all unresolved Sentry issues"
Skill Actions:
bash
undefined用户请求:"为我列出所有未解决的Sentry问题"
工具操作:
bash
undefinedLoad environment variables
加载环境变量
source skills/jelly-dotenv/load-env.sh
source skills/jelly-dotenv/load-env.sh
Build API URL
构建API URL
SENTRY_BASE_URL="${SENTRY_REGION:-us}"
if [ "$SENTRY_BASE_URL" = "de" ]; then
SENTRY_BASE_URL="https://de.sentry.io"
else
SENTRY_BASE_URL="https://sentry.io"
fi
SENTRY_BASE_URL="${SENTRY_REGION:-us}"
if [ "$SENTRY_BASE_URL" = "de" ]; then
SENTRY_BASE_URL="https://de.sentry.io"
else
SENTRY_BASE_URL="https://sentry.io"
fi
List unresolved issues
列出未解决的问题
curl -s
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/?query=is:unresolved" | jq .
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/?query=is:unresolved" | jq .
undefinedcurl -s
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/?query=is:unresolved" | jq .
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/?query=is:unresolved" | jq .
undefinedScenario 2: Get Issue Details
场景2:获取问题详情
User Request: "Show me details for issue 123456"
Skill Actions:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/123456/" | jq .用户请求:"为我展示问题123456的详情"
工具操作:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/123456/" | jq .Scenario 3: List Recent Events for an Issue
场景3:列出问题的近期事件
User Request: "Show me the last 10 events for issue 123456"
Skill Actions:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/123456/events/?limit=10" | jq .用户请求:"为我展示问题123456的最近10个事件"
工具操作:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/123456/events/?limit=10" | jq .Scenario 4: Search Issues by Query
场景4:按查询语句搜索问题
User Request: "Find all issues containing 'NullPointerException'"
Skill Actions:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/?query=NullPointerException" | jq .用户请求:"查找所有包含'NullPointerException'的问题"
工具操作:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/?query=NullPointerException" | jq .Scenario 5: List Project Error Events
场景5:列出项目的错误事件
User Request: "Show recent errors for my-project"
Skill Actions:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/projects/${SENTRY_ORG}/my-project/events/" | jq .用户请求:"展示my-project项目的近期错误"
工具操作:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/projects/${SENTRY_ORG}/my-project/events/" | jq .Scenario 6: Resolve an Issue
场景6:标记问题为已解决
User Request: "Resolve issue 123456"
Skill Actions:
bash
curl -s -X PUT \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"status": "resolved"}' \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/123456/" | jq .用户请求:"将问题123456标记为已解决"
工具操作:
bash
curl -s -X PUT \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"status": "resolved"}' \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/issues/123456/" | jq .Scenario 7: List Projects in Organization
场景7:列出组织内的项目
User Request: "Show me all Sentry projects"
Skill Actions:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/projects/" | jq .用户请求:"为我展示所有Sentry项目"
工具操作:
bash
curl -s \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" \
"${SENTRY_BASE_URL}/api/0/organizations/${SENTRY_ORG}/projects/" | jq .Security Policy
安全策略
Authentication
认证
- Bearer Token: Authorization header with auth token
- Credentials: Loaded from environment variables only
- Logging: Tokens automatically redacted in logs
- Bearer令牌:通过Authorization头携带认证令牌
- 凭证存储:仅从环境变量加载凭证
- 日志记录:令牌会自动在日志中脱敏
Permissions
权限
- Org Tokens: Recommended for CI/CD and automation
- Personal Tokens: Bound to user permissions
- Scopes: Configure minimal required scopes
- 组织令牌:推荐用于CI/CD和自动化场景
- 个人令牌:与用户权限绑定
- 权限范围:配置最小必要的权限范围
Data Access
数据访问
- Read Operations: Primary focus (GET requests)
- Write Operations: Status updates allowed
- Destructive Operations: Issue deletion requires explicit confirmation
- 读取操作:主要支持GET请求
- 写入操作:允许更新状态
- 破坏性操作:删除问题需要显式确认
Error Handling
错误处理
The skill provides comprehensive error handling with actionable messages:
本工具提供全面的错误处理机制,并给出可执行的提示信息:
Connection Errors
连接错误
- Network issues
- Unreachable API
- Action: Check internet connection and Sentry service status
- 网络问题
- API无法访问
- 操作建议:检查网络连接和Sentry服务状态
Authentication Errors (401)
认证错误(401)
- Invalid or expired token
- Action: Verify SENTRY_AUTH_TOKEN is correct and not expired
- 令牌无效或已过期
- 操作建议:验证SENTRY_AUTH_TOKEN是否正确且未过期
Permission Errors (403)
权限错误(403)
- Insufficient scope or access
- Action: Check token scopes and organization membership
- 权限范围不足或访问被拒绝
- 操作建议:检查令牌权限范围和组织成员身份
Not Found Errors (404)
资源不存在错误(404)
- Invalid organization, project, or issue ID
- Action: Verify resource identifiers
- 组织、项目或问题ID无效
- 操作建议:验证资源标识符是否正确
Rate Limit Errors (429)
速率限制错误(429)
- Too many requests
- Action: Wait and retry (automatic backoff)
- 请求次数过多
- 操作建议:等待后重试(工具会自动退避重试)
Output Formats
输出格式
Markdown (Default)
Markdown(默认)
- Formatted tables with issue details
- Key metrics summary
- Status highlights
- 格式化的问题详情表格
- 关键指标摘要
- 状态高亮显示
JSON
JSON
- Raw API response
- Programmatic access
- Full data structure
- 原始API响应
- 支持程序化访问
- 完整的数据结构
Summary
摘要
- Text overview
- Critical issues only
- Quick scan format
- 文本概览
- 仅显示关键问题
- 快速浏览格式
Bash Helper Functions
Bash辅助函数
For command-line usage with jelly-dotenv:
bash
undefined适用于与jelly-dotenv配合的命令行使用场景:
bash
undefinedLoad environment variables from jelly-dotenv (with fallback to project root)
从jelly-dotenv加载环境变量(备选加载项目根目录的配置)
source skills/jelly-dotenv/load-env.sh
source skills/jelly-dotenv/load-env.sh
Determine base URL
确定基础URL
if [ "${SENTRY_REGION:-us}" = "de" ]; then
SENTRY_BASE_URL="https://de.sentry.io"
else
SENTRY_BASE_URL="https://sentry.io"
fi
if [ "${SENTRY_REGION:-us}" = "de" ]; then
SENTRY_BASE_URL="https://de.sentry.io"
else
SENTRY_BASE_URL="https://sentry.io"
fi
Sentry API curl helper
Sentry API curl辅助函数
sentry-curl() {
local endpoint="$1"
shift
curl -s
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
-H "Content-Type: application/json"
"$@"
"${SENTRY_BASE_URL}/api/0${endpoint}" | jq . }
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
-H "Content-Type: application/json"
"$@"
"${SENTRY_BASE_URL}/api/0${endpoint}" | jq . }
sentry-curl() {
local endpoint="$1"
shift
curl -s
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
-H "Content-Type: application/json"
"$@"
"${SENTRY_BASE_URL}/api/0${endpoint}" | jq . }
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
-H "Content-Type: application/json"
"$@"
"${SENTRY_BASE_URL}/api/0${endpoint}" | jq . }
List unresolved issues
列出未解决的问题
sentry-issues() {
local query="${1:-is:unresolved}"
sentry-curl "/organizations/${SENTRY_ORG}/issues/?query=${query}"
}
sentry-issues() {
local query="${1:-is:unresolved}"
sentry-curl "/organizations/${SENTRY_ORG}/issues/?query=${query}"
}
Get issue details
获取问题详情
sentry-issue() {
local issue_id="$1"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/"
}
sentry-issue() {
local issue_id="$1"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/"
}
List issue events
列出问题的事件
sentry-events() {
local issue_id="$1"
local limit="${2:-10}"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/events/?limit=${limit}"
}
sentry-events() {
local issue_id="$1"
local limit="${2:-10}"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/events/?limit=${limit}"
}
List projects
列出项目
sentry-projects() {
sentry-curl "/organizations/${SENTRY_ORG}/projects/"
}
sentry-projects() {
sentry-curl "/organizations/${SENTRY_ORG}/projects/"
}
Resolve issue
标记问题为已解决
sentry-resolve() {
local issue_id="$1"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/"
-X PUT -d '{"status": "resolved"}' }
-X PUT -d '{"status": "resolved"}' }
sentry-resolve() {
local issue_id="$1"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/"
-X PUT -d '{"status": "resolved"}' }
-X PUT -d '{"status": "resolved"}' }
Ignore issue
标记问题为已忽略
sentry-ignore() {
local issue_id="$1"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/"
-X PUT -d '{"status": "ignored"}' }
-X PUT -d '{"status": "ignored"}' }
undefinedsentry-ignore() {
local issue_id="$1"
sentry-curl "/organizations/${SENTRY_ORG}/issues/${issue_id}/"
-X PUT -d '{"status": "ignored"}' }
-X PUT -d '{"status": "ignored"}' }
undefinedQuick Aliases
快速别名
Add to your or :
~/.bashrc~/.zshrcbash
undefined添加到你的或中:
~/.bashrc~/.zshrcbash
undefinedSentry quick commands
Sentry快速命令
alias sentry-unresolved='sentry-issues "is:unresolved"'
alias sentry-new='sentry-issues "is:unresolved firstSeen:-24h"'
alias sentry-critical='sentry-issues "is:unresolved level:fatal"'
**Usage**:
```bashalias sentry-unresolved='sentry-issues "is:unresolved"'
alias sentry-new='sentry-issues "is:unresolved firstSeen:-24h"'
alias sentry-critical='sentry-issues "is:unresolved level:fatal"'
**使用示例**:
```bashList unresolved issues
列出未解决的问题
sentry-issues
sentry-issues
Get specific issue
获取特定问题
sentry-issue 123456
sentry-issue 123456
List events for issue
列出问题的事件
sentry-events 123456 20
sentry-events 123456 20
List projects
列出项目
sentry-projects
sentry-projects
Resolve an issue
标记问题为已解决
sentry-resolve 123456
sentry-resolve 123456
Search for specific errors
搜索特定错误
sentry-issues "TypeError is:unresolved"
undefinedsentry-issues "TypeError is:unresolved"
undefinedQuery Syntax
查询语法
Sentry supports a powerful search syntax:
Sentry支持强大的搜索语法:
Status Filters
状态筛选
- - Unresolved issues
is:unresolved - - Resolved issues
is:resolved - - Ignored issues
is:ignored
- - 未解决的问题
is:unresolved - - 已解决的问题
is:resolved - - 已忽略的问题
is:ignored
Time Filters
时间筛选
- - First seen in last 24 hours
firstSeen:-24h - - Last seen in past week
lastSeen:-1w - - Created in last 30 days
age:-30d
- - 首次出现在过去24小时内
firstSeen:-24h - - 末次出现在过去一周内
lastSeen:-1w - - 创建于过去30天内
age:-30d
Level Filters
级别筛选
- - Error level issues
level:error - - Fatal/crash level
level:fatal - - Warning level
level:warning
- - 错误级别的问题
level:error - - 致命/崩溃级别的问题
level:fatal - - 警告级别的问题
level:warning
Assignment
分配状态
- - Assigned to someone
is:assigned - - Not assigned
is:unassigned - - Assigned to current user
assigned:me
- - 已分配给某人的问题
is:assigned - - 未分配的问题
is:unassigned - - 分配给当前用户的问题
assigned:me
Combine Filters
组合筛选
bash
undefinedbash
undefinedCritical unresolved issues from today
今日出现的未解决致命问题
sentry-issues "is:unresolved level:fatal firstSeen:-24h"
sentry-issues "is:unresolved level:fatal firstSeen:-24h"
Unassigned errors from past week
过去一周内未解决且未分配的错误
sentry-issues "is:unresolved is:unassigned lastSeen:-1w"
undefinedsentry-issues "is:unresolved is:unassigned lastSeen:-1w"
undefinedIntegration with Claude Code
与Claude Code的集成
This skill activates automatically when users mention:
- "sentry"
- "error tracking"
- "issues"
- "exceptions"
- "crashes"
- "error monitoring"
The skill will:
- Load Sentry credentials from .env
- Execute the requested query
- Format results as Markdown tables
- Provide actionable error messages if something fails
当用户提及以下关键词时,本工具会自动激活:
- "sentry"
- "错误追踪"
- "问题"
- "异常"
- "崩溃"
- "错误监控"
工具会执行以下操作:
- 从.env文件加载Sentry凭证
- 执行用户请求的查询
- 将结果格式化为Markdown表格
- 若执行失败,提供可执行的错误提示信息
Limitations
局限性
- API Rate Limits: Subject to Sentry's rate limiting
- Token Expiry: Personal tokens don't expire, org tokens may
- Data Retention: Limited by Sentry plan retention period
- Project Scope: Single organization per configuration
- API速率限制:受Sentry的速率限制约束
- 令牌过期:个人令牌不会过期,组织令牌可能会过期
- 数据保留:受Sentry套餐的数据保留期限限制
- 项目范围:每次配置仅支持单个组织
Troubleshooting
故障排查
"Configuration error: SENTRY_AUTH_TOKEN is required"
"Configuration error: SENTRY_AUTH_TOKEN is required"
Solution: Add auth token to .env file:
bash
SENTRY_AUTH_TOKEN=sntrys_your_token_here
SENTRY_ORG=my-organization解决方案:在.env文件中添加认证令牌:
bash
SENTRY_AUTH_TOKEN=sntrys_your_token_here
SENTRY_ORG=my-organization"Authentication failed (401)"
"Authentication failed (401)"
Solution:
- Verify token is correct
- Check token hasn't been revoked
- Ensure token has required scopes
解决方案:
- 验证令牌是否正确
- 检查令牌是否未被撤销
- 确保令牌具备必要的权限范围
"Organization not found (404)"
"Organization not found (404)"
Solution: Verify SENTRY_ORG matches your organization slug (not display name)
解决方案:验证SENTRY_ORG是否与你的组织Slug匹配(注意不是组织显示名称)
"Permission denied (403)"
"Permission denied (403)"
Solution:
- Check token scopes include required permissions
- Verify user has access to the organization/project
解决方案:
- 检查令牌的权限范围是否包含所需权限
- 验证用户是否属于该组织/项目
Creating Auth Tokens
创建认证令牌
Organization Auth Token (Recommended)
组织认证令牌(推荐)
- Go to Settings > Developer Settings > Internal Integrations
- Create a new Internal Integration
- Configure required permissions:
- Project: Read
- Issue & Event: Read (or Admin for updates)
- Organization: Read
- Copy the token
- 进入Settings > Developer Settings > Internal Integrations
- 创建新的Internal Integration
- 配置所需权限:
- Project: Read
- Issue & Event: Read(或Admin以支持更新操作)
- Organization: Read
- 复制生成的令牌
Personal Auth Token
个人认证令牌
- Go to Account > API > Auth Tokens
- Click "Create New Token"
- Select required scopes
- Copy the token
- 进入Account > API > Auth Tokens
- 点击"Create New Token"
- 选择所需的权限范围
- 复制生成的令牌