跳到主要内容
知仓学习社ZHICANG

openai-sentry

Use when the user asks to inspect Sentry issues or events, summarize recent production errors,

读凭据联网严重 0 · 高危 4trailofbits/skills-curated

它会碰到什么

扫了多少2 个文本文件,10 KB
它会碰到什么读凭据联网
命中总数8 处
命中统计严重 0 · 高 4 · 中 2 · 低 2
逐条看命中(4 条严重或高危)
  • scripts/sentry_api.py:161cred-envread
    default=os.environ.get("SENTRY_BASE_URL", DEFAULT_BASE_URL),
  • scripts/sentry_api.py:166cred-envread
    default=os.environ.get("SENTRY_ORG", DEFAULT_ORG),
  • scripts/sentry_api.py:171cred-envread
    default=os.environ.get("SENTRY_PROJECT", DEFAULT_PROJECT),
  • scripts/sentry_api.py:210cred-envread
    token = os.environ.get("SENTRY_AUTH_TOKEN")

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Sentry (Read-only Observability)

Quick start

  • If not already authenticated, ask the user to provide a valid SENTRY_AUTH_TOKEN (read-only scopes such as project:read, event:read) or to log in and create one before running commands.
  • Set SENTRY_AUTH_TOKEN as an env var.
  • Optional defaults: SENTRY_ORG, SENTRY_PROJECT, SENTRY_BASE_URL.
  • Defaults: org/project {your-org}/{your-project}, time range 24h, environment prod, limit 20 (max 50).
  • Always call the Sentry API (no heuristics, no caching).

If the token is missing, give the user these steps:

  1. Create a Sentry auth token: https://sentry.io/settings/account/api/auth-tokens/
  2. Create a token with read-only scopes such as project:read, event:read, and org:read.
  3. Set SENTRY_AUTH_TOKEN as an environment variable in their system.
  4. Offer to guide them through setting the environment variable for their OS/shell if needed.
  • Never ask the user to paste the full token in chat. Ask them to set it locally and confirm when ready.

Core tasks (use bundled script)

Use scripts/sentry_api.py for deterministic API calls. It handles pagination and retries once on transient errors.

Scripts and references are located under {baseDir}/.

API requirements

Always use these endpoints (GET only):

  • List issues: /api/0/projects/{org_slug}/{project_slug}/issues/
  • Issue detail: /api/0/issues/{issue_id}/
  • Events for issue: /api/0/issues/{issue_id}/events/
  • Event detail: /api/0/projects/{org_slug}/{project_slug}/events/{event_id}/

Inputs and defaults

  • org_slug, project_slug: default to {your-org}/{your-project} (avoid non-prod orgs).
  • time_range: default 24h (pass as statsPeriod).
  • environment: default prod.
  • limit: default 20, max 50 (paginate until limit reached).
  • search_query: optional query parameter.
  • issue_short_id: resolve via list-issues query first.

Output formatting rules

  • Issue list: show title, short_id, status, first_seen, last_seen, count, environments, top_tags; order by most recent.
  • Event detail: include culprit, timestamp, environment, release, url.
  • If no results, state explicitly.
  • Redact PII in output (emails, IPs). Do not print raw stack traces.
  • Never echo auth tokens.

Golden test inputs

  • Org: {your-org}
  • Project: {your-project}
  • Issue short ID: {ABC-123}

Example prompt: “List the top 10 open issues for prod in the last 24h.”

Expected: ordered list with titles, short IDs, counts, last seen.

When to Use

<!-- TODO: review -->

When NOT to Use

<!-- TODO: review -->

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。