Documentation ¶
Overview ¶
Package sentry provides a client to access https://sentry.io/api and sentry instances apis.
Index ¶
- Constants
- Variables
- type APIError
- type Activity
- type AlertRule
- type AlertRuleAction
- type AlertRuleCondition
- type Asset
- type Avatar
- type Client
- func (c *Client) AddAlertRule(o Organization, p Project, r AlertRule) (AlertRule, error)
- func (c *Client) AddExistingMemberToTeam(o Organization, t Team, m Member) error
- func (c *Client) BulkDeleteIssues(o Organization, p Project, issues []string) error
- func (c *Client) BulkMutateIssues(o Organization, p Project, req IssueBulkRequest, issues *[]string, ...) (IssueBulkResponse, error)
- func (c *Client) CreateClientKey(o Organization, p Project, name string) (Key, error)
- func (c *Client) CreateMember(o Organization, email string) (Member, error)
- func (c *Client) CreateOrganization(orgname string) (Organization, error)
- func (c *Client) CreateProject(o Organization, t Team, name string, slug *string) (Project, error)
- func (c *Client) CreateRelease(o Organization, p Project, r NewRelease) (Release, error)
- func (c *Client) CreateTeam(o Organization, name string, slug *string) (Team, error)
- func (c *Client) DeleteAlertRule(o Organization, p Project, r AlertRule) error
- func (c *Client) DeleteClientKey(o Organization, p Project, k Key) error
- func (c *Client) DeleteIssue(i Issue) error
- func (c *Client) DeleteMember(o Organization, m Member) error
- func (c *Client) DeleteOrganization(org Organization) error
- func (c *Client) DeleteProject(o Organization, p Project) error
- func (c *Client) DeleteRelease(o Organization, p Project, r Release) error
- func (c *Client) DeleteReleaseFile(o Organization, p Project, r Release, f File) error
- func (c *Client) DeleteTeam(o Organization, t Team) error
- func (c *Client) DisablePlugin(o Organization, p Project, pluginID string) error
- func (c *Client) EnablePlugin(o Organization, p Project, pluginID string) error
- func (c *Client) GetAlertRules(o Organization, p Project) ([]AlertRule, *Link, error)
- func (c *Client) GetClientKeys(o Organization, p Project) ([]Key, error)
- func (c *Client) GetIssue(id string) (Issue, error)
- func (c *Client) GetIssueEvents(i Issue) ([]Event, *Link, error)
- func (c *Client) GetIssueHashes(i Issue) ([]Hash, *Link, error)
- func (c *Client) GetIssueTag(i Issue, tagname string) (IssueTag, error)
- func (c *Client) GetIssueTagValues(i Issue, tag IssueTag) ([]IssueTagValue, *Link, error)
- func (c *Client) GetIssueTags(i Issue) ([]IssueTag, *Link, error)
- func (c *Client) GetIssues(o Organization, p Project, StatsPeriod *string, ShortIDLookup *bool, ...) ([]Issue, *Link, error)
- func (c *Client) GetLatestEvent(i Issue) (Event, error)
- func (c *Client) GetMemberByEmail(o Organization, memberEmail string) (Member, error)
- func (c *Client) GetOldestEvent(i Issue) (Event, error)
- func (c *Client) GetOrgProjects(o Organization) ([]Project, *Link, error)
- func (c *Client) GetOrgProjectsNoPage(o Organization) ([]Project, error)
- func (c *Client) GetOrganization(orgslug string) (Organization, error)
- func (c *Client) GetOrganizationMember(orgslug string, memberID string) (Member, error)
- func (c *Client) GetOrganizationStats(org Organization, stat StatQuery, since, until int64, resolution *string) ([]Stat, error)
- func (c *Client) GetOrganizationTeams(o Organization) ([]Team, error)
- func (c *Client) GetOrganizations() ([]Organization, *Link, error)
- func (c *Client) GetPage(p Page, out interface{}) (*Link, error)
- func (c *Client) GetPlugin(o Organization, p Project, pluginID string) (plugin Plugin, err error)
- func (c *Client) GetProject(o Organization, projslug string) (Project, error)
- func (c *Client) GetProjectEvent(o Organization, p Project, eventID string) (Event, error)
- func (c *Client) GetProjectStats(o Organization, p Project, stat StatQuery, since, until int64, ...) ([]Stat, error)
- func (c *Client) GetProjectUserFeedback(o Organization, p Project) ([]UserFeedback, *Link, error)
- func (c *Client) GetProjects() ([]Project, *Link, error)
- func (c *Client) GetProjectsNoPage() ([]Project, error)
- func (c *Client) GetRelease(o Organization, p Project, version string) (Release, error)
- func (c *Client) GetReleaseFile(o Organization, p Project, r Release, id string) (File, error)
- func (c *Client) GetReleaseFiles(o Organization, p Project, r Release) ([]File, error)
- func (c *Client) GetReleases(o Organization, p Project) ([]Release, *Link, error)
- func (c *Client) GetTeam(o Organization, teamSlug string) (Team, error)
- func (c *Client) GetTeamProjects(o Organization, t Team) ([]Project, error)
- func (c *Client) GetTeamStats(o Organization, t Team, stat StatQuery, since, until int64, resolution *string) ([]Stat, error)
- func (c *Client) GetTeams(o Organization) ([]Team, *Link, error)
- func (c *Client) GetTeamsNoPage(o Organization) ([]Team, error)
- func (c *Client) ListOrganizationUsers(orgslug string) ([]User, error)
- func (c *Client) MakeAdmin(o Organization, a Member) error
- func (c *Client) SetClientKeyRateLimit(o Organization, p Project, k Key, count, window int) (Key, error)
- func (c *Client) SetPluginConfig(o Organization, p Project, pluginID string, config map[string]interface{}) (plugin Plugin, err error)
- func (c *Client) SubmitUserFeedback(o Organization, p Project, u *UserFeedback) error
- func (c *Client) UpdateAlertRule(o Organization, p Project, r AlertRule) (AlertRule, error)
- func (c *Client) UpdateClientKey(o Organization, p Project, k Key, name string) (Key, error)
- func (c *Client) UpdateIssue(i Issue) error
- func (c *Client) UpdateOrganization(org Organization) error
- func (c *Client) UpdateProject(o Organization, p Project) error
- func (c *Client) UpdateRelease(o Organization, p Project, r Release) error
- func (c *Client) UpdateReleaseFile(o Organization, p Project, r Release, f File) error
- func (c *Client) UpdateTeam(o Organization, t Team) error
- func (c *Client) UploadReleaseFile(o Organization, p Project, r Release, name string, buffer io.Reader, ...) (File, error)
- type DSN
- type Entry
- type Event
- type File
- type Hash
- type InternalUser
- type Issue
- type IssueBulkRequest
- type IssueBulkResponse
- type IssueStats
- type IssueTag
- type IssueTagValue
- type Key
- type KeyRateLimit
- type Link
- type Member
- type NewRelease
- type Organization
- type Page
- type Plugin
- type PluginConfigItem
- type Project
- type QueryArgs
- type Quota
- type Release
- type Stat
- type StatQuery
- type Status
- type Tag
- type Team
- type User
- type UserFeedback
Constants ¶
const ( // DefaultHost is the default host that is used DefaultHost = "https://sentry.io" // DefaultEndpoint is the entry point for the api DefaultEndpoint = "/api/0/" // DefaultTimeout is the default timeout and is set to 60 seconds DefaultTimeout = time.Duration(60) * time.Second )
const ( MembersEndpointName = "members" OrgEndpointName = "organizations" UsersEndpointName = "users" )
Variables ¶
var ( AlertRuleMatchAll = alertRuleMatchPolicy("all") AlertRuleMatchAny = alertRuleMatchPolicy("any") AlertRuleMatchNone = alertRuleMatchPolicy("none") )
Functions ¶
This section is empty.
Types ¶
type Activity ¶
type Activity struct { Data *map[string]interface{} `json:"data,omitempty"` DateCreated *time.Time `json:"dateCreated,omitempty"` ID *string `json:"id,omitempty"` Type *string `json:"type,omitempty"` User *InternalUser `json:"user,omitempty"` }
Activity is what current activity has happend on a issue
type AlertRule ¶
type AlertRule struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` DateCreated *time.Time `json:"dateCreated,omitempty"` Environment *string `json:"environment,omitempty"` ActionMatch alertRuleMatchPolicy `json:"actionMatch,omitempty"` Frequency uint `json:"frequency,omitempty"` // run actions at most once every Frequency minutes Conditions []AlertRuleCondition `json:"conditions,omitempty"` Actions []AlertRuleAction `json:"actions,omitempty"` }
type AlertRuleAction ¶
type AlertRuleAction struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Service string `json:"service,omitempty"` }
AlertRuleAction represents alert rule action. Refer to https://github.com/getsentry/sentry/tree/master/src/sentry/rules/actions or GUI to get detailed information.
type AlertRuleCondition ¶
type AlertRuleCondition struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Interval string `json:"interval,omitempty"` // 1m, 1w, 30d etc Value interface{} `json:"value,omitempty"` Attribute string `json:"attribute,omitempty"` Key string `json:"key,omitempty"` }
AlertRuleCondition represents alert rule condition. Refer to https://github.com/getsentry/sentry/tree/master/src/sentry/rules/conditions or GUI to get detailed information.
type Asset ¶
type Asset struct {
URL string `json:"url,omitempty"`
}
Asset is used from a testPlugin. Things like js/html
type Avatar ¶
type Avatar struct { AvatarType *string `json:"avatarType,omitempty"` AvatarUUID *string `json:"avatarUuid,omitempty"` }
Avatar is used for a users avatar
type Client ¶
Client is used to talk to a sentry endpoint. Needs a auth token. If no endpoint this defaults to https://sentry.io/api/0/
func NewClient ¶
NewClient takes a auth token a optional endpoint and optional timeout and will return back a client and error
func (*Client) AddAlertRule ¶
func (*Client) AddExistingMemberToTeam ¶
func (c *Client) AddExistingMemberToTeam(o Organization, t Team, m Member) error
AddExistingMemberToTeam takes a member and adds them to a team
func (*Client) BulkDeleteIssues ¶
func (c *Client) BulkDeleteIssues(o Organization, p Project, issues []string) error
BulkDeleteIssues takes a list of IDs and will delete them
func (*Client) BulkMutateIssues ¶
func (c *Client) BulkMutateIssues(o Organization, p Project, req IssueBulkRequest, issues *[]string, status *Status) (IssueBulkResponse, error)
BulkMutateIssues takes a list of ids and optional status to filter through
func (*Client) CreateClientKey ¶
CreateClientKey creates a new client key for a project and org
func (*Client) CreateMember ¶
func (c *Client) CreateMember(o Organization, email string) (Member, error)
CreateMember takes an email and creates a new member
func (*Client) CreateOrganization ¶
func (c *Client) CreateOrganization(orgname string) (Organization, error)
CreateOrganization creates a organization with a name
func (*Client) CreateProject ¶
CreateProject will create a new project in your org and team
func (*Client) CreateRelease ¶
func (c *Client) CreateRelease(o Organization, p Project, r NewRelease) (Release, error)
CreateRelease will create a new release for a project in a org
func (*Client) CreateTeam ¶
CreateTeam creates a team with a organization object and requires a name and a optional slug
func (*Client) DeleteAlertRule ¶
func (c *Client) DeleteAlertRule(o Organization, p Project, r AlertRule) error
func (*Client) DeleteClientKey ¶
func (c *Client) DeleteClientKey(o Organization, p Project, k Key) error
DeleteClientKey deletes a client key for a project and org
func (*Client) DeleteIssue ¶
DeleteIssue will delete an issue
func (*Client) DeleteMember ¶
func (c *Client) DeleteMember(o Organization, m Member) error
DeleteMember takes a member and deletes from the org
func (*Client) DeleteOrganization ¶
func (c *Client) DeleteOrganization(org Organization) error
DeleteOrganization will delete the Org. There is not way to revert this if you do.
func (*Client) DeleteProject ¶
func (c *Client) DeleteProject(o Organization, p Project) error
DeleteProject will take your org, team, and proj and delete it from sentry.
func (*Client) DeleteRelease ¶
func (c *Client) DeleteRelease(o Organization, p Project, r Release) error
DeleteRelease will delete the release from your project
func (*Client) DeleteReleaseFile ¶
DeleteReleaseFile will remove the file from a sentry release
func (*Client) DeleteTeam ¶
func (c *Client) DeleteTeam(o Organization, t Team) error
DeleteTeam deletes a team from a organization
func (*Client) DisablePlugin ¶
func (c *Client) DisablePlugin(o Organization, p Project, pluginID string) error
func (*Client) EnablePlugin ¶
func (c *Client) EnablePlugin(o Organization, p Project, pluginID string) error
func (*Client) GetAlertRules ¶
func (*Client) GetClientKeys ¶
func (c *Client) GetClientKeys(o Organization, p Project) ([]Key, error)
GetClientKeys fetches all client keys of the given project
func (*Client) GetIssueEvents ¶
GetIssueEvents will fetch all events for a issue
func (*Client) GetIssueHashes ¶
GetIssueHashes will fetch all hashes for a issue
func (*Client) GetIssueTag ¶
GetIssueTag will fetch a tag used in a issue. Eg; environment, release, server
func (*Client) GetIssueTagValues ¶
GetIssueTagValues will fetch all values for a issues tag
func (*Client) GetIssueTags ¶
GetIssueTags will fetch all tags for a issue
func (*Client) GetIssues ¶
func (c *Client) GetIssues(o Organization, p Project, StatsPeriod *string, ShortIDLookup *bool, query *string) ([]Issue, *Link, error)
GetIssues will fetch all issues for organization and project
func (*Client) GetLatestEvent ¶
GetLatestEvent will fetch the latest event for a issue
func (*Client) GetMemberByEmail ¶
func (c *Client) GetMemberByEmail(o Organization, memberEmail string) (Member, error)
GetMemberByEmail takes a user email and returns back the user
func (*Client) GetOldestEvent ¶
GetOldestEvent will fetch the latest event for a issue
func (*Client) GetOrgProjects ¶
func (c *Client) GetOrgProjects(o Organization) ([]Project, *Link, error)
GetOrgProjects fetchs all projects belonging to a organization
func (*Client) GetOrgProjectsNoPage ¶
func (c *Client) GetOrgProjectsNoPage(o Organization) ([]Project, error)
GetOrgProjectsNoPage fetchs all projects belonging to a organization
func (*Client) GetOrganization ¶
func (c *Client) GetOrganization(orgslug string) (Organization, error)
GetOrganization takes a org slug and returns back the org
func (*Client) GetOrganizationMember ¶
GetOrganizationMember returns the member associated with orgslug and memberID
func (*Client) GetOrganizationStats ¶
func (c *Client) GetOrganizationStats(org Organization, stat StatQuery, since, until int64, resolution *string) ([]Stat, error)
GetOrganizationStats fetches stats from the org. Needs a Organization, a StatQuery, a timestamp in seconds since epoch and a optional resolution
func (*Client) GetOrganizationTeams ¶
func (c *Client) GetOrganizationTeams(o Organization) ([]Team, error)
GetOrganizationTeams will fetch all teams for this org
func (*Client) GetOrganizations ¶
func (c *Client) GetOrganizations() ([]Organization, *Link, error)
GetOrganizations will return back every organization in the sentry instance
func (*Client) GetPage ¶
GetPage will fetch a page via the Link object and decode it from out. Should be used like `client.GetPage(link.Previous, make([]Organization, 0))`
func (*Client) GetProject ¶
func (c *Client) GetProject(o Organization, projslug string) (Project, error)
GetProject takes a project slug and returns back the project
func (*Client) GetProjectEvent ¶
GetProjectEvent will fetch a event on a project
func (*Client) GetProjectStats ¶
func (c *Client) GetProjectStats(o Organization, p Project, stat StatQuery, since, until int64, resolution *string) ([]Stat, error)
GetProjectStats will fetch all stats for a specific project. Similar to GetOrganizationStats
func (*Client) GetProjectUserFeedback ¶
func (c *Client) GetProjectUserFeedback(o Organization, p Project) ([]UserFeedback, *Link, error)
GetProjectUserFeedback is used to fetch all feedback given for a certain project
func (*Client) GetProjects ¶
GetProjects fetchs all projects in a sentry instance
func (*Client) GetProjectsNoPage ¶
GetProjectsNoPage fetchs all projects in a sentry instance
func (*Client) GetRelease ¶
GetRelease will fetch a release from your org and project this does need a version string
func (*Client) GetReleaseFile ¶
GetReleaseFile will get the release file
func (*Client) GetReleaseFiles ¶
GetReleaseFiles will fetch all files in a release
func (*Client) GetReleases ¶
GetReleases will fetch all releases from your org and project
func (*Client) GetTeam ¶
func (c *Client) GetTeam(o Organization, teamSlug string) (Team, error)
GetTeam takes a team slug and returns back the team
func (*Client) GetTeamProjects ¶
func (c *Client) GetTeamProjects(o Organization, t Team) ([]Project, error)
GetTeamProjects fetchs all projects for a Team
func (*Client) GetTeamStats ¶
func (c *Client) GetTeamStats(o Organization, t Team, stat StatQuery, since, until int64, resolution *string) ([]Stat, error)
GetTeamStats will fetch all stats for a specific team. Similar to GetOrganizationStats
func (*Client) GetTeams ¶
func (c *Client) GetTeams(o Organization) ([]Team, *Link, error)
GetTeams will take a organization and retrieve a list of teams
func (*Client) GetTeamsNoPage ¶
func (c *Client) GetTeamsNoPage(o Organization) ([]Team, error)
GetTeamsNoPage will take a organization and retrieve a list of teams
func (*Client) ListOrganizationUsers ¶
ListOrganizationUsers returns users in the organization identified by orgslug
func (*Client) MakeAdmin ¶
func (c *Client) MakeAdmin(o Organization, a Member) error
MakeAdmin takes a member and makes them admin
func (*Client) SetClientKeyRateLimit ¶
func (c *Client) SetClientKeyRateLimit(o Organization, p Project, k Key, count, window int) (Key, error)
SetClientKeyRateLimit updates the rate limit only of a key. window is in seconds.
func (*Client) SetPluginConfig ¶
func (*Client) SubmitUserFeedback ¶
func (c *Client) SubmitUserFeedback(o Organization, p Project, u *UserFeedback) error
SubmitUserFeedback is used when you want to submit feedback to a organizations project
func (*Client) UpdateAlertRule ¶
func (*Client) UpdateClientKey ¶
UpdateClientKey updates the name only of a key
func (*Client) UpdateIssue ¶
UpdateIssue will update status, assign to, hasseen, isbookmarked and issubscribed
func (*Client) UpdateOrganization ¶
func (c *Client) UpdateOrganization(org Organization) error
UpdateOrganization takes a organization and updates it on the server side
func (*Client) UpdateProject ¶
func (c *Client) UpdateProject(o Organization, p Project) error
UpdateProject takes a organization and project then updates it on the server side
func (*Client) UpdateRelease ¶
func (c *Client) UpdateRelease(o Organization, p Project, r Release) error
UpdateRelease will update ref, url, started, released for a release. Version should not change.
func (*Client) UpdateReleaseFile ¶
UpdateReleaseFile will update just the name of the release file
func (*Client) UpdateTeam ¶
func (c *Client) UpdateTeam(o Organization, t Team) error
UpdateTeam will update a team on the server side
type DSN ¶
type DSN struct { Secret string `json:"secret,omitempty"` CSP string `json:"csp,omitempty"` Public string `json:"public,omitempty"` }
DSN is the actual connection strings used to send errors
type Entry ¶
type Entry struct { Type string `json:"type,omitempty"` Data json.RawMessage `json:"data,omitempty"` }
Entry is the entry for the message/stacktrace/etc...
func (*Entry) GetInterface ¶
GetInterface will convert the entry into a go interface
type Event ¶
type Event struct { EventID string `json:"eventID,omitempty"` UserReport *string `json:"userReport,omitempty"` NextEventID *string `json:"nextEventID,omitempty"` PreviousEventID *string `json:"previousEventID,omitempty"` Message *string `json:"message,omitempty"` ID *string `json:"id,omitempty"` Size *int `json:"size,omitempty"` Platform *string `json:"platform,omitempty"` Type *string `json:"type,omitempty"` Metadata *map[string]string `json:"metadata,omitempty"` Tags *[]Tag `json:"tags,omitempty"` DateCreated *time.Time `json:"dateCreated,omitempty"` DateReceived *time.Time `json:"dateReceived,omitempty"` User *User `json:"user,omitempty"` Entries []Entry `json:"entries,omitempty"` Packages *map[string]string `json:"packages,omitempty"` SDK *map[string]interface{} `json:"sdk,omitempty"` Contexts *map[string]interface{} `json:"contexts,omitempty"` Context *map[string]interface{} `json:"context,omitempty"` Release *Release `json:"release,omitempty"` GroupID *string `json:"groupID,omitempty"` }
Event is the event that was created on the app and sentry reported on
type File ¶
type File struct { SHA1 string `json:"sha1,omitempty"` Name string `json:"name,omitempty"` DateCreated time.Time `json:"dateCreated,omitempty"` Headers map[string]string `json:"headers,omitempty"` ID string `json:"id,omitempty"` Size int `json:"size,omitempty"` }
File is used to create a new file for a release
type Hash ¶
type Hash struct {
ID string `json:"id,omitempty"`
}
Hash is returned via the issue_id/hashes
type InternalUser ¶
type InternalUser struct { AvatarURL *string `json:"avatarUrl,omitempty"` DateJoined *time.Time `json:"dateJoined,omitempty"` Email *string `json:"email,omitempty"` Has2FA *bool `json:"has2fa,omitempty"` ID *string `json:"iD,omitempty"` IsActive *bool `json:"isActive,omitempty"` IsManaged *bool `json:"isManaged,omitempty"` LastLogin *time.Time `json:"lastLogin,omitempty"` Name *string `json:"name,omitempty"` Username *string `json:"username,omitempty"` }
InternalUser is a user on sentry and not a external customer
type Issue ¶
type Issue struct { Annotations *[]string `json:"annotations,omitempty"` AssignedTo *InternalUser `json:"assignedTo,omitempty"` Activity *[]Activity `json:"activity,omitempty"` Count *string `json:"count,omitempty"` Culprit *string `json:"culprit,omitempty"` FirstSeen *time.Time `json:"firstSeen,omitempty"` HasSeen *bool `json:"hasSeen,omitempty"` ID *string `json:"id,omitempty"` IsBookmarked *bool `json:"isBookmarked,omitempty"` IsPublic *bool `json:"isPublic,omitempty"` IsSubscribed *bool `json:"isSubscribed,omitempty"` LastSeen *time.Time `json:"lastSeen,omitempty"` Level *string `json:"level,omitempty"` Logger *string `json:"logger,omitempty"` Metadata *map[string]interface{} `json:"metadata,omitempty"` NumComments *int `json:"numComments,omitempty"` Permalink *string `json:"permalink,omitempty"` Project *Project `json:"project,omitempty"` ShortID *string `json:"shortId,omitempty"` Stats *IssueStats `json:"stats,omitempty"` Status *Status `json:"status,omitempty"` StatusDetails *map[string]interface{} `json:"statusDetails,omitempty"` SubscriptionDetails *map[string]string `json:"subscriptionDetails,omitempty"` Tags *[]IssueTag `json:"tags,omitempty"` Title *string `json:"title,omitempty"` Type *string `json:"type,omitempty"` UserCount *int `json:"userCount,omitempty"` UserReportCount *int `json:"userReportCount,omitempty"` }
Issue returns a issue found in sentry
type IssueBulkRequest ¶
type IssueBulkRequest struct { Status *Status `json:"status,omitempty"` IgnoreDuration *int `json:"ignoreDuration,omitempty"` IsPublic *bool `json:"isPublic,omitempty"` Merge *bool `json:"merge,omitempty"` HasSeen *bool `json:"hasSeen,omitempty"` IsBookmarked *bool `json:"isBookmarked,omitempty"` }
IssueBulkRequest is what should be used when bulk mutate issue
type IssueBulkResponse ¶
type IssueBulkResponse struct { Status *Status `json:"status,omitempty"` IsPublic *bool `json:"isPublic,omitempty"` StatusDetails *map[string]string `json:"statusDetails,omitempty"` }
IssueBulkResponse is what is returned when your mutation is done
type IssueStats ¶
type IssueStats struct { TwentyFourHour *[]Stat `json:"24h,omitempty"` FourteenDays *[]Stat `json:"14d,omitempty"` ThirtyDays *[]Stat `json:"30d,omitempty"` }
IssueStats is the stats of a issue
type IssueTag ¶
type IssueTag struct { UniqueValues int `json:"uniqueValues,omitempty"` ID string `json:"id,omitempty"` Key string `json:"key,omitempty"` Name string `json:"name,omitempty"` TopValues []IssueTagValue `json:"topValues,omitempty"` }
IssueTag is a tag used in a sentry issue
type IssueTagValue ¶
type IssueTagValue struct { Count *int64 `json:"count,omitempty"` FirstSeen *time.Time `json:"firstSeen,omitempty"` ID *string `json:"iD,omitempty"` Key *string `json:"key,omitempty"` LastSeen *time.Time `json:"lastSeen,omitempty"` Name *string `json:"name,omitempty"` Value *string `json:"value,omitempty"` }
IssueTagValue represents a tags value
type Key ¶
type Key struct { Label string `json:"label,omitempty"` DSN DSN `json:"dsn,omitempty"` Secret string `json:"secret,omitempty"` ID string `json:"id,omitempty"` DateCreated time.Time `json:"dateCreated,omitempty"` Public string `json:"public,omitempty"` RateLimit *KeyRateLimit `json:"rateLimit,omitempty"` }
Key is a DSN that sentry has made
type KeyRateLimit ¶
KeyRateLimit is the rate limit for a DSN
type Link ¶
Link represents a link object as per: https://docs.sentry.io/api/pagination/
type Member ¶
type Member struct { Email string `json:"email,omitempty"` Expired *bool `json:"expired,omitempty"` Name *string `json:"name,omitempty"` IsPending *bool `json:"isPending,omitempty"` DateCreated *time.Time `json:"dateCreated,omitempty"` Role string `json:"role,omitempty"` ID *string `json:"id,omitempty"` RoleName *string `json:"roleName,omitempty"` Teams []string `json:"teams,omitempty"` }
Member is a sentry member
type NewRelease ¶
type NewRelease struct { // Optional commit ref. Ref *string `json:"ref,omitempty"` // Optional URL to point to the online source code URL *string `json:"url,omitempty"` // Required for creating the release Version string `json:"version"` // Optional to set when it started DateStarted *time.Time `json:"dateStarted,omitempty"` // Optional to set when it was released to the public DateReleased *time.Time `json:"dateReleased,omitempty"` }
NewRelease is used to create a new release
type Organization ¶
type Organization struct { PendingAccessRequest *int `json:"pendingAccessRequests,omitempty"` Slug *string `json:"slug,omitempty"` Name string `json:"name"` Quota *Quota `json:"quota,omitempty"` DateCreated *time.Time `json:"dateCreated,omitempty"` Teams *[]Team `json:"teams,omitempty"` ID *string `json:"id,omitempty"` IsEarlyAdopter *bool `json:"isEarlyAdopter,omitempty"` Features *[]string `json:"features,omitempty"` }
Organization is your sentry organization.
type Plugin ¶
type Plugin struct { Assets []Asset `json:"assets,omitempty"` IsTestable bool `json:"isTestable,omitempty"` Enabled bool `json:"enabled,omitempty"` Name string `json:"name,omitempty"` CanDisable bool `json:"canDisable,omitempty"` Type string `json:"type,omitempty"` ID string `json:"id,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` Config []PluginConfigItem `json:"config,omitempty"` }
Plugin is a type of project testPlugin
type PluginConfigItem ¶
type PluginConfigItem struct { ReadOnly bool `json:"readonly,omitempty"` Choices []interface{} `json:"choices,omitempty"` Placeholder string `json:"placeholder,omitempty"` Name string `json:"name,omitempty"` Help string `json:"help,omitempty"` DefaultValue interface{} `json:"defaultValue,omitempty"` Required bool `json:"required,omitempty"` Type string `json:"type,omitempty"` Value interface{} `json:"value,omitempty"` Label string `json:"label,omitempty"` }
PluginConfigItem describes testPlugin option
type Project ¶
type Project struct { Status string `json:"status,omitempty"` Slug *string `json:"slug,omitempty"` DefaultEnvironment *string `json:"defaultEnvironment,omitempty"` Color *string `json:"color,omitempty"` IsPublic bool `json:"isPublic,omitempty"` DateCreated *time.Time `json:"dateCreated,omitempty"` CallSign string `json:"callSign,omitempty"` FirstEvent *time.Time `json:"firstEvent,omitempty"` IsBookmarked bool `json:"isBookmarked,omitempty"` CallSignReviewed bool `json:"callSignReviewed,omitempty"` ID string `json:"id,omitempty"` Name string `json:"name"` Platforms *[]string `json:"platforms,omitempty"` Options *map[string]interface{} `json:"options,omitempty"` Plugins *[]Plugin `json:"plugins,omitempty"` Team *Team `json:"team,omitempty"` Organization *Organization `json:"organization,omitempty"` DigestMinDelay *int `json:"digestMinDelay,omitempty"` DigestMaxDelay *int `json:"digestMaxDelay,omitempty"` VerifySSL *bool `json:"verifySSL,omitempty"` }
Project is your project in sentry
type QueryArgs ¶
type QueryArgs interface {
ToQueryString() string
}
QueryArgs is a simple internal interface
type Release ¶
type Release struct { DateCreated *time.Time `json:"dateCreated,omitempty"` DateReleased *time.Time `json:"dateReleased,omitempty"` DateStarted *time.Time `json:"dateStarted,omitempty"` FirstEvent *time.Time `json:"firstEvent,omitempty"` LastEvent *time.Time `json:"lastEvent,omitempty"` NewGroups *int `json:"newGroups,omitempty"` Owner *string `json:"owner,omitempty"` Ref *string `json:"ref,omitempty"` ShortVersion string `json:"shortVersion"` URL *string `json:"url,omitempty"` Version string `json:"version"` }
Release is your release for a orgs teams project
type Stat ¶
type Stat [2]float64
Stat is used for tetting a time in seconds and the metric in a float
type StatQuery ¶
type StatQuery string
StatQuery is sample type for sending to /stats/ endpoints
const ( // StatReceived is set to received for sending to /stats/ endpoints StatReceived StatQuery = "received" // StatRejected is set to rejected for sending to /stats/ endpoints StatRejected StatQuery = "rejected" // StatBlacklisted is set to blacklisted for sending to /stats/ endpoints StatBlacklisted StatQuery = "blacklisted" )
type Team ¶
type Team struct { Slug *string `json:"slug,omitempty"` Name string `json:"name"` HasAccess *bool `json:"hasAccess,omitempty"` IsPending *bool `json:"isPending,omitempty"` DateCreated *time.Time `json:"dateCreated,omitempty"` IsMember *bool `json:"isMember,omitempty"` ID *string `json:"id,omitempty"` Projects *[]Project `json:"projects,omitempty"` }
Team is a sentry team
type User ¶
type User struct { Username *string `json:"username,omitempty"` Email *string `json:"email,omitempty"` ID *string `json:"id,omitempty"` Name *string `json:"name,omitempty"` Role *string `json:"role,omitempty"` RoleName *string `json:"roleName,omitempty"` Projects []string `json:"projects,omitempty"` }
User is the user that was affected
type UserFeedback ¶
type UserFeedback struct { EventID *string `json:"event_id,omitempty"` Name *string `json:"name,omitempty"` Comments *string `json:"comments,omitempty"` Email *string `json:"email,omitempty"` DateCreated *time.Time `json:"dateCreated,omitempty"` Issue *Issue `json:"issue,omitempty"` ID *string `json:"id,omitempty"` }
UserFeedback is the feedback on a given project and issue
func NewUserFeedback ¶
func NewUserFeedback(name, comments, email, eventID string) UserFeedback
NewUserFeedback will generate a new UserFeedback and type correctly