Przejdź do treści
Biblioteka skilli
DevOps i chmura · Przegląd i audyt

sentry

/sentry

Porządkuje błędy i alerty z Sentry na podstawie linków do problemów, śladów stosu i stanu wydań w wielu organizacjach.

Licencja
MIT
Ostatnia zmiana repozytorium
17.09.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
5
Przestarzałość

Brak sygnałów. Repozytorium zmienione 17.09.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Porządkuje błędy i alerty z Sentry na podstawie linków do problemów, śladów stosu i stanu wydań w wielu organizacjach.

Oryginalny opis (EN)

Use when user references Sentry, sentry.io URLs, *.sentry.io/issues/ links, error/exception/release alerts, pastes a stack trace for triage, or checks release health on cloud or self-hosted. Multi-org via SENTRY_PROFILE.

Jak działa

  1. Overview
  2. When to Use
  3. When NOT to Use
  4. Dependencies
  5. Profile config
  6. Helpers
  7. Dispatch
  8. Safety
  9. Common Mistakes
  10. Token-saving tip
Sekcje z nagłówków SKILL.md, w oryginale · 197 linii, 775 słów
Podgląd SKILL.md
---
name: sentry
description: "Use when user references Sentry, sentry.io URLs, *.sentry.io/issues/ links, error/exception/release alerts, pastes a stack trace for triage, or checks release health on cloud or self-hosted. Multi-org via SENTRY_PROFILE."
user-invocable: true
allowed-tools:
  - Read
  - Write
  - Bash
---

# /sentry — error monitoring (multi-org)

REST against `https://sentry.io/api/0/` (or self-hosted Sentry instance).
Bearer auth with API token. Profiles isolate org/project pairs.

Arguments: `$ARGUMENTS`. Profile resolution: `--profile <name>` → `SENTRY_PROFILE` → `~/.sentry/active_profile` → `[default]`.

## Overview

REST against `https://sentry.io/api/0/` (or self-hosted). Bearer auth with API token. Profiles isolate org/project pairs. Default summary view (no PII) — opt-in `--full` for raw stacktraces.

## When to Use

- Investigating issues during incidents (latest unresolved, last 24h)
- Resolving or assigning issues to teammates
- Release health (new issues per release, commit count)
- Self-hosted Sentry instances (`api_url` per profile)
- Triaging error spikes across multiple projects in one org

## When NOT to Use

- Sending events to Sentry → use the SDK in your app, not this skill
- Bulk operations on hundreds of issues → use Sentry's UI bulk actions
- Sourcemap upload → use `@sentry/cli` or Webpack/Vite plugin
- User management at scale → Sentry's admin UI

## Dependencies

`curl`, `jq`.

## Profile config

`~/.sentry/credentials` (mode 600):

```ini
[default]
api_url = https://sentry.io/api/0
auth_token = sntrys_xxxxxxxxxxxxxxxxxxxxxxxx
org = my-org-slug
project = backend

[work]
api_url = https://sentry.example.com/api/0    # self-hosted
auth_token = sntrys_xxxxxxxxxxxxxxxxxxxxxxxx
org = company-org
project = api

[client_a]
api_url = https://sentry.io/api/0
auth_token = sntrys_xxxxxxxxxxxxxxxxxxxxxxxx
org = client-a-org
project = mobile
```

**Token scopes** (least privilege):

| Operation | Required scope |
|---|---|
| Read issues, events | `event:read` + `project:read` |
| Resolve / assign issues | `event:write` + `project:read` |
| Read releases | `project:releases` |
| Manage members | `org:read` (avoid unless needed) |

Get token: User Settings → Auth Tokens → Create New Token.
Use **org-scoped** tokens (limits to one org) when possible.

## Helpers

> Shared profile/INI/`ctt_*` pattern reference: [profiles-and-credentials](../profiles-and-credentials/SKILL.md).

```bash
source "$HOME/.claude-team-toolkit/lib/credentials.sh"
ctt_load_creds sentry "$PROFILE"

sentry_api() {
  local method="$1" path="$2"; shift 2
  curl -s -X "$method" \
    -H "Authorization: Bearer $CTT_AUTH_TOKEN" \
    -H "Content-Type: application/json" \
    "$@" \
    "$CTT_API_URL$path"
}
```

## Dispatch

### `issues [--query <q>] [--limit N]` — list issues

```bash
Q="${QUERY:-is:unresolved}"
sentry_api GET "/projects/$CTT_ORG/$CTT_PROJECT/issues/?query=$(printf %s "$Q" | jq -sRr @uri)&limit=${LIMIT:-25}" \
  | jq -r '.[] | "\(.shortId)\t\(.level)\t\(.count)\t\(.title)\n  \(.permalink)"'
```

Common queries:
- `is:unresolved` — open issues
- `is:unresolved age:-24h` — last 24h
- `level:error` — errors only
- `release:1.2.3` — specific release
- `assigned:me` — yours

### `issue <issueId>` — full issue detail

