Documentation ¶
Index ¶
- type ACL
- type ACLCursor
- type ACLInput
- type ACLValue
- type AccessKind
- type AccessScope
- type ActivitySubscription
- type ActivitySubscriptionCursor
- type ActivitySubscriptionValue
- type Assignment
- type Authenticity
- type Comment
- type Created
- type Cursor
- type DefaultACL
- type EmailAddress
- type EmailCmd
- type Entity
- type EntityValue
- type Event
- type EventCreated
- type EventCursor
- type EventDetail
- type EventDetailValue
- type EventType
- type ExternalUser
- type ImportInput
- type Label
- type LabelCursor
- type LabelEvent
- type LabelUpdate
- type OAuthClient
- type StatusChange
- type SubmitCommentEmailInput
- type SubmitCommentInput
- type SubmitTicketEmailInput
- type SubmitTicketInput
- type Ticket
- type TicketCursor
- type TicketDeletedEvent
- type TicketEvent
- type TicketMention
- type TicketResolution
- type TicketStatus
- type TicketSubscription
- type TicketWebhookInput
- type TicketWebhookSubscription
- type Tracker
- type TrackerACL
- type TrackerCursor
- type TrackerEvent
- type TrackerInput
- type TrackerSubscription
- type TrackerWebhookInput
- type TrackerWebhookSubscription
- type URL
- type UpdateLabelInput
- type UpdateStatusInput
- type UpdateTicketInput
- type User
- type UserMention
- type UserWebhookInput
- type UserWebhookSubscription
- type Version
- type Visibility
- type WebhookDelivery
- type WebhookDeliveryCursor
- type WebhookEvent
- type WebhookPayload
- type WebhookPayloadValue
- type WebhookSubscription
- type WebhookSubscriptionCursor
- type WebhookSubscriptionValue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ACL ¶
type ACL struct { // Permission to view tickets Browse bool `json:"browse"` // Permission to submit tickets Submit bool `json:"submit"` // Permission to comment on tickets Comment bool `json:"comment"` // Permission to edit tickets Edit bool `json:"edit"` // Permission to resolve, re-open, transfer, or label tickets Triage bool `json:"triage"` // Underlying value of the GraphQL interface Value ACLValue `json:"-"` }
func (*ACL) UnmarshalJSON ¶
type ACLCursor ¶
type ACLCursor struct { Results []TrackerACL `json:"results"` Cursor *Cursor `json:"cursor,omitempty"` }
A cursor for enumerating access control list entries
If there are additional results available, the cursor object may be passed back into the same endpoint to retrieve another page. If the cursor is null, there are no remaining results to return.
type ACLInput ¶
type ACLInput struct { // Permission to view tickets Browse bool `json:"browse"` // Permission to submit tickets Submit bool `json:"submit"` // Permission to comment on tickets Comment bool `json:"comment"` // Permission to edit tickets Edit bool `json:"edit"` // Permission to resolve, re-open, transfer, or label tickets Triage bool `json:"triage"` }
type ACLValue ¶
type ACLValue interface {
// contains filtered or unexported methods
}
ACLValue is one of: TrackerACL | DefaultACL
type AccessKind ¶
type AccessKind string
const ( AccessKindRo AccessKind = "RO" AccessKindRw AccessKind = "RW" )
type AccessScope ¶
type AccessScope string
const ( AccessScopeProfile AccessScope = "PROFILE" AccessScopeTrackers AccessScope = "TRACKERS" AccessScopeTickets AccessScope = "TICKETS" AccessScopeAcls AccessScope = "ACLS" AccessScopeEvents AccessScope = "EVENTS" AccessScopeSubscriptions AccessScope = "SUBSCRIPTIONS" )
type ActivitySubscription ¶
type ActivitySubscription struct { Id int32 `json:"id"` Created gqlclient.Time `json:"created"` // Underlying value of the GraphQL interface Value ActivitySubscriptionValue `json:"-"` }
func (*ActivitySubscription) UnmarshalJSON ¶
func (base *ActivitySubscription) UnmarshalJSON(b []byte) error
type ActivitySubscriptionCursor ¶
type ActivitySubscriptionCursor struct { Results []ActivitySubscription `json:"results"` Cursor *Cursor `json:"cursor,omitempty"` }
A cursor for enumerating subscriptions
If there are additional results available, the cursor object may be passed back into the same endpoint to retrieve another page. If the cursor is null, there are no remaining results to return.
func Subscriptions ¶
type ActivitySubscriptionValue ¶
type ActivitySubscriptionValue interface {
// contains filtered or unexported methods
}
ActivitySubscriptionValue is one of: TrackerSubscription | TicketSubscription
type Assignment ¶
type Authenticity ¶
type Authenticity string
const ( // The server vouches for this information as entered verbatim by the // attributed entity. AuthenticityAuthentic Authenticity = "AUTHENTIC" // The server does not vouch for this information as entered by the attributed // entity, no authentication was provided. AuthenticityUnauthenticated Authenticity = "UNAUTHENTICATED" // The server has evidence that the information has likely been manipulated by // a third-party. AuthenticityTampered Authenticity = "TAMPERED" )
type Comment ¶
type Comment struct { EventType EventType `json:"eventType"` Ticket *Ticket `json:"ticket"` Author *Entity `json:"author"` Text string `json:"text"` Authenticity Authenticity `json:"authenticity"` // If this comment has been edited, this field points to the new revision. SupersededBy *Comment `json:"supersededBy,omitempty"` }
type DefaultACL ¶
type DefaultACL struct { Browse bool `json:"browse"` Submit bool `json:"submit"` Comment bool `json:"comment"` Edit bool `json:"edit"` Triage bool `json:"triage"` }
These ACL policies are applied non-specifically, e.g. the default ACL for all authenticated users.
type EmailAddress ¶
type Entity ¶
type Entity struct { CanonicalName string `json:"canonicalName"` // Underlying value of the GraphQL interface Value EntityValue `json:"-"` }
func (*Entity) UnmarshalJSON ¶
type EntityValue ¶
type EntityValue interface {
// contains filtered or unexported methods
}
EntityValue is one of: User | EmailAddress | ExternalUser
type Event ¶
type Event struct { Id int32 `json:"id"` Created gqlclient.Time `json:"created"` Changes []EventDetail `json:"changes"` Ticket *Ticket `json:"ticket"` }
Represents an event which affects a ticket. Multiple changes can occur in a single event, and are enumerated in the "changes" field.
type EventCreated ¶
type EventCreated struct { Uuid string `json:"uuid"` Event WebhookEvent `json:"event"` Date gqlclient.Time `json:"date"` NewEvent *Event `json:"newEvent"` }
type EventCursor ¶
type EventCursor struct { Results []Event `json:"results"` Cursor *Cursor `json:"cursor,omitempty"` }
A cursor for enumerating events
If there are additional results available, the cursor object may be passed back into the same endpoint to retrieve another page. If the cursor is null, there are no remaining results to return.
type EventDetail ¶
type EventDetail struct { EventType EventType `json:"eventType"` Ticket *Ticket `json:"ticket"` // Underlying value of the GraphQL interface Value EventDetailValue `json:"-"` }
func (*EventDetail) UnmarshalJSON ¶
func (base *EventDetail) UnmarshalJSON(b []byte) error
type EventDetailValue ¶
type EventDetailValue interface {
// contains filtered or unexported methods
}
EventDetailValue is one of: Created | Assignment | Comment | LabelUpdate | StatusChange | UserMention | TicketMention
type EventType ¶
type EventType string
const ( EventTypeCreated EventType = "CREATED" EventTypeComment EventType = "COMMENT" EventTypeStatusChange EventType = "STATUS_CHANGE" EventTypeLabelAdded EventType = "LABEL_ADDED" EventTypeLabelRemoved EventType = "LABEL_REMOVED" EventTypeAssignedUser EventType = "ASSIGNED_USER" EventTypeUnassignedUser EventType = "UNASSIGNED_USER" EventTypeUserMentioned EventType = "USER_MENTIONED" EventTypeTicketMentioned EventType = "TICKET_MENTIONED" )
type ExternalUser ¶
type ExternalUser struct { CanonicalName string `json:"canonicalName"` // <service>:<service specific details...> // e.g. github:ddevault ExternalId string `json:"externalId"` // The canonical external URL for this user, e.g. https://github.com/ddevault ExternalUrl *string `json:"externalUrl,omitempty"` }
type ImportInput ¶
type ImportInput struct { Created gqlclient.Time `json:"created"` // External user ID. By convention this should be "service:username", e.g. // "codeberg:ddevault". ExternalId string `json:"externalId"` // A URL at which the user's external profile may be found, e.g. // "https://codeberg.org/ddevault". ExternalUrl string `json:"externalUrl"` }
This is used for importing tickets from third-party services, and may only be used by the tracker owner. It causes a ticket submission, update, or comment to be attributed to an external user and appear as if it were submitted at a specific time.
type Label ¶
type Label struct { Id int32 `json:"id"` Created gqlclient.Time `json:"created"` Name string `json:"name"` Tracker *Tracker `json:"tracker"` // In CSS hexadecimal format BackgroundColor string `json:"backgroundColor"` ForegroundColor string `json:"foregroundColor"` Tickets *TicketCursor `json:"tickets"` }
type LabelCursor ¶
type LabelCursor struct { Results []Label `json:"results"` Cursor *Cursor `json:"cursor,omitempty"` }
A cursor for enumerating labels
If there are additional results available, the cursor object may be passed back into the same endpoint to retrieve another page. If the cursor is null, there are no remaining results to return.
type LabelEvent ¶
type LabelEvent struct { Uuid string `json:"uuid"` Event WebhookEvent `json:"event"` Date gqlclient.Time `json:"date"` Label *Label `json:"label"` }
type LabelUpdate ¶
type OAuthClient ¶
type OAuthClient struct {
Uuid string `json:"uuid"`
}
type StatusChange ¶
type StatusChange struct { EventType EventType `json:"eventType"` Ticket *Ticket `json:"ticket"` Editor *Entity `json:"editor"` OldStatus TicketStatus `json:"oldStatus"` NewStatus TicketStatus `json:"newStatus"` OldResolution TicketResolution `json:"oldResolution"` NewResolution TicketResolution `json:"newResolution"` }
type SubmitCommentEmailInput ¶
type SubmitCommentEmailInput struct { Text string `json:"text"` SenderId int32 `json:"senderId"` Cmd *EmailCmd `json:"cmd,omitempty"` Resolution *TicketResolution `json:"resolution,omitempty"` LabelIds []int32 `json:"labelIds,omitempty"` }
type SubmitCommentInput ¶
type SubmitCommentInput struct { Text string `json:"text"` Status *TicketStatus `json:"status,omitempty"` Resolution *TicketResolution `json:"resolution,omitempty"` // For use by the tracker owner only Import *ImportInput `json:"import,omitempty"` }
You may omit the status or resolution fields to leave them unchanged (or if you do not have permission to change them). "resolution" is required if status is RESOLVED.
type SubmitTicketEmailInput ¶
type SubmitTicketInput ¶
type Ticket ¶
type Ticket struct { // The ticket ID is unique within each tracker, but is not globally unique. // The first ticket opened on a given tracker will have ID 1, then 2, and so // on. Id int32 `json:"id"` Created gqlclient.Time `json:"created"` Updated gqlclient.Time `json:"updated"` Submitter *Entity `json:"submitter"` Tracker *Tracker `json:"tracker"` // Canonical ticket reference string; may be used in comments to identify the // ticket from anywhere. Ref string `json:"ref"` Subject string `json:"subject"` Body *string `json:"body,omitempty"` Status TicketStatus `json:"status"` Resolution TicketResolution `json:"resolution"` Authenticity Authenticity `json:"authenticity"` Labels []Label `json:"labels"` Assignees []Entity `json:"assignees"` Events *EventCursor `json:"events"` // If the authenticated user is subscribed to this ticket, this is that // subscription. Subscription *TicketSubscription `json:"subscription,omitempty"` // Returns a list of ticket webhook subscriptions. For clients // authenticated with a personal access token, this returns all webhooks // configured by all GraphQL clients for your account. For clients // authenticated with an OAuth 2.0 access token, this returns only webhooks // registered for your client. Webhooks *WebhookSubscriptionCursor `json:"webhooks"` // Returns details of a ticket webhook subscription by its ID. Webhook *WebhookSubscription `json:"webhook,omitempty"` }
type TicketCursor ¶
type TicketCursor struct { Results []Ticket `json:"results"` Cursor *Cursor `json:"cursor,omitempty"` }
A cursor for enumerating tickets
If there are additional results available, the cursor object may be passed back into the same endpoint to retrieve another page. If the cursor is null, there are no remaining results to return.
type TicketDeletedEvent ¶
type TicketEvent ¶
type TicketEvent struct { Uuid string `json:"uuid"` Event WebhookEvent `json:"event"` Date gqlclient.Time `json:"date"` Ticket *Ticket `json:"ticket"` }
type TicketMention ¶
type TicketResolution ¶
type TicketResolution string
const ( TicketResolutionUnresolved TicketResolution = "UNRESOLVED" TicketResolutionClosed TicketResolution = "CLOSED" TicketResolutionFixed TicketResolution = "FIXED" TicketResolutionImplemented TicketResolution = "IMPLEMENTED" TicketResolutionWontFix TicketResolution = "WONT_FIX" TicketResolutionByDesign TicketResolution = "BY_DESIGN" TicketResolutionInvalid TicketResolution = "INVALID" TicketResolutionDuplicate TicketResolution = "DUPLICATE" TicketResolutionNotOurBug TicketResolution = "NOT_OUR_BUG" )
type TicketStatus ¶
type TicketStatus string
const ( TicketStatusReported TicketStatus = "REPORTED" TicketStatusConfirmed TicketStatus = "CONFIRMED" TicketStatusInProgress TicketStatus = "IN_PROGRESS" TicketStatusPending TicketStatus = "PENDING" TicketStatusResolved TicketStatus = "RESOLVED" )
type TicketSubscription ¶
type TicketSubscription struct { Id int32 `json:"id"` Created gqlclient.Time `json:"created"` Ticket *Ticket `json:"ticket"` }
A ticket subscription will notify a participant when activity occurs on a ticket.
type TicketWebhookInput ¶
type TicketWebhookInput struct { Url string `json:"url"` Events []WebhookEvent `json:"events"` Query string `json:"query"` }
type TicketWebhookSubscription ¶
type TicketWebhookSubscription struct { Id int32 `json:"id"` Events []WebhookEvent `json:"events"` Query string `json:"query"` Url string `json:"url"` Client *OAuthClient `json:"client,omitempty"` Deliveries *WebhookDeliveryCursor `json:"deliveries"` Sample string `json:"sample"` Ticket *Ticket `json:"ticket"` }
type Tracker ¶
type Tracker struct { Id int32 `json:"id"` Created gqlclient.Time `json:"created"` Updated gqlclient.Time `json:"updated"` Owner *Entity `json:"owner"` Name string `json:"name"` Description *string `json:"description,omitempty"` Visibility Visibility `json:"visibility"` Ticket *Ticket `json:"ticket"` Tickets *TicketCursor `json:"tickets"` Label *Label `json:"label,omitempty"` Labels *LabelCursor `json:"labels"` // If the authenticated user is subscribed to this tracker, this is that // subscription. Subscription *TrackerSubscription `json:"subscription,omitempty"` // The access control list entry (or the default ACL) which describes the // authenticated user's permissions with respect to this tracker. Acl *ACL `json:"acl,omitempty"` DefaultACL *DefaultACL `json:"defaultACL"` Acls *ACLCursor `json:"acls"` // Returns a URL from which the tracker owner may download a gzipped JSON // archive of the tracker. Export URL `json:"export"` // Returns a list of tracker webhook subscriptions. For clients // authenticated with a personal access token, this returns all webhooks // configured by all GraphQL clients for your account. For clients // authenticated with an OAuth 2.0 access token, this returns only webhooks // registered for your client. Webhooks *WebhookSubscriptionCursor `json:"webhooks"` // Returns details of a tracker webhook subscription by its ID. Webhook *WebhookSubscription `json:"webhook,omitempty"` }
type TrackerACL ¶
type TrackerACL struct { Id int32 `json:"id"` Created gqlclient.Time `json:"created"` Tracker *Tracker `json:"tracker"` Entity *Entity `json:"entity"` Browse bool `json:"browse"` Submit bool `json:"submit"` Comment bool `json:"comment"` Edit bool `json:"edit"` Triage bool `json:"triage"` }
These ACLs are configured for specific entities, and may be used to expand or constrain the rights of a participant.
type TrackerCursor ¶
type TrackerCursor struct { Results []Tracker `json:"results"` Cursor *Cursor `json:"cursor,omitempty"` }
A cursor for enumerating trackers
If there are additional results available, the cursor object may be passed back into the same endpoint to retrieve another page. If the cursor is null, there are no remaining results to return.
type TrackerEvent ¶
type TrackerEvent struct { Uuid string `json:"uuid"` Event WebhookEvent `json:"event"` Date gqlclient.Time `json:"date"` Tracker *Tracker `json:"tracker"` }
type TrackerInput ¶
type TrackerInput struct { Description *string `json:"description,omitempty"` Visibility *Visibility `json:"visibility,omitempty"` }
You may omit any fields to leave them unchanged.
type TrackerSubscription ¶
type TrackerSubscription struct { Id int32 `json:"id"` Created gqlclient.Time `json:"created"` Tracker *Tracker `json:"tracker"` }
A tracker subscription will notify a participant of all activity for a tracker, including all new tickets and their events.
type TrackerWebhookInput ¶
type TrackerWebhookInput struct { Url string `json:"url"` Events []WebhookEvent `json:"events"` Query string `json:"query"` }
type TrackerWebhookSubscription ¶
type TrackerWebhookSubscription struct { Id int32 `json:"id"` Events []WebhookEvent `json:"events"` Query string `json:"query"` Url string `json:"url"` Client *OAuthClient `json:"client,omitempty"` Deliveries *WebhookDeliveryCursor `json:"deliveries"` Sample string `json:"sample"` Tracker *Tracker `json:"tracker"` }
type UpdateLabelInput ¶
type UpdateLabelInput struct { Name *string `json:"name,omitempty"` ForegroundColor *string `json:"foregroundColor,omitempty"` BackgroundColor *string `json:"backgroundColor,omitempty"` }
You may omit any fields to leave them unchanged.
type UpdateStatusInput ¶
type UpdateStatusInput struct { Status TicketStatus `json:"status"` Resolution *TicketResolution `json:"resolution,omitempty"` // For use by the tracker owner only Import *ImportInput `json:"import,omitempty"` }
"resolution" is required if status is RESOLVED.
type UpdateTicketInput ¶
type UpdateTicketInput struct { Subject *string `json:"subject,omitempty"` Body *string `json:"body,omitempty"` // For use by the tracker owner only Import *ImportInput `json:"import,omitempty"` }
You may omit any fields to leave them unchanged. To remove the ticket body, set it to null.
type User ¶
type User struct { Id int32 `json:"id"` Created gqlclient.Time `json:"created"` Updated gqlclient.Time `json:"updated"` CanonicalName string `json:"canonicalName"` Username string `json:"username"` Email string `json:"email"` Url *string `json:"url,omitempty"` Location *string `json:"location,omitempty"` Bio *string `json:"bio,omitempty"` // Returns a specific tracker. Tracker *Tracker `json:"tracker,omitempty"` Trackers *TrackerCursor `json:"trackers"` }
type UserMention ¶
type UserWebhookInput ¶
type UserWebhookInput struct { Url string `json:"url"` Events []WebhookEvent `json:"events"` Query string `json:"query"` }
type UserWebhookSubscription ¶
type UserWebhookSubscription struct { Id int32 `json:"id"` Events []WebhookEvent `json:"events"` Query string `json:"query"` Url string `json:"url"` Client *OAuthClient `json:"client,omitempty"` Deliveries *WebhookDeliveryCursor `json:"deliveries"` Sample string `json:"sample"` }
type Version ¶
type Version struct { Major int32 `json:"major"` Minor int32 `json:"minor"` Patch int32 `json:"patch"` // If this API version is scheduled for deprecation, this is the date on which // it will stop working; or null if this API version is not scheduled for // deprecation. DeprecationDate gqlclient.Time `json:"deprecationDate,omitempty"` }
type Visibility ¶
type Visibility string
const ( VisibilityPublic Visibility = "PUBLIC" VisibilityUnlisted Visibility = "UNLISTED" VisibilityPrivate Visibility = "PRIVATE" )
type WebhookDelivery ¶
type WebhookDelivery struct { Uuid string `json:"uuid"` Date gqlclient.Time `json:"date"` Event WebhookEvent `json:"event"` Subscription *WebhookSubscription `json:"subscription"` RequestBody string `json:"requestBody"` // These details are provided only after a response is received from the // remote server. If a response is sent whose Content-Type is not text/*, or // cannot be decoded as UTF-8, the response body will be null. It will be // truncated after 64 KiB. ResponseBody *string `json:"responseBody,omitempty"` ResponseHeaders *string `json:"responseHeaders,omitempty"` ResponseStatus *int32 `json:"responseStatus,omitempty"` }
type WebhookDeliveryCursor ¶
type WebhookDeliveryCursor struct { Results []WebhookDelivery `json:"results"` Cursor *Cursor `json:"cursor,omitempty"` }
A cursor for enumerating a list of webhook deliveries
If there are additional results available, the cursor object may be passed back into the same endpoint to retrieve another page. If the cursor is null, there are no remaining results to return.
type WebhookEvent ¶
type WebhookEvent string
const ( WebhookEventTrackerCreated WebhookEvent = "TRACKER_CREATED" WebhookEventTrackerUpdate WebhookEvent = "TRACKER_UPDATE" WebhookEventTrackerDeleted WebhookEvent = "TRACKER_DELETED" WebhookEventTicketCreated WebhookEvent = "TICKET_CREATED" WebhookEventTicketUpdate WebhookEvent = "TICKET_UPDATE" WebhookEventTicketDeleted WebhookEvent = "TICKET_DELETED" WebhookEventLabelCreated WebhookEvent = "LABEL_CREATED" WebhookEventLabelUpdate WebhookEvent = "LABEL_UPDATE" WebhookEventLabelDeleted WebhookEvent = "LABEL_DELETED" WebhookEventEventCreated WebhookEvent = "EVENT_CREATED" )
type WebhookPayload ¶
type WebhookPayload struct { Uuid string `json:"uuid"` Event WebhookEvent `json:"event"` Date gqlclient.Time `json:"date"` // Underlying value of the GraphQL interface Value WebhookPayloadValue `json:"-"` }
func (*WebhookPayload) UnmarshalJSON ¶
func (base *WebhookPayload) UnmarshalJSON(b []byte) error
type WebhookPayloadValue ¶
type WebhookPayloadValue interface {
// contains filtered or unexported methods
}
WebhookPayloadValue is one of: TrackerEvent | TicketEvent | TicketDeletedEvent | EventCreated | LabelEvent
type WebhookSubscription ¶
type WebhookSubscription struct { Id int32 `json:"id"` Events []WebhookEvent `json:"events"` Query string `json:"query"` Url string `json:"url"` // If this webhook was registered by an authorized OAuth 2.0 client, this // field is non-null. Client *OAuthClient `json:"client,omitempty"` // All deliveries which have been sent to this webhook. Deliveries *WebhookDeliveryCursor `json:"deliveries"` // Returns a sample payload for this subscription, for testing purposes Sample string `json:"sample"` // Underlying value of the GraphQL interface Value WebhookSubscriptionValue `json:"-"` }
func (*WebhookSubscription) UnmarshalJSON ¶
func (base *WebhookSubscription) UnmarshalJSON(b []byte) error
type WebhookSubscriptionCursor ¶
type WebhookSubscriptionCursor struct { Results []WebhookSubscription `json:"results"` Cursor *Cursor `json:"cursor,omitempty"` }
A cursor for enumerating a list of webhook subscriptions
If there are additional results available, the cursor object may be passed back into the same endpoint to retrieve another page. If the cursor is null, there are no remaining results to return.
type WebhookSubscriptionValue ¶
type WebhookSubscriptionValue interface {
// contains filtered or unexported methods
}
WebhookSubscriptionValue is one of: UserWebhookSubscription | TrackerWebhookSubscription | TicketWebhookSubscription