← Public packages
@kentcdodds/sentry
Inspect Sentry organizations, projects, issues, and event summaries.
AGENTS.md
108 lines · 3.1 KB · Markdown@kentcdodds/sentry — agents
Human overview: README.md. Secrets by name only — never
paste token values. Do not disable live webhooks or jobs in dependent packages.
Secrets
| Name | Scope | Notes |
|---|---|---|
sentryAuthToken | user | Bearer for all Sentry REST calls; host-approve sentry.io |
Import paths
import describe from 'kody:@kentcdodds/sentry'
import listOrganizations from 'kody:@kentcdodds/sentry/list-organizations'
import listProjects from 'kody:@kentcdodds/sentry/list-projects'
import resolveProject from 'kody:@kentcdodds/sentry/resolve-project'
import searchIssues from 'kody:@kentcdodds/sentry/search-issues'
import listIssues from 'kody:@kentcdodds/sentry/list-issues'
import getIssue from 'kody:@kentcdodds/sentry/get-issue'
import getLatestIssueEvent from 'kody:@kentcdodds/sentry/get-latest-issue-event'
import getIssueEvents from 'kody:@kentcdodds/sentry/get-issue-events'
import summarizeIssueEvent from 'kody:@kentcdodds/sentry/summarize-issue-event'
import triageIssue from 'kody:@kentcdodds/sentry/triage-issue'
import sentryRequest from 'kody:@kentcdodds/sentry/request'Prefer static kody:@kentcdodds/sentry/... imports from execute. Do not lead
examples with packages.invoke.
Smoke tests (read-only)
List orgs (proves secret + host approval):
import listOrganizations from 'kody:@kentcdodds/sentry/list-organizations'
export default async function main() {
return await listOrganizations()
// => [{ slug: 'kent-c-dodds-tech-llc', name: '...' }]
}Search unresolved (bounded):
import searchIssues from 'kody:@kentcdodds/sentry/search-issues'
import listIssues from 'kody:@kentcdodds/sentry/list-issues'
export default async function main() {
return await searchIssues({
orgSlug: 'kent-c-dodds-tech-llc',
query: 'is:unresolved',
statsPeriod: '24h',
limit: 5,
})
}Triage one known issue:
import triageIssue from 'kody:@kentcdodds/sentry/triage-issue'
export default async function main() {
return await triageIssue({ issueId: '7459536382', recentEventLimit: 3 })
}Escape hatch:
import sentryRequest from 'kody:@kentcdodds/sentry/request'
export default async function main() {
return await sentryRequest({
path: '/organizations/kent-c-dodds-tech-llc/teams/',
})
}Edge cases
pathonrequestmust start with/.search-issues:paginated: truereturns{ issues, nextCursor, previousCursor };includeLatestSummaries: trueattacheslatestEventSummaryper issue.resolve-projectacceptsprojectSlugorprojectIdwithorgSlug.summarize-issue-eventaccepts a rawevent, orissueId(optionally withlatest: true) to fetch then summarize.- Dependent triage packages (
sentry-triage) consume this package; do not rotatesentryAuthTokenor revoke host approval without an explicit ask.
list-issues is an alias of search-issues (same params/return):
import listIssues from 'kody:@kentcdodds/sentry/list-issues'
export default async function main() {
return await listIssues({
orgSlug: 'kent-c-dodds-tech-llc',
query: 'is:unresolved lastSeen:-2h',
limit: 10,
})
}