```bash
sentry_api GET "/issues/$1/" | jq '{
  id: .shortId, title, level, status, count, userCount,
  firstSeen, lastSeen, assignedTo,
  release: .firstRelease.version,
  permalink
}'
```

### `events <issueId> [--limit N]` — recent events for an issue

```bash
sentry_api GET "/issues/$1/events/?limit=${LIMIT:-10}" \
  | jq -r '.[] | "\(.eventID)\t\(.dateCreated)\t\(.user.email // "—")"'
```

### `event <eventId>` — full event detail (stacktrace + context)

```bash
sentry_api GET "/projects/$CTT_ORG/$CTT_PROJECT/events/$1/" | jq '{
  id: .eventID, message, level, dateCreated,
  user, environment, release, dist,
  exception: (.entries[] | select(.type=="exception") | .data.values[0] | {type, value, frames: (.stacktrace.frames | map({function, filename, lineno}))})
}'
```

### `resolve <issueId>` — mark resolved

```bash
source "$HOME/.claude-team-toolkit/lib/confirm.sh"
ctt_confirm "Resolve issue $1 on $CTT_PROFILE?" || return 1
sentry_api PUT "/issues/$1/" -d '{"status":"resolved"}'
ctt_audit_log sentry "resolved $1"
```

### `assign <issueId> <username>`

```bash
BODY=$(jq -n --arg u "$2" '{assignedTo: $u}')
sentry_api PUT "/issues/$1/" -d "$BODY"
ctt_audit_log sentry "assigned $1 → $2"
```

### `releases [--limit N]` — recent releases

```bash
sentry_api GET "/organizations/$CTT_ORG/releases/?per_page=${LIMIT:-20}" \
  | jq -r '.[] | "\(.version)\t\(.dateCreated)\t\(.newGroups // 0) new issues\t\(.commitCount) commits"'
```

### `release <version>` — release detail + health

```bash
sentry_api GET "/organizations/$CTT_ORG/releases/$1/" | jq '{
  version, dateCreated,
  newGroups, commitCount,
  authors: [.authors[].name],
  projects: [.projects[].slug]
}'
```

### `projects` — list projects in org

```bash
sentry_api GET "/organizations/$CTT_ORG/projects/" \
  | jq -r '.[] | "\(.slug)\t\(.platform)\t\(.id)"'
```

## Safety

- Issue/event content (stacktraces, user data, error messages) often contains
  **PII** — never paste raw output into public chats. The skill should
  default to summary view; `--full` flag opt-in for raw.
- `assignedTo` field can be a user OR a team — confirm with user which.
- Resolve is reversible (status:unresolved) but `delete` is not — there is
  intentionally NO `delete` command in this skill.
- Self-hosted Sentry: `api_url` includes path `/api/0`. Don't forget.
- 429 Too Many Requests: Sentry API rate limit (40 req/s default for free).

## Common Mistakes

- Self-hosted: forgetting `/api/0` in `api_url` → 404 on every call
- Pasting raw event output publicly → leaks PII (user IDs, request bodies)
- Using user-scoped tokens → blast radius is all your orgs. Use org-scoped.
- Resolving without root cause → issue re-opens on next event, frustration loop
- 429 ignored → API gets temp-banned. Respect `Retry-After`.
- Querying with `is:resolved` then surprised it includes old issues — add `age:-Nd` for recency

## Token-saving tip

Use **organization-scoped** tokens. They're limited to one org which limits
blast radius if leaked.

Wersje

RepozytoriumWynikLicencja
Ta strona · tuannv14/claude-team-toolkit100MIT
znlgis/opengis-skills100MIT
TerminalSkills/skills100Apache-2.0
tech-leads-club/agent-skills100MIT
foryourhealth111-pixel/Vibe-Skills100Apache-2.0
getsentry/junior100Apache-2.0
greedychipmunk/agent-skills100MIT
G1Joshi/Agent-Skills100MIT
letta-ai/skills100MIT

Migawka bazy z 28.10.2026 · wersja paczki 093b37d2aa74 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100sentry-api
    Pobiera i przeszukuje błędy z Sentry, czyta ślady stosu, sprawdza wydania i zmienia status problemów przez API.
  • 100sentry-debug
    Pobiera i porządkuje błędy produkcyjne z własnej instancji Sentry i oznacza zgłoszenia jako rozwiązane.
  • 100sentry-release-management
    Zarządza wydaniami w Sentry i przypisuje do nich commity, w tym tworzenie wydań i artefakty wydań.
  • 100sentry-deploy-integration
    Śledzi wdrożenia i wydania w Sentry oraz łączy je z danymi o błędach, razem z kondycją wydań.
  • 95sentry-alerts-issues
    Prowadzi przez konfigurację alertów w Sentry, zarządzanie zgłoszeniami błędów, ich triaż i powiadomienia oraz integracje.
  • 100sentry-integration
    Bada błędy produkcyjne na podstawie linku do Sentry lub prośby o sprawdzenie Sentry, korzystając z narzędzi MCP Sentry do głębokiej analizy.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.