Install
$ agentstack add skill-justvugg-tools-factory-sentry ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
sentry
Generated by Gutenberg. Use this skill to call the sentry API through the local sentry CLI.
When to use
- The user asks for data exposed by sentry (Alerts, Crons, Dashboards, Discover, Environments, Events).
- An agent task needs structured JSON from https://{region}.sentry.io.
- You need to perform a write/destructive operation on sentry — always preview first, run with
--yesonly on explicit user confirmation.
How to invoke
The skill assumes the generated CLI is on PATH (or invoke via scripts/use-go.sh run ./cmd/sentry from the project directory).
sentry operations
sentry call List Your Organizations --json
sentry sync --json
sentry search "" --json
Preview a write operation (default behavior, no side effects):
sentry call Update an Organization --data '{"example":true}' --json
Execute it (only after explicit user confirmation):
sentry call Update an Organization --data '{"example":true}' --yes --json
Authentication
Set SENTRYAPIKEY in the environment, or pass --api-key .
Operations index
List Your Organizations(GET /api/0/organizations/) — read — Return a list of organizations available to the authenticated session in a region.
This is particularly useful for requests with a user bound context. For API key-based requests this will only return the organization that belongs to the key.
Retrieve an Organization(GET /api/0/organizations/{organizationidor_slug}/) — read — Return details on an individual organization, including various details
such as membership access and teams.
Update an Organization(PUT /api/0/organizations/{organizationidor_slug}/) — write — Update various attributes and configurable settings for the given organization.Get Integration Provider Information(GET /api/0/organizations/{organizationidor_slug}/config/integrations/) — read — Get integration provider information about all available integrations for an organization.List an Organization's Custom Dashboards(GET /api/0/organizations/{organizationidor_slug}/dashboards/) — read — Retrieve a list of custom dashboards that are associated with the given organization.Create a New Dashboard for an Organization(POST /api/0/organizations/{organizationidor_slug}/dashboards/) — write — Create a new dashboard for the given OrganizationRetrieve an Organization's Custom Dashboard(GET /api/0/organizations/{organizationidorslug}/dashboards/{dashboardid}/) — read — Return details about an organization's custom dashboard.Edit an Organization's Custom Dashboard(PUT /api/0/organizations/{organizationidorslug}/dashboards/{dashboardid}/) — write — Edit an organization's custom dashboard as well as any bulk
edits on widgets that may have been made. (For example, widgets that have been rearranged, updated queries and fields, specific display types, and so on.)
Delete an Organization's Custom Dashboard(DELETE /api/0/organizations/{organizationidorslug}/dashboards/{dashboardid}/) — destructive — Delete an organization's custom dashboard.Fetch an Organization's Monitors(GET /api/0/organizations/{organizationidor_slug}/detectors/) — read — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by [New Monitors and Alerts](/product/new-monitors-and-alerts/) and may not be viewable in the UI today.
List an Organization's Monitors
Mutate an Organization's Monitors(PUT /api/0/organizations/{organizationidor_slug}/detectors/) — write — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by [New Monitors and Alerts](/product/new-monitors-and-alerts/) and may not be viewable in the UI today.
Bulk enable or disable an Organization's Monitors
Bulk Delete Monitors(DELETE /api/0/organizations/{organizationidor_slug}/detectors/) — destructive — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by [New Monitors and Alerts](/product/new-monitors-and-alerts/) and may not be viewable in the UI today.
Bulk delete Monitors for a given organization
Fetch a Monitor(GET /api/0/organizations/{organizationidorslug}/detectors/{detectorid}/) — read — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by [New Monitors and Alerts](/product/new-monitors-and-alerts/) and may not be viewable in the UI today.
Return details on an individual monitor
Update a Monitor by ID(PUT /api/0/organizations/{organizationidorslug}/detectors/{detectorid}/) — write — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by [New Monitors and Alerts](/product/new-monitors-and-alerts/) and may not be viewable in the UI today.
Update an existing monitor
Delete a Monitor(DELETE /api/0/organizations/{organizationidorslug}/detectors/{detectorid}/) — destructive — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by [New Monitors and Alerts](/product/new-monitors-and-alerts/) and may not be viewable in the UI today.
Delete a monitor
List an Organization's Discover Saved Queries(GET /api/0/organizations/{organizationidor_slug}/discover/saved/) — read — Retrieve a list of saved queries that are associated with the given organization.Create a New Saved Query(POST /api/0/organizations/{organizationidor_slug}/discover/saved/) — write — Create a new saved query for the given organization.Retrieve an Organization's Discover Saved Query(GET /api/0/organizations/{organizationidorslug}/discover/saved/{queryid}/) — read — Retrieve a saved query.Edit an Organization's Discover Saved Query(PUT /api/0/organizations/{organizationidorslug}/discover/saved/{queryid}/) — write — Modify a saved query.Delete an Organization's Discover Saved Query(DELETE /api/0/organizations/{organizationidorslug}/discover/saved/{queryid}/) — destructive — Delete a saved query.List an Organization's Environments(GET /api/0/organizations/{organizationidor_slug}/environments/) — read — Lists an organization's environments.Resolve an Event ID(GET /api/0/organizations/{organizationidorslug}/eventids/{eventid}/) — read — This resolves an event ID to the project slug and internal issue ID and internal event ID.Query Explore Events in Table Format(GET /api/0/organizations/{organizationidor_slug}/events/) — read — Retrieves explore data for a given organization.
Note: This endpoint is intended to get a table of results, and is not for doing a full export of data sent to Sentry.
The field query parameter determines what fields will be selected in the data and meta keys of the endpoint response.
- The
datakey contains a list of results row by row that match thequerymade - The
metakey contains information about the response, including the unit or type of the fields requested Query Explore Events in Timeseries Format(GET /api/0/organizations/{organizationidor_slug}/events-timeseries/) — read — Retrieves explore data for a given organization as a timeseries.
This endpoint can return timeseries for either 1 or many axis, and results grouped to the top events depending on the parameters passed
Create an External User(POST /api/0/organizations/{organizationidor_slug}/external-users/) — write — Link a user from an external provider to a Sentry user.Update an External User(PUT /api/0/organizations/{organizationidorslug}/external-users/{externaluser_id}/) — write — Update a user in an external provider that is currently linked to a Sentry user.Delete an External User(DELETE /api/0/organizations/{organizationidorslug}/external-users/{externaluser_id}/) — destructive — Delete the link between a user from an external provider and a Sentry user.Retrieve Data Forwarders for an Organization(GET /api/0/organizations/{organizationidor_slug}/forwarding/) — read — Returns a list of data forwarders for an organization.Create a Data Forwarder for an Organization(POST /api/0/organizations/{organizationidor_slug}/forwarding/) — write — Creates a new data forwarder for an organization.
Only one data forwarder can be created per provider for a given organization.
Project-specific overrides can only be created after creating the data forwarder.
Update a Data Forwarder for an Organization(PUT /api/0/organizations/{organizationidorslug}/forwarding/{dataforwarder_id}/) — write — Updates a data forwarder for an organization or update a project-specific override.
Updates to the data forwarder's configuration require org:write permissions, and the entire configuration to be provided, including the project_ids field.
To configure project-specific overrides, specify only the following fields:
- 'project_id': The ID of the project to create/modify the override for.
- 'overrides': Follows the same format as
configbut all provider fields are optional, since only specified fields are overridden. - 'is_enabled': To enable/disable the forwarder for events on the specific project.
Overrides can be performed with project:write permissions on the project being modified.
Delete a Data Forwarder for an Organization(DELETE /api/0/organizations/{organizationidorslug}/forwarding/{dataforwarder_id}/) — destructive — Deletes a data forwarder for an organization. All project-specific overrides will be deleted as well.List an Organization's Available Integrations(GET /api/0/organizations/{organizationidor_slug}/integrations/) — read — Lists all the available Integrations for an Organization.Retrieve an Integration for an Organization(GET /api/0/organizations/{organizationidorslug}/integrations/{integrationid}/) — read — OrganizationIntegrationBaseEndpoints expect both Integration and
OrganizationIntegration DB entries to exist for a given organization and integration_id.
Delete an Integration for an Organization(DELETE /api/0/organizations/{organizationidorslug}/integrations/{integrationid}/) — destructive — OrganizationIntegrationBaseEndpoints expect both Integration and
OrganizationIntegration DB entries to exist for a given organization and integration_id.
List an Organization's Issues(GET /api/0/organizations/{organizationidor_slug}/issues/) — read — Return a list of issues for an organization. All parameters are supplied as query string parameters. A default query ofis:unresolvedis applied. To return all results, use an empty query value (i.e. `?query=).Bulk Mutate an Organization's Issues(PUT /api/0/organizations/{organizationidor_slug}/issues/) — write — Bulk mutate various attributes on a maxmimum of 1000 issues.- For non-status updates, the
idquery parameter is required. - For status updates, the
idquery parameter may be omitted to update issues that match the filtering.
If any IDs are out of scope, the data won't be mutated but the endpoint will still produce a successful response. For example, if no issues were found matching the criteria, a HTTP 204 is returned.
Bulk Remove an Organization's Issues(DELETE /api/0/organizations/{organizationidor_slug}/issues/) — destructive — Permanently remove the given issues. If IDs are provided, queries and filtering will be ignored. If any IDs are out of scope, the data won't be mutated but the endpoint will still produce a successful response. For example, if no issues were found matching the criteria, a HTTP 204 is returned.List an Organization's Members(GET /api/0/organizations/{organizationidor_slug}/members/) — read — List all organization members.
Response includes pending invites that are approved by organization owners or managers but waiting to be accepted by the invitee.
Add a Member to an Organization(POST /api/0/organizations/{organizationidor_slug}/members/) — write — Add or invite a member to an organization.Retrieve an Organization Member(GET /api/0/organizations/{organizationidorslug}/members/{memberid}/) — read — Retrieve an organization member's details.
Response will be a pending invite if it has been approved by organization owners or managers but is waiting to be accepted by the invitee.
Update an Organization Member's Roles(PUT /api/0/organizations/{organizationidorslug}/members/{memberid}/) — write — Update a member's organization-level and team-level roles.
Note that for changing organization-roles, this endpoint is restricted to user auth tokens. Additionally, both the original and desired organization role must have the same or lower permissions than the role of the organization user making the request
For example, an organization Manager may change someone's role from Member to Manager, but not to Owner.
Delete an Organization Member(DELETE /api/0/organizations/{organizationidorslug}/members/{memberid}/) — destructive — Remove an organization member.Add an Organization Member to a Team(POST /api/0/organizations/{organizationidorslug}/members/{memberid}/teams/{teamidor_slug}/) — write — This request can return various success codes depending on the context of the team:201: The member has been successfully added.202: The member needs permission to join the team and an access request
has been generated.
204: The member is already on the team.
If the team is provisioned through an identity provider, the member cannot join the team through Sentry.
Note the permission scopes vary depending on the organization setting "Open Membership" and the type of authorization token. The following table outlines the accepted scopes.
Open Membership
On Off
Internal Integration Token
• org:read
• org:write • team:write
User Auth Token
• org:read
• org:read • org:write • org:read + team:write*
*Organization members are restricted to this scope. When sending a request, it will always return a 202 and request an invite to the team.
\\Team Admins must have both org:read and team:write scopes in their user authorization token to add members to their teams.
Update an Organization Member's Team Role(PUT /api/0/organizations/{organizationidorslug}/members/{memberid}/teams/{teamidor_slug}/) — write — The relevant organization member must already be a part of the team.
Note that for organization admins, managers, and owners, they are automatically granted a minimum team role of admin on all teams they are part of. Read more about team roles.
Delete an Organization Member from a Team(DELETE /api/0/organizations/{organizationidorslug}/members/{memberid}/teams/{teamidor_slug}/) — destructive — Delete an organization member from a team.
Note the permission scopes vary depending on the type of authorization token. The following table outlines the accepted scopes.
Org Auth Token
• org:write • org:admin • team:admin
User Auth Token
• org:read • org:write • org:admin • team:admin • org:read + team:admin*
\*org:read can only be used to remove yourself from the teams you are a member of.
\\Team Admins must have both org:read and **
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: JustVugg
- Source: JustVugg/tools-factory
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.