client

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Overview

Package client contains Linear GraphQL client primitives.

Index

Constants

This section is empty.

Variables

View Source
var ErrAuthFailed = errors.New("auth failed")

ErrAuthFailed marks an authentication/authorization failure from Linear.

View Source
var ErrGraphQL = errors.New("graphql error")

ErrGraphQL marks a GraphQL errors[] response.

View Source
var ErrMutationFailed = errors.New("mutation failed")

ErrMutationFailed marks a mutation payload without success and entity id.

View Source
var ErrNotFound = errors.New("not found")

ErrNotFound marks an expected missing Linear entity.

View Source
var ErrRateLimited = errors.New("rate limited")

ErrRateLimited marks a Linear rate-limit response (HTTP 429 or an HTTP 400 carrying a RATELIMITED GraphQL error code) that survived all retries.

View Source
var ErrTargetMismatch = errors.New("target mismatch")

ErrTargetMismatch marks a resolved target that does not match the pinned target.

View Source
var ErrTargetNotConfigured = errors.New("target not configured")

ErrTargetNotConfigured marks a missing or incomplete pinned target (no org_id/team_key/team_id). It is distinct from ErrTargetMismatch, which is a auth credential that resolves to a target other than the one pinned.

View Source
var ErrViewerNotAssignable = errors.New("viewer is not assignable")

ErrViewerNotAssignable marks a start request whose authenticated viewer cannot own or receive delegated issue work.

View Source
var ErrWriteInvalid = errors.New("invalid write")

ErrWriteInvalid marks a malformed write request. It is shared by every guarded-write surface (issues, cycles, comments, documents, attachments, files), so it lives with the other cross-cutting sentinels rather than on any one entity file.

Functions

func DeleteComment added in v0.3.0

func DeleteComment(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	commentID string,
) (string, error)

DeleteComment removes a comment after resolving the comment and comparing the pinned target through its parent issue. Comment delete is the one approved delete and is restricted to issue-attached comments.

func DeleteIssueRelation added in v0.3.0

func DeleteIssueRelation(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	relationID string,
) (string, error)

DeleteIssueRelation removes an existing relation after resolving the relation and comparing the pinned target for both linked issues.

func DeleteProjectMilestone added in v0.7.0

func DeleteProjectMilestone(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	projectMilestoneID string,
) (string, error)

DeleteProjectMilestone hard deletes a ProjectMilestone after resolving and comparing its project. This is linctl's one approved irreversible write: there is no restore path via linctl.

func GetNotificationsUnreadCount added in v0.7.0

func GetNotificationsUnreadCount(ctx context.Context, graphqlClient graphql.Client) (int, error)

GetNotificationsUnreadCount returns the authenticated user's unread notification count.

Types

type ActorBotSummary added in v0.2.0

type ActorBotSummary struct {
	ID              string `json:"id,omitempty"`
	Type            string `json:"type"`
	SubType         string `json:"sub_type,omitempty"`
	Name            string `json:"name,omitempty"`
	UserDisplayName string `json:"user_display_name,omitempty"`
	AvatarURL       string `json:"avatar_url,omitempty"`
}

ActorBotSummary is compact bot actor metadata without external payload details.

type AgentActivityContentSummary added in v0.2.0

type AgentActivityContentSummary struct {
	Type       string `json:"type"`
	Body       string `json:"body,omitempty"`
	Action     string `json:"action,omitempty"`
	Parameter  string `json:"parameter,omitempty"`
	Result     string `json:"result,omitempty"`
	ReasonCode string `json:"reason_code,omitempty"`
}

AgentActivityContentSummary is the compact content model for an AgentActivity.

type AgentActivityList added in v0.2.0

type AgentActivityList struct {
	AgentActivities []AgentActivitySummary `json:"agent_activities"`
	HasNextPage     bool                   `json:"has_next_page"`
	EndCursor       *string                `json:"end_cursor,omitempty"`
}

AgentActivityList is a page of AgentActivities.

func ListAgentActivities added in v0.2.0

func ListAgentActivities(ctx context.Context, graphqlClient graphql.Client, limit int) (AgentActivityList, error)

ListAgentActivities returns AgentActivities visible to the authenticated user.

type AgentActivitySummary added in v0.2.0

type AgentActivitySummary struct {
	ID              string                      `json:"id"`
	AgentSessionID  string                      `json:"agent_session_id"`
	Content         AgentActivityContentSummary `json:"content"`
	ContentType     string                      `json:"content_type"`
	Signal          string                      `json:"signal,omitempty"`
	Ephemeral       bool                        `json:"ephemeral"`
	SourceCommentID string                      `json:"source_comment_id,omitempty"`
	UserID          string                      `json:"user_id"`
	CreatedAt       string                      `json:"created_at"`
	UpdatedAt       string                      `json:"updated_at"`
	ArchivedAt      string                      `json:"archived_at,omitempty"`
}

AgentActivitySummary is the compact AgentActivity model used by read-only commands.

func GetAgentActivityByID added in v0.2.0

func GetAgentActivityByID(ctx context.Context, graphqlClient graphql.Client, id string) (AgentActivitySummary, error)

GetAgentActivityByID returns one AgentActivity by id.

type AgentSessionList added in v0.4.0

type AgentSessionList struct {
	AgentSessions []AgentSessionSummary `json:"agent_sessions"`
	HasNextPage   bool                  `json:"has_next_page"`
	EndCursor     *string               `json:"end_cursor,omitempty"`
}

AgentSessionList is a page of AgentSessions.

func ListAgentSessions added in v0.4.0

func ListAgentSessions(ctx context.Context, graphqlClient graphql.Client, limit int) (AgentSessionList, error)

ListAgentSessions returns AgentSessions visible to the authenticated user.

type AgentSessionSummary added in v0.4.0

type AgentSessionSummary struct {
	ID              string `json:"id"`
	SlugID          string `json:"slug_id"`
	Status          string `json:"status"`
	Summary         string `json:"summary,omitempty"`
	URL             string `json:"url,omitempty"`
	StartedAt       string `json:"started_at,omitempty"`
	EndedAt         string `json:"ended_at,omitempty"`
	CreatedAt       string `json:"created_at"`
	UpdatedAt       string `json:"updated_at"`
	ArchivedAt      string `json:"archived_at,omitempty"`
	CreatorID       string `json:"creator_id,omitempty"`
	AppUserID       string `json:"app_user_id"`
	IssueID         string `json:"issue_id,omitempty"`
	IssueIdentifier string `json:"issue_identifier,omitempty"`
}

AgentSessionSummary is the compact AgentSession model used by read-only commands.

func GetAgentSessionByID added in v0.4.0

func GetAgentSessionByID(ctx context.Context, graphqlClient graphql.Client, id string) (AgentSessionSummary, error)

GetAgentSessionByID returns one AgentSession by id.

type AgentSkillList added in v0.2.0

type AgentSkillList struct {
	AgentSkills []AgentSkillSummary `json:"agent_skills"`
	HasNextPage bool                `json:"has_next_page"`
	EndCursor   *string             `json:"end_cursor,omitempty"`
}

AgentSkillList is a page of AgentSkills.

func ListAgentSkills added in v0.2.0

func ListAgentSkills(ctx context.Context, graphqlClient graphql.Client, limit int) (AgentSkillList, error)

ListAgentSkills returns AgentSkills visible to the authenticated user.

type AgentSkillSummary added in v0.2.0

type AgentSkillSummary struct {
	ID               string  `json:"id"`
	Title            string  `json:"title"`
	Body             string  `json:"body"`
	Description      string  `json:"description,omitempty"`
	SlugID           string  `json:"slug_id"`
	TeamID           string  `json:"team_id,omitempty"`
	Shared           bool    `json:"shared"`
	Icon             string  `json:"icon,omitempty"`
	Color            string  `json:"color,omitempty"`
	RecentUsageCount float64 `json:"recent_usage_count"`
	CreatedAt        string  `json:"created_at"`
	UpdatedAt        string  `json:"updated_at"`
	ArchivedAt       string  `json:"archived_at,omitempty"`
	LastUsedAt       string  `json:"last_used_at,omitempty"`
	OwnerID          string  `json:"owner_id"`
	CreatorID        string  `json:"creator_id"`
	LastUpdatedByID  string  `json:"last_updated_by_id,omitempty"`
}

AgentSkillSummary is the compact AgentSkill model used by read-only commands.

func GetAgentSkillByID added in v0.2.0

func GetAgentSkillByID(ctx context.Context, graphqlClient graphql.Client, id string) (AgentSkillSummary, error)

GetAgentSkillByID returns one AgentSkill by id.

type ApplicationInfo added in v0.2.0

type ApplicationInfo struct {
	ID           string `json:"id"`
	ClientID     string `json:"client_id"`
	Name         string `json:"name"`
	Description  string `json:"description,omitempty"`
	Developer    string `json:"developer"`
	DeveloperURL string `json:"developer_url"`
	ImageURL     string `json:"image_url,omitempty"`
}

ApplicationInfo is public OAuth application metadata returned by Linear.

func GetApplicationInfo added in v0.2.0

func GetApplicationInfo(ctx context.Context, graphqlClient graphql.Client, clientID string) (ApplicationInfo, error)

GetApplicationInfo returns public OAuth application metadata for a client id.

type AttachmentLinkRequest added in v0.4.0

type AttachmentLinkRequest struct {
	IssueID  string
	URL      string
	Title    string
	Subtitle string
}

AttachmentLinkRequest describes a guarded URL attachment on an issue.

type AttachmentList added in v0.2.0

type AttachmentList struct {
	Attachments []AttachmentSummary `json:"attachments"`
	HasNextPage bool                `json:"has_next_page"`
	EndCursor   *string             `json:"end_cursor,omitempty"`
}

AttachmentList is a page of attachments.

func ListAttachmentIssueAttachments added in v0.2.0

func ListAttachmentIssueAttachments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (AttachmentList, error)

ListAttachmentIssueAttachments returns attachments for the issue associated with one attachment.

func ListAttachmentIssueFormerAttachments added in v0.2.0

func ListAttachmentIssueFormerAttachments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (AttachmentList, error)

ListAttachmentIssueFormerAttachments returns former attachments for the issue associated with one attachment.

func ListAttachments added in v0.2.0

func ListAttachments(ctx context.Context, graphqlClient graphql.Client, limit int) (AttachmentList, error)

ListAttachments returns visible issue attachments.

func ListAttachmentsForURL added in v0.2.0

func ListAttachmentsForURL(
	ctx context.Context,
	graphqlClient graphql.Client,
	url string,
	limit int,
) (AttachmentList, error)

ListAttachmentsForURL returns visible issue attachments linked to a URL.

func ListIssueAttachments added in v0.2.0

func ListIssueAttachments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (AttachmentList, error)

ListIssueAttachments returns attachments associated with one issue.

func ListIssueFormerAttachments added in v0.2.0

func ListIssueFormerAttachments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (AttachmentList, error)

ListIssueFormerAttachments returns attachments formerly associated with one issue.

func ListIssueVCSBranchAttachments added in v0.2.0

func ListIssueVCSBranchAttachments(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (AttachmentList, error)

ListIssueVCSBranchAttachments returns attachments for the issue matched by a VCS branch.

func ListIssueVCSBranchFormerAttachments added in v0.2.0

func ListIssueVCSBranchFormerAttachments(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (AttachmentList, error)

ListIssueVCSBranchFormerAttachments returns former attachments for the issue matched by a VCS branch.

type AttachmentSummary added in v0.2.0

type AttachmentSummary struct {
	ID         string `json:"id"`
	Title      string `json:"title"`
	Subtitle   string `json:"subtitle,omitempty"`
	URL        string `json:"url"`
	SourceType string `json:"source_type,omitempty"`
}

AttachmentSummary is the compact attachment model used by read-only commands.

func GetAttachmentByID added in v0.2.0

func GetAttachmentByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (AttachmentSummary, error)

GetAttachmentByID returns one attachment by Linear id.

func LinkIssueAttachment added in v0.4.0

func LinkIssueAttachment(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request AttachmentLinkRequest,
) (AttachmentSummary, error)

LinkIssueAttachment attaches a URL to an issue after resolving and comparing the pinned write target. The issue must belong to the resolved team.

type AuditEntryTypeList added in v0.2.0

type AuditEntryTypeList struct {
	AuditEntryTypes []AuditEntryTypeSummary `json:"audit_entry_types"`
}

AuditEntryTypeList is the audit entry type catalog.

func ListAuditEntryTypes added in v0.2.0

func ListAuditEntryTypes(ctx context.Context, graphqlClient graphql.Client) (AuditEntryTypeList, error)

ListAuditEntryTypes returns the audit entry type catalog.

type AuditEntryTypeSummary added in v0.2.0

type AuditEntryTypeSummary struct {
	Type        string `json:"type"`
	Description string `json:"description"`
}

AuditEntryTypeSummary is the compact audit entry type catalog model.

type AuthToken

type AuthToken struct {
	// contains filtered or unexported fields
}

AuthToken formats the Linear Authorization header.

func OAuthAccessToken added in v0.5.3

func OAuthAccessToken(value string) AuthToken

OAuthAccessToken sends a Linear OAuth access token as a bearer token.

type CommentBotActor added in v0.2.0

type CommentBotActor struct {
	CommentID string           `json:"comment_id"`
	Bot       *ActorBotSummary `json:"bot,omitempty"`
}

CommentBotActor is the optional bot actor attached to a comment.

func GetCommentBotActor added in v0.2.0

func GetCommentBotActor(ctx context.Context, graphqlClient graphql.Client, id string) (CommentBotActor, error)

GetCommentBotActor returns the bot actor that created a comment, when present.

type CommentChildList added in v0.2.0

type CommentChildList struct {
	CommentID   string                   `json:"comment_id"`
	Comments    []CommentMetadataSummary `json:"comments"`
	HasNextPage bool                     `json:"has_next_page"`
	EndCursor   *string                  `json:"end_cursor,omitempty"`
}

CommentChildList is a page of body-free child comment metadata.

func ListCommentChildren added in v0.2.0

func ListCommentChildren(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (CommentChildList, error)

ListCommentChildren returns child comments without body content.

type CommentList added in v0.2.0

type CommentList struct {
	Comments    []CommentSummary `json:"comments"`
	HasNextPage bool             `json:"has_next_page"`
	EndCursor   *string          `json:"end_cursor,omitempty"`
}

CommentList is a page of comments visible to the authenticated user.

func ListComments added in v0.2.0

func ListComments(ctx context.Context, graphqlClient graphql.Client, limit int) (CommentList, error)

ListComments returns visible comments across parent entity types.

type CommentMetadataSummary added in v0.2.0

type CommentMetadataSummary struct {
	ID                 string  `json:"id"`
	URL                string  `json:"url"`
	CreatedAt          string  `json:"created_at"`
	UpdatedAt          string  `json:"updated_at"`
	EditedAt           *string `json:"edited_at,omitempty"`
	ResolvedAt         *string `json:"resolved_at,omitempty"`
	ParentID           string  `json:"parent_id,omitempty"`
	IssueID            string  `json:"issue_id,omitempty"`
	ProjectID          string  `json:"project_id,omitempty"`
	ProjectUpdateID    string  `json:"project_update_id,omitempty"`
	InitiativeID       string  `json:"initiative_id,omitempty"`
	InitiativeUpdateID string  `json:"initiative_update_id,omitempty"`
	DocumentContentID  string  `json:"document_content_id,omitempty"`
	UserID             string  `json:"user_id,omitempty"`
	UserName           string  `json:"user_name,omitempty"`
	DisplayName        string  `json:"display_name,omitempty"`
}

CommentMetadataSummary is a body-free comment read model for parent-scoped comment lists.

type CommentSummary added in v0.2.0

type CommentSummary struct {
	ID                 string  `json:"id"`
	Body               string  `json:"body"`
	URL                string  `json:"url"`
	CreatedAt          string  `json:"created_at"`
	UpdatedAt          string  `json:"updated_at"`
	EditedAt           *string `json:"edited_at,omitempty"`
	ResolvedAt         *string `json:"resolved_at,omitempty"`
	ParentID           string  `json:"parent_id,omitempty"`
	IssueID            string  `json:"issue_id,omitempty"`
	ProjectID          string  `json:"project_id,omitempty"`
	ProjectUpdateID    string  `json:"project_update_id,omitempty"`
	InitiativeID       string  `json:"initiative_id,omitempty"`
	InitiativeUpdateID string  `json:"initiative_update_id,omitempty"`
	DocumentContentID  string  `json:"document_content_id,omitempty"`
	UserID             string  `json:"user_id,omitempty"`
	UserName           string  `json:"user_name,omitempty"`
	DisplayName        string  `json:"display_name,omitempty"`
}

CommentSummary is the compact read model for top-level comment reads.

func GetCommentByID added in v0.2.0

func GetCommentByID(ctx context.Context, graphqlClient graphql.Client, id string) (CommentSummary, error)

GetCommentByID returns one comment by Linear id.

func ResolveComment added in v0.7.0

func ResolveComment(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	commentID string,
) (CommentSummary, error)

ResolveComment resolves a comment thread after comparing the pinned target through the comment's parent issue.

func UnresolveComment added in v0.7.0

func UnresolveComment(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	commentID string,
) (CommentSummary, error)

UnresolveComment reopens a comment thread after comparing the pinned target through the comment's parent issue.

func UpdateComment added in v0.3.0

func UpdateComment(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request CommentUpdateRequest,
) (CommentSummary, error)

UpdateComment edits a comment after resolving the comment and comparing the pinned target through its parent issue. Only issue-attached comments are guarded; comments on other entities are refused.

type CommentUpdateRequest added in v0.3.0

type CommentUpdateRequest struct {
	ID   string
	Body string
}

CommentUpdateRequest describes a guarded comment edit.

type CustomViewList added in v0.2.0

type CustomViewList struct {
	CustomViews []CustomViewSummary `json:"custom_views"`
	HasNextPage bool                `json:"has_next_page"`
	EndCursor   *string             `json:"end_cursor,omitempty"`
}

CustomViewList is a page of custom views.

func ListCustomViews added in v0.2.0

func ListCustomViews(ctx context.Context, graphqlClient graphql.Client, limit int) (CustomViewList, error)

ListCustomViews returns visible custom views.

type CustomViewPreferences added in v0.2.0

type CustomViewPreferences struct {
	CustomViewID string                      `json:"custom_view_id"`
	ID           string                      `json:"id,omitempty"`
	Type         string                      `json:"type,omitempty"`
	ViewType     string                      `json:"view_type,omitempty"`
	CreatedAt    string                      `json:"created_at,omitempty"`
	UpdatedAt    string                      `json:"updated_at,omitempty"`
	ArchivedAt   string                      `json:"archived_at,omitempty"`
	Values       CustomViewPreferencesValues `json:"values"`
}

CustomViewPreferences is the compact organization preference model for one custom view.

func GetCustomViewOrganizationPreferences added in v0.2.0

func GetCustomViewOrganizationPreferences(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (CustomViewPreferences, error)

GetCustomViewOrganizationPreferences returns organization defaults for one custom view.

func GetCustomViewUserPreferences added in v0.2.0

func GetCustomViewUserPreferences(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (CustomViewPreferences, error)

GetCustomViewUserPreferences returns current-user preferences for one custom view.

type CustomViewPreferencesValues added in v0.2.0

type CustomViewPreferencesValues struct {
	CustomViewID                string   `json:"custom_view_id,omitempty"`
	Layout                      string   `json:"layout,omitempty"`
	ViewOrdering                string   `json:"view_ordering,omitempty"`
	ViewOrderingDirection       string   `json:"view_ordering_direction,omitempty"`
	IssueGrouping               string   `json:"issue_grouping,omitempty"`
	IssueSubGrouping            string   `json:"issue_sub_grouping,omitempty"`
	ShowCompletedIssues         string   `json:"show_completed_issues,omitempty"`
	ShowArchivedItems           bool     `json:"show_archived_items,omitempty"`
	ShowEmptyGroups             bool     `json:"show_empty_groups,omitempty"`
	HiddenColumns               []string `json:"hidden_columns,omitempty"`
	HiddenRows                  []string `json:"hidden_rows,omitempty"`
	HiddenGroupsList            []string `json:"hidden_groups_list,omitempty"`
	ColumnOrderBoard            []string `json:"column_order_board,omitempty"`
	ColumnOrderList             []string `json:"column_order_list,omitempty"`
	ProjectLayout               string   `json:"project_layout,omitempty"`
	ProjectViewOrdering         string   `json:"project_view_ordering,omitempty"`
	ProjectGrouping             string   `json:"project_grouping,omitempty"`
	ProjectSubGrouping          string   `json:"project_sub_grouping,omitempty"`
	ProjectShowEmptyGroups      string   `json:"project_show_empty_groups,omitempty"`
	ProjectShowEmptySubGroups   string   `json:"project_show_empty_sub_groups,omitempty"`
	HasOrganizationPreferences  bool     `json:"has_organization_preferences,omitempty"`
	HasUserPreferences          bool     `json:"has_user_preferences,omitempty"`
	HasEffectivePreferenceValue bool     `json:"has_effective_preference_value,omitempty"`
}

CustomViewPreferencesValues is the compact display-settings model for one custom view.

func GetCustomViewOrganizationPreferenceValues added in v0.2.0

func GetCustomViewOrganizationPreferenceValues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (CustomViewPreferencesValues, error)

GetCustomViewOrganizationPreferenceValues returns organization default display settings for one custom view.

func GetCustomViewPreferenceValues added in v0.2.0

func GetCustomViewPreferenceValues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (CustomViewPreferencesValues, error)

GetCustomViewPreferenceValues returns effective display settings for one custom view.

func GetCustomViewUserPreferenceValues added in v0.2.0

func GetCustomViewUserPreferenceValues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (CustomViewPreferencesValues, error)

GetCustomViewUserPreferenceValues returns current-user display settings for one custom view.

type CustomViewSubscriberStatus added in v0.2.0

type CustomViewSubscriberStatus struct {
	ID             string `json:"id"`
	HasSubscribers bool   `json:"has_subscribers"`
}

CustomViewSubscriberStatus reports whether a custom view has active subscribers.

func GetCustomViewSubscriberStatus added in v0.2.0

func GetCustomViewSubscriberStatus(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (CustomViewSubscriberStatus, error)

GetCustomViewSubscriberStatus returns whether a custom view has active subscribers.

type CustomViewSummary added in v0.2.0

type CustomViewSummary struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	ModelName   string `json:"model_name"`
	Shared      bool   `json:"shared"`
	Color       string `json:"color,omitempty"`
	SlugID      string `json:"slug_id"`
}

CustomViewSummary is the compact custom view model used by read-only commands.

func GetCustomViewByID added in v0.2.0

func GetCustomViewByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (CustomViewSummary, error)

GetCustomViewByID returns one custom view by Linear id or slug.

type CustomerList added in v0.2.0

type CustomerList struct {
	Customers   []CustomerSummary `json:"customers"`
	HasNextPage bool              `json:"has_next_page"`
	EndCursor   *string           `json:"end_cursor,omitempty"`
}

CustomerList is a page of Linear customers.

func ListCustomers added in v0.2.0

func ListCustomers(ctx context.Context, graphqlClient graphql.Client, limit int) (CustomerList, error)

ListCustomers returns visible Linear customers.

type CustomerNeedList added in v0.2.0

type CustomerNeedList struct {
	Needs       []CustomerNeedSummary `json:"customer_needs"`
	HasNextPage bool                  `json:"has_next_page"`
	EndCursor   *string               `json:"end_cursor,omitempty"`
}

CustomerNeedList is a page of Linear customer needs.

func ListCustomerNeeds added in v0.2.0

func ListCustomerNeeds(ctx context.Context, graphqlClient graphql.Client, limit int) (CustomerNeedList, error)

ListCustomerNeeds returns visible Linear customer needs.

type CustomerNeedMetadataSummary added in v0.2.0

type CustomerNeedMetadataSummary struct {
	ID           string  `json:"id"`
	CreatedAt    string  `json:"created_at"`
	UpdatedAt    string  `json:"updated_at"`
	ArchivedAt   string  `json:"archived_at,omitempty"`
	Priority     float64 `json:"priority"`
	URL          string  `json:"url,omitempty"`
	CustomerID   string  `json:"customer_id,omitempty"`
	CustomerName string  `json:"customer_name,omitempty"`
	IssueID      string  `json:"issue_id,omitempty"`
	Issue        string  `json:"issue,omitempty"`
	IssueTitle   string  `json:"issue_title,omitempty"`
	ProjectID    string  `json:"project_id,omitempty"`
	ProjectName  string  `json:"project_name,omitempty"`
}

CustomerNeedMetadataSummary is body-free customer need metadata for issue child reads.

type CustomerNeedProjectAttachment added in v0.2.0

type CustomerNeedProjectAttachment struct {
	CustomerNeedID string             `json:"customer_need_id"`
	Attachment     *AttachmentSummary `json:"attachment,omitempty"`
}

CustomerNeedProjectAttachment is the metadata-only ProjectAttachment linked to a customer need.

func GetCustomerNeedProjectAttachment added in v0.2.0

func GetCustomerNeedProjectAttachment(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (CustomerNeedProjectAttachment, error)

GetCustomerNeedProjectAttachment returns the metadata-only ProjectAttachment linked to one customer need.

type CustomerNeedSummary added in v0.2.0

type CustomerNeedSummary struct {
	ID           string  `json:"id"`
	CreatedAt    string  `json:"created_at"`
	UpdatedAt    string  `json:"updated_at"`
	ArchivedAt   string  `json:"archived_at,omitempty"`
	Priority     float64 `json:"priority"`
	Body         string  `json:"body,omitempty"`
	Content      string  `json:"content,omitempty"`
	URL          string  `json:"url,omitempty"`
	CustomerID   string  `json:"customer_id,omitempty"`
	CustomerName string  `json:"customer_name,omitempty"`
	IssueID      string  `json:"issue_id,omitempty"`
	Issue        string  `json:"issue,omitempty"`
	IssueTitle   string  `json:"issue_title,omitempty"`
	ProjectID    string  `json:"project_id,omitempty"`
	ProjectName  string  `json:"project_name,omitempty"`
}

CustomerNeedSummary is the compact customer need model used by read-only commands.

func GetCustomerNeedByID added in v0.2.0

func GetCustomerNeedByID(ctx context.Context, graphqlClient graphql.Client, id string) (CustomerNeedSummary, error)

GetCustomerNeedByID returns one Linear customer need by id.

type CustomerStatusList added in v0.2.0

type CustomerStatusList struct {
	Statuses    []CustomerStatusSummary `json:"customer_statuses"`
	HasNextPage bool                    `json:"has_next_page"`
	EndCursor   *string                 `json:"end_cursor,omitempty"`
}

CustomerStatusList is a page of Linear customer statuses.

func ListCustomerStatuses added in v0.2.0

func ListCustomerStatuses(ctx context.Context, graphqlClient graphql.Client, limit int) (CustomerStatusList, error)

ListCustomerStatuses returns organization customer lifecycle statuses.

type CustomerStatusSummary added in v0.2.0

type CustomerStatusSummary struct {
	ID          string  `json:"id"`
	Name        string  `json:"name"`
	DisplayName string  `json:"display_name"`
	Color       string  `json:"color"`
	Description string  `json:"description,omitempty"`
	Position    float64 `json:"position"`
	ArchivedAt  string  `json:"archived_at,omitempty"`
}

CustomerStatusSummary is the compact customer status model used by read-only commands.

func GetCustomerStatusByID added in v0.2.0

func GetCustomerStatusByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (CustomerStatusSummary, error)

GetCustomerStatusByID returns one customer lifecycle status by id.

type CustomerSummary added in v0.2.0

type CustomerSummary struct {
	ID                   string   `json:"id"`
	Name                 string   `json:"name"`
	Domains              []string `json:"domains"`
	ExternalIDs          []string `json:"external_ids"`
	SlackChannelID       string   `json:"slack_channel_id,omitempty"`
	StatusID             string   `json:"status_id"`
	StatusName           string   `json:"status_name"`
	TierID               string   `json:"tier_id,omitempty"`
	TierName             string   `json:"tier_name,omitempty"`
	OwnerID              string   `json:"owner_id,omitempty"`
	OwnerDisplayName     string   `json:"owner_display_name,omitempty"`
	Revenue              *int     `json:"revenue,omitempty"`
	Size                 *float64 `json:"size,omitempty"`
	ApproximateNeedCount float64  `json:"approximate_need_count"`
	SlugID               string   `json:"slug_id"`
	URL                  string   `json:"url"`
}

CustomerSummary is the compact customer model used by read-only commands.

func GetCustomerByID added in v0.2.0

func GetCustomerByID(ctx context.Context, graphqlClient graphql.Client, id string) (CustomerSummary, error)

GetCustomerByID returns one Linear customer by id or slug.

type CustomerTierList added in v0.2.0

type CustomerTierList struct {
	Tiers       []CustomerTierSummary `json:"customer_tiers"`
	HasNextPage bool                  `json:"has_next_page"`
	EndCursor   *string               `json:"end_cursor,omitempty"`
}

CustomerTierList is a page of Linear customer tiers.

func ListCustomerTiers added in v0.2.0

func ListCustomerTiers(ctx context.Context, graphqlClient graphql.Client, limit int) (CustomerTierList, error)

ListCustomerTiers returns organization customer tiers.

type CustomerTierSummary added in v0.2.0

type CustomerTierSummary struct {
	ID          string  `json:"id"`
	Name        string  `json:"name"`
	DisplayName string  `json:"display_name"`
	Color       string  `json:"color"`
	Description string  `json:"description,omitempty"`
	Position    float64 `json:"position"`
	ArchivedAt  string  `json:"archived_at,omitempty"`
}

CustomerTierSummary is the compact customer tier model used by read-only commands.

func GetCustomerTierByID added in v0.2.0

func GetCustomerTierByID(ctx context.Context, graphqlClient graphql.Client, id string) (CustomerTierSummary, error)

GetCustomerTierByID returns one customer tier by id.

type CycleCreateRequest added in v0.2.0

type CycleCreateRequest struct {
	Name        string
	Description string
	StartsAt    string
	EndsAt      string
	CompletedAt string
}

CycleCreateRequest describes a guarded Cycle create in the pinned team.

type CycleIssueList added in v0.2.0

type CycleIssueList struct {
	Cycle       CycleSummary   `json:"cycle"`
	Issues      []IssueSummary `json:"issues"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

CycleIssueList is a page of Issues associated with one Cycle.

func ListCycleIssues added in v0.2.0

func ListCycleIssues(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (CycleIssueList, error)

ListCycleIssues returns Issues assigned to one Cycle.

func ListCycleUncompletedIssuesUponClose added in v0.2.0

func ListCycleUncompletedIssuesUponClose(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (CycleIssueList, error)

ListCycleUncompletedIssuesUponClose returns Issues left open when one Cycle closed.

type CycleList added in v0.2.0

type CycleList struct {
	Cycles      []CycleSummary `json:"cycles"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

CycleList is a page of Cycles scoped to a team.

func ListCyclesByTeam added in v0.2.0

func ListCyclesByTeam(
	ctx context.Context,
	graphqlClient graphql.Client,
	teamID string,
	limit int,
) (CycleList, error)

ListCyclesByTeam returns Cycles scoped to a resolved team.

func ListTeamCycles added in v0.2.0

func ListTeamCycles(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (CycleList, error)

ListTeamCycles returns Cycles associated with one Team.

type CycleSummary added in v0.2.0

type CycleSummary struct {
	ID          string  `json:"id"`
	Number      float64 `json:"number"`
	Name        string  `json:"name"`
	Description string  `json:"description,omitempty"`
	StartsAt    string  `json:"starts_at"`
	EndsAt      string  `json:"ends_at"`
	CompletedAt string  `json:"completed_at,omitempty"`
	Progress    float64 `json:"progress"`
	Status      string  `json:"status"`
	TeamID      string  `json:"team_id"`
	TeamKey     string  `json:"team_key"`
	TeamName    string  `json:"team_name"`
}

CycleSummary is the compact Cycle model used by cycle commands.

func ArchiveCycle added in v0.2.0

func ArchiveCycle(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	id string,
) (CycleSummary, error)

ArchiveCycle archives a Cycle after resolving and comparing its team.

func CreateCycle added in v0.2.0

func CreateCycle(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request CycleCreateRequest,
) (CycleSummary, error)

CreateCycle creates a Cycle in the pinned team after target comparison.

func CurrentCycleByTeam added in v0.2.0

func CurrentCycleByTeam(ctx context.Context, graphqlClient graphql.Client, teamID string) (CycleSummary, error)

CurrentCycleByTeam returns the active Cycle for a team, using a server-side isActive filter so history beyond one page never hides the active Cycle.

func GetCycleByID added in v0.2.0

func GetCycleByID(ctx context.Context, graphqlClient graphql.Client, id string) (CycleSummary, error)

GetCycleByID returns a Cycle by Linear id or slug.

func UpdateCycle added in v0.2.0

func UpdateCycle(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request CycleUpdateRequest,
) (CycleSummary, error)

UpdateCycle updates a Cycle after resolving and comparing its team.

type CycleUpdateRequest added in v0.2.0

type CycleUpdateRequest struct {
	ID          string
	Name        string
	Description string
	StartsAt    string
	EndsAt      string
	CompletedAt string
}

CycleUpdateRequest describes a guarded Cycle update.

type DocumentCommentList added in v0.2.0

type DocumentCommentList struct {
	DocumentID  string                   `json:"document_id"`
	Comments    []CommentMetadataSummary `json:"comments"`
	HasNextPage bool                     `json:"has_next_page"`
	EndCursor   *string                  `json:"end_cursor,omitempty"`
}

DocumentCommentList is a page of body-free Comments associated with one Document.

func ListDocumentComments added in v0.2.0

func ListDocumentComments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (DocumentCommentList, error)

ListDocumentComments returns body-free comments associated with one Document.

type DocumentCreateRequest added in v0.3.0

type DocumentCreateRequest struct {
	Title   string
	Content string
}

DocumentCreateRequest describes a guarded document create.

type DocumentList added in v0.2.0

type DocumentList struct {
	Documents   []DocumentSummary `json:"documents"`
	HasNextPage bool              `json:"has_next_page"`
	EndCursor   *string           `json:"end_cursor,omitempty"`
}

DocumentList is a page of Documents.

func ListAttachmentIssueDocuments added in v0.2.0

func ListAttachmentIssueDocuments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (DocumentList, error)

ListAttachmentIssueDocuments returns documents for the issue associated with one attachment.

func ListDocuments added in v0.2.0

func ListDocuments(ctx context.Context, graphqlClient graphql.Client, limit int) (DocumentList, error)

ListDocuments returns visible Documents.

func ListInitiativeDocuments added in v0.2.0

func ListInitiativeDocuments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (DocumentList, error)

ListInitiativeDocuments returns Documents associated with one initiative.

func ListIssueDocuments added in v0.2.0

func ListIssueDocuments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (DocumentList, error)

ListIssueDocuments returns documents associated with one issue.

func ListIssueVCSBranchDocuments added in v0.2.0

func ListIssueVCSBranchDocuments(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (DocumentList, error)

ListIssueVCSBranchDocuments returns documents for the issue matched by a VCS branch.

func ListReleaseDocuments added in v0.2.0

func ListReleaseDocuments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (DocumentList, error)

ListReleaseDocuments returns documents associated with one Linear release.

type DocumentSummary added in v0.2.0

type DocumentSummary struct {
	ID         string `json:"id"`
	Title      string `json:"title"`
	SlugID     string `json:"slug_id"`
	ArchivedAt string `json:"archived_at,omitempty"`
	ParentType string `json:"parent_type,omitempty"`
	ParentID   string `json:"parent_id,omitempty"`
	ParentName string `json:"parent_name,omitempty"`
}

DocumentSummary is the compact Document model used by document commands.

func CreateDocument added in v0.3.0

func CreateDocument(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request DocumentCreateRequest,
) (DocumentSummary, error)

CreateDocument creates a document in the resolved team after target comparison.

func GetDocumentByID added in v0.2.0

func GetDocumentByID(ctx context.Context, graphqlClient graphql.Client, id string) (DocumentSummary, error)

GetDocumentByID returns one Document by id or slug.

func UpdateDocument added in v0.3.0

func UpdateDocument(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request DocumentUpdateRequest,
) (DocumentSummary, error)

UpdateDocument updates an existing document after resolving and comparing the pinned target.

type DocumentUpdateRequest added in v0.3.0

type DocumentUpdateRequest struct {
	ID      string
	Title   string
	Content string
}

DocumentUpdateRequest describes a guarded document update.

type DraftList added in v0.2.0

type DraftList struct {
	Drafts      []DraftSummary `json:"drafts"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

DraftList is a page of the authenticated user's saved drafts.

func ListViewerDrafts added in v0.2.0

func ListViewerDrafts(ctx context.Context, graphqlClient graphql.Client, limit int) (DraftList, error)

ListViewerDrafts returns the authenticated user's saved draft metadata.

type DraftSummary added in v0.2.0

type DraftSummary struct {
	ID          string `json:"id"`
	ParentType  string `json:"parent_type"`
	ParentID    string `json:"parent_id"`
	ParentKey   string `json:"parent_key,omitempty"`
	ParentTitle string `json:"parent_title,omitempty"`
	CreatedAt   string `json:"created_at"`
	UpdatedAt   string `json:"updated_at"`
	ArchivedAt  string `json:"archived_at,omitempty"`
}

DraftSummary is the compact saved draft model used by viewer-scoped draft reads.

type EmojiList added in v0.2.0

type EmojiList struct {
	Emojis      []EmojiSummary `json:"emojis"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

EmojiList is a page of custom emojis.

func ListEmojis added in v0.2.0

func ListEmojis(ctx context.Context, graphqlClient graphql.Client, limit int) (EmojiList, error)

ListEmojis returns custom emojis visible to the authenticated user.

type EmojiSummary added in v0.2.0

type EmojiSummary struct {
	ID     string `json:"id"`
	Name   string `json:"name"`
	URL    string `json:"url"`
	Source string `json:"source"`
}

EmojiSummary is the compact custom emoji model used by read-only commands.

func GetEmojiByID added in v0.2.0

func GetEmojiByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (EmojiSummary, error)

GetEmojiByID returns one custom emoji by Linear id or name.

type EntityExternalLinkList struct {
	Links       []EntityExternalLinkSummary `json:"links"`
	HasNextPage bool                        `json:"has_next_page"`
	EndCursor   *string                     `json:"end_cursor,omitempty"`
}

EntityExternalLinkList is a page of Linear external links.

func ListInitiativeLinks(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (EntityExternalLinkList, error)

ListInitiativeLinks returns external links associated with one initiative.

func ListReleaseLinks(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (EntityExternalLinkList, error)

ListReleaseLinks returns external links associated with one Linear release.

type EntityExternalLinkSummary added in v0.2.0

type EntityExternalLinkSummary struct {
	ID             string  `json:"id"`
	Label          string  `json:"label"`
	URL            string  `json:"url"`
	SortOrder      float64 `json:"sort_order"`
	CreatedAt      string  `json:"created_at"`
	UpdatedAt      string  `json:"updated_at"`
	ArchivedAt     string  `json:"archived_at,omitempty"`
	CreatorID      string  `json:"creator_id,omitempty"`
	CreatorName    string  `json:"creator_name,omitempty"`
	InitiativeID   string  `json:"initiative_id,omitempty"`
	InitiativeName string  `json:"initiative_name,omitempty"`
	ProjectID      string  `json:"project_id,omitempty"`
	ProjectName    string  `json:"project_name,omitempty"`
}

EntityExternalLinkSummary is the compact external link model used by read-only commands.

func GetEntityExternalLinkByID added in v0.2.0

func GetEntityExternalLinkByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (EntityExternalLinkSummary, error)

GetEntityExternalLinkByID returns one Linear external link by id.

type ExternalUserList added in v0.2.0

type ExternalUserList struct {
	ExternalUsers []ExternalUserSummary `json:"external_users"`
	HasNextPage   bool                  `json:"has_next_page"`
	EndCursor     *string               `json:"end_cursor,omitempty"`
}

ExternalUserList is a page of ExternalUsers.

func ListExternalUsers added in v0.2.0

func ListExternalUsers(ctx context.Context, graphqlClient graphql.Client, limit int) (ExternalUserList, error)

ListExternalUsers returns ExternalUsers visible to the authenticated user.

type ExternalUserSummary added in v0.2.0

type ExternalUserSummary struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	DisplayName string `json:"display_name"`
	AvatarURL   string `json:"avatar_url,omitempty"`
	LastSeen    string `json:"last_seen,omitempty"`
	CreatedAt   string `json:"created_at"`
	UpdatedAt   string `json:"updated_at"`
	ArchivedAt  string `json:"archived_at,omitempty"`
}

ExternalUserSummary is the compact ExternalUser model used by read-only commands.

func GetExternalUserByID added in v0.2.0

func GetExternalUserByID(ctx context.Context, graphqlClient graphql.Client, id string) (ExternalUserSummary, error)

GetExternalUserByID returns one ExternalUser by id.

type FavoriteList added in v0.2.0

type FavoriteList struct {
	Favorites   []FavoriteSummary `json:"favorites"`
	HasNextPage bool              `json:"has_next_page"`
	EndCursor   *string           `json:"end_cursor,omitempty"`
}

FavoriteList is a page of favorites.

func ListFavoriteChildren added in v0.2.0

func ListFavoriteChildren(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (FavoriteList, error)

ListFavoriteChildren returns child favorites under a folder favorite.

func ListFavorites added in v0.2.0

func ListFavorites(ctx context.Context, graphqlClient graphql.Client, limit int) (FavoriteList, error)

ListFavorites returns the authenticated user's favorites.

type FavoriteSummary added in v0.2.0

type FavoriteSummary struct {
	ID         string `json:"id"`
	Type       string `json:"type"`
	FolderName string `json:"folder_name,omitempty"`
	URL        string `json:"url,omitempty"`
}

FavoriteSummary is the compact favorite model used by read-only commands.

func GetFavoriteByID added in v0.2.0

func GetFavoriteByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (FavoriteSummary, error)

GetFavoriteByID returns one favorite by Linear id.

type FileUpload added in v0.3.0

type FileUpload struct {
	Filename    string             `json:"filename"`
	ContentType string             `json:"content_type"`
	Size        int                `json:"size"`
	UploadURL   string             `json:"upload_url"`
	AssetURL    string             `json:"asset_url"`
	Headers     []FileUploadHeader `json:"headers"`
}

FileUpload is a prepared upload target: where to PUT the bytes and the permanent asset URL the file is reachable at afterwards.

func PrepareFileUpload added in v0.3.0

func PrepareFileUpload(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	filename string,
	contentType string,
	size int,
) (FileUpload, error)

PrepareFileUpload asks Linear for a pre-signed upload target for a file.

type FileUploadHeader added in v0.3.0

type FileUploadHeader struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

FileUploadHeader is one HTTP header required for the storage PUT request.

type GitAutomationStateList added in v0.2.0

type GitAutomationStateList struct {
	TeamID      string                      `json:"team_id"`
	TeamKey     string                      `json:"team_key"`
	TeamName    string                      `json:"team_name"`
	States      []GitAutomationStateSummary `json:"git_automation_states"`
	HasNextPage bool                        `json:"has_next_page"`
	EndCursor   *string                     `json:"end_cursor,omitempty"`
}

GitAutomationStateList is a page of Git automation rules associated with one Team.

func ListTeamGitAutomationStates added in v0.2.0

func ListTeamGitAutomationStates(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (GitAutomationStateList, error)

ListTeamGitAutomationStates returns Git automation rules associated with one Team.

type GitAutomationStateSummary added in v0.2.0

type GitAutomationStateSummary struct {
	ID                  string `json:"id"`
	Event               string `json:"event"`
	CreatedAt           string `json:"created_at"`
	UpdatedAt           string `json:"updated_at"`
	ArchivedAt          string `json:"archived_at,omitempty"`
	StateID             string `json:"state_id,omitempty"`
	StateName           string `json:"state_name,omitempty"`
	StateType           string `json:"state_type,omitempty"`
	TargetBranchID      string `json:"target_branch_id,omitempty"`
	TargetBranchPattern string `json:"target_branch_pattern,omitempty"`
	TargetBranchIsRegex bool   `json:"target_branch_is_regex"`
}

GitAutomationStateSummary is the compact Git automation rule model used by read-only commands.

type InitiativeHistoryList added in v0.2.0

type InitiativeHistoryList struct {
	History     []InitiativeHistorySummary `json:"history"`
	HasNextPage bool                       `json:"has_next_page"`
	EndCursor   *string                    `json:"end_cursor,omitempty"`
}

InitiativeHistoryList is a page of Linear initiative history records.

func ListInitiativeHistory added in v0.2.0

func ListInitiativeHistory(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (InitiativeHistoryList, error)

ListInitiativeHistory returns history records associated with one initiative.

type InitiativeHistorySummary added in v0.2.0

type InitiativeHistorySummary struct {
	ID           string          `json:"id"`
	InitiativeID string          `json:"initiative_id"`
	EntryCount   int             `json:"entry_count"`
	Entries      json.RawMessage `json:"entries"`
	CreatedAt    string          `json:"created_at"`
	UpdatedAt    string          `json:"updated_at"`
	ArchivedAt   string          `json:"archived_at,omitempty"`
}

InitiativeHistorySummary is the compact initiative history model used by read-only commands.

type InitiativeLabelList added in v0.7.0

type InitiativeLabelList struct {
	InitiativeLabels []InitiativeLabelSummary `json:"initiative_labels"`
	HasNextPage      bool                     `json:"has_next_page"`
	EndCursor        *string                  `json:"end_cursor,omitempty"`
}

InitiativeLabelList is a page of Linear initiative labels.

func ListInitiativeLabels added in v0.7.0

func ListInitiativeLabels(ctx context.Context, graphqlClient graphql.Client, limit int) (InitiativeLabelList, error)

ListInitiativeLabels returns visible Linear initiative labels.

type InitiativeLabelSummary added in v0.7.0

type InitiativeLabelSummary struct {
	ID            string `json:"id"`
	Name          string `json:"name"`
	Description   string `json:"description,omitempty"`
	Color         string `json:"color"`
	IsGroup       bool   `json:"is_group"`
	ParentID      string `json:"parent_id,omitempty"`
	ParentName    string `json:"parent_name,omitempty"`
	ParentColor   string `json:"parent_color,omitempty"`
	LastAppliedAt string `json:"last_applied_at,omitempty"`
	RetiredAt     string `json:"retired_at,omitempty"`
	ArchivedAt    string `json:"archived_at,omitempty"`
	CreatedAt     string `json:"created_at"`
	UpdatedAt     string `json:"updated_at"`
}

InitiativeLabelSummary is the compact initiative label model used by read-only commands.

func GetInitiativeLabelByID added in v0.7.0

func GetInitiativeLabelByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (InitiativeLabelSummary, error)

GetInitiativeLabelByID returns one Linear initiative label by id.

type InitiativeList added in v0.2.0

type InitiativeList struct {
	Initiatives []InitiativeSummary `json:"initiatives"`
	HasNextPage bool                `json:"has_next_page"`
	EndCursor   *string             `json:"end_cursor,omitempty"`
}

InitiativeList is a page of initiatives.

func ListCustomViewInitiatives added in v0.2.0

func ListCustomViewInitiatives(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (InitiativeList, error)

ListCustomViewInitiatives returns initiatives matching one custom view's initiative filter.

func ListInitiatives added in v0.2.0

func ListInitiatives(ctx context.Context, graphqlClient graphql.Client, limit int) (InitiativeList, error)

ListInitiatives returns visible initiatives.

func ListSubInitiatives added in v0.2.0

func ListSubInitiatives(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (InitiativeList, error)

ListSubInitiatives returns child initiatives associated with one initiative.

type InitiativeRelationList added in v0.2.0

type InitiativeRelationList struct {
	Relations   []InitiativeRelationSummary `json:"relations"`
	HasNextPage bool                        `json:"has_next_page"`
	EndCursor   *string                     `json:"end_cursor,omitempty"`
}

InitiativeRelationList is a page of initiative relations.

func ListInitiativeRelations added in v0.2.0

func ListInitiativeRelations(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (InitiativeRelationList, error)

ListInitiativeRelations returns visible parent-child relations between initiatives.

type InitiativeRelationSummary added in v0.2.0

type InitiativeRelationSummary struct {
	ID                    string  `json:"id"`
	ParentInitiativeID    string  `json:"parent_initiative_id"`
	ParentInitiativeName  string  `json:"parent_initiative_name"`
	RelatedInitiativeID   string  `json:"related_initiative_id"`
	RelatedInitiativeName string  `json:"related_initiative_name"`
	SortOrder             float64 `json:"sort_order"`
	CreatedAt             string  `json:"created_at"`
	UpdatedAt             string  `json:"updated_at"`
	ArchivedAt            string  `json:"archived_at,omitempty"`
	UserID                string  `json:"user_id,omitempty"`
	Name                  string  `json:"name,omitempty"`
	DisplayName           string  `json:"display_name,omitempty"`
}

InitiativeRelationSummary is one parent-child relation between initiatives.

func GetInitiativeRelationByID added in v0.2.0

func GetInitiativeRelationByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (InitiativeRelationSummary, error)

GetInitiativeRelationByID returns one initiative relation by Linear id.

type InitiativeSummary added in v0.2.0

type InitiativeSummary struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Status      string `json:"status"`
	Priority    int    `json:"priority"`
	TargetDate  string `json:"target_date,omitempty"`
	SlugID      string `json:"slug_id"`
	URL         string `json:"url"`
}

InitiativeSummary is the compact initiative model used by read-only commands.

func GetInitiativeByID added in v0.2.0

func GetInitiativeByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (InitiativeSummary, error)

GetInitiativeByID returns one initiative by Linear id or slug.

type InitiativeToProjectList added in v0.2.0

type InitiativeToProjectList struct {
	Associations []InitiativeToProjectSummary `json:"associations"`
	HasNextPage  bool                         `json:"has_next_page"`
	EndCursor    *string                      `json:"end_cursor,omitempty"`
}

InitiativeToProjectList is a page of Initiative-to-Project associations.

func ListInitiativeToProjects added in v0.2.0

func ListInitiativeToProjects(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (InitiativeToProjectList, error)

ListInitiativeToProjects returns visible Initiative-to-Project associations.

type InitiativeToProjectSummary added in v0.2.0

type InitiativeToProjectSummary struct {
	ID             string `json:"id"`
	InitiativeID   string `json:"initiative_id"`
	InitiativeName string `json:"initiative_name"`
	ProjectID      string `json:"project_id"`
	ProjectName    string `json:"project_name"`
	ProjectSlugID  string `json:"project_slug_id"`
	ProjectURL     string `json:"project_url"`
	SortOrder      string `json:"sort_order"`
	CreatedAt      string `json:"created_at"`
	UpdatedAt      string `json:"updated_at"`
	ArchivedAt     string `json:"archived_at,omitempty"`
}

InitiativeToProjectSummary is one project association under an Initiative.

func GetInitiativeToProjectByID added in v0.2.0

func GetInitiativeToProjectByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (InitiativeToProjectSummary, error)

GetInitiativeToProjectByID returns one Initiative-to-Project association by Linear id.

type InitiativeUpdateCommentList added in v0.2.0

type InitiativeUpdateCommentList struct {
	InitiativeUpdateID string                   `json:"initiative_update_id"`
	Comments           []CommentMetadataSummary `json:"comments"`
	HasNextPage        bool                     `json:"has_next_page"`
	EndCursor          *string                  `json:"end_cursor,omitempty"`
}

InitiativeUpdateCommentList is a page of body-free Comments associated with one InitiativeUpdate.

func ListInitiativeUpdateComments added in v0.2.0

func ListInitiativeUpdateComments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (InitiativeUpdateCommentList, error)

ListInitiativeUpdateComments returns body-free comments associated with one InitiativeUpdate.

type InitiativeUpdateList added in v0.2.0

type InitiativeUpdateList struct {
	Updates     []InitiativeUpdateSummary `json:"updates"`
	HasNextPage bool                      `json:"has_next_page"`
	EndCursor   *string                   `json:"end_cursor,omitempty"`
}

InitiativeUpdateList is a page of initiative status updates.

func ListInitiativeUpdates added in v0.2.0

func ListInitiativeUpdates(ctx context.Context, graphqlClient graphql.Client, limit int) (InitiativeUpdateList, error)

ListInitiativeUpdates returns visible initiative status updates.

func ListInitiativeUpdatesForInitiative added in v0.2.0

func ListInitiativeUpdatesForInitiative(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (InitiativeUpdateList, error)

ListInitiativeUpdatesForInitiative returns status updates associated with one initiative.

type InitiativeUpdateSummary added in v0.2.0

type InitiativeUpdateSummary struct {
	ID             string `json:"id"`
	Body           string `json:"body"`
	Health         string `json:"health"`
	CreatedAt      string `json:"created_at"`
	UpdatedAt      string `json:"updated_at"`
	URL            string `json:"url"`
	SlugID         string `json:"slug_id"`
	CommentCount   int    `json:"comment_count"`
	InitiativeID   string `json:"initiative_id"`
	InitiativeName string `json:"initiative_name"`
	UserID         string `json:"user_id"`
	Name           string `json:"name"`
	DisplayName    string `json:"display_name"`
}

InitiativeUpdateSummary is one initiative status update.

func GetInitiativeUpdateByID added in v0.2.0

func GetInitiativeUpdateByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (InitiativeUpdateSummary, error)

GetInitiativeUpdateByID returns one initiative update by Linear id.

type IssueBotActor added in v0.2.0

type IssueBotActor struct {
	IssueID string           `json:"issue_id"`
	Bot     *ActorBotSummary `json:"bot,omitempty"`
}

IssueBotActor is the optional bot actor attached to an issue.

func GetAttachmentIssueBotActor added in v0.2.0

func GetAttachmentIssueBotActor(ctx context.Context, graphqlClient graphql.Client, id string) (IssueBotActor, error)

GetAttachmentIssueBotActor returns the issue bot actor associated with one attachment.

func GetIssueBotActor added in v0.2.0

func GetIssueBotActor(ctx context.Context, graphqlClient graphql.Client, id string) (IssueBotActor, error)

GetIssueBotActor returns the bot actor that created an issue, when present.

func GetIssueVCSBranchBotActor added in v0.2.0

func GetIssueVCSBranchBotActor(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
) (IssueBotActor, error)

GetIssueVCSBranchBotActor returns bot actor metadata for the issue matched by a VCS branch.

type IssueCommentList added in v0.2.0

type IssueCommentList struct {
	IssueID     string                `json:"issue_id"`
	Identifier  string                `json:"identifier"`
	Comments    []IssueCommentSummary `json:"comments"`
	HasNextPage bool                  `json:"has_next_page"`
	EndCursor   *string               `json:"end_cursor,omitempty"`
}

IssueCommentList is a page of comments for one issue.

func ListIssueComments added in v0.2.0

func ListIssueComments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueCommentList, error)

ListIssueComments returns comments for one issue by Linear id or identifier.

type IssueCommentMetadataList added in v0.2.0

type IssueCommentMetadataList struct {
	IssueID     string                   `json:"issue_id"`
	Identifier  string                   `json:"identifier"`
	Comments    []CommentMetadataSummary `json:"comments"`
	HasNextPage bool                     `json:"has_next_page"`
	EndCursor   *string                  `json:"end_cursor,omitempty"`
}

IssueCommentMetadataList is a page of body-free comments for one issue-like root.

func ListAttachmentIssueComments added in v0.2.0

func ListAttachmentIssueComments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueCommentMetadataList, error)

ListAttachmentIssueComments returns body-free comments for the issue associated with one attachment.

func ListIssueVCSBranchComments added in v0.2.0

func ListIssueVCSBranchComments(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (IssueCommentMetadataList, error)

ListIssueVCSBranchComments returns body-free comments for the issue matched by a VCS branch.

type IssueCommentRequest

type IssueCommentRequest struct {
	ID       string
	Body     string
	ParentID string
}

IssueCommentRequest describes a guarded issue comment.

type IssueCommentResult

type IssueCommentResult struct {
	ID    string       `json:"id"`
	Body  string       `json:"body"`
	URL   string       `json:"url"`
	Issue IssueSummary `json:"issue"`
}

IssueCommentResult is the created comment plus its issue.

func CommentOnIssue

func CommentOnIssue(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request IssueCommentRequest,
) (IssueCommentResult, error)

CommentOnIssue adds a comment after resolving and comparing the pinned write target.

type IssueCommentSummary added in v0.2.0

type IssueCommentSummary struct {
	ID          string `json:"id"`
	Body        string `json:"body"`
	URL         string `json:"url"`
	CreatedAt   string `json:"created_at"`
	ParentID    string `json:"parent_id,omitempty"`
	UserID      string `json:"user_id,omitempty"`
	UserName    string `json:"user_name,omitempty"`
	DisplayName string `json:"display_name,omitempty"`
}

IssueCommentSummary is the compact read model for issue comments.

type IssueCreateOutcome added in v0.7.0

type IssueCreateOutcome struct {
	Index int
	Issue IssueSummary
	Err   error
}

IssueCreateOutcome is one row's result from a CreateIssues batch call, indexed to match its position in the request slice so a caller can report row order and per-row failures without losing that order under concurrency.

func CreateIssues added in v0.7.0

func CreateIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	requests []IssueCreateRequest,
	concurrency int,
) ([]IssueCreateOutcome, error)

CreateIssues creates each request against ONE resolved target, preserving per-request guard validation (estimate, parent, milestone) for every row. concurrency is clamped to [defaultIssueCreateBatchConcurrency, maxIssueCreateBatchConcurrency]; a value <= 0 uses the default.

type IssueCreateRequest

type IssueCreateRequest struct {
	Title              string
	Description        string
	StateType          string
	Priority           string
	AssigneeID         string
	LabelIDs           []string
	DueDate            string
	Estimate           *int
	ParentID           string
	ProjectMilestoneID string
}

IssueCreateRequest describes a guarded issue create.

type IssueCustomerNeedMetadataList added in v0.2.0

type IssueCustomerNeedMetadataList struct {
	IssueID     string                        `json:"issue_id"`
	Identifier  string                        `json:"identifier"`
	Needs       []CustomerNeedMetadataSummary `json:"customer_needs"`
	HasNextPage bool                          `json:"has_next_page"`
	EndCursor   *string                       `json:"end_cursor,omitempty"`
}

IssueCustomerNeedMetadataList is a page of body-free customer needs for one issue-like root.

func ListAttachmentIssueFormerNeeds added in v0.2.0

func ListAttachmentIssueFormerNeeds(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueCustomerNeedMetadataList, error)

ListAttachmentIssueFormerNeeds returns body-free former customer needs for the issue associated with one attachment.

func ListAttachmentIssueNeeds added in v0.2.0

func ListAttachmentIssueNeeds(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueCustomerNeedMetadataList, error)

ListAttachmentIssueNeeds returns body-free customer needs for the issue associated with one attachment.

func ListIssueFormerNeeds added in v0.2.0

func ListIssueFormerNeeds(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueCustomerNeedMetadataList, error)

ListIssueFormerNeeds returns body-free customer needs formerly associated with one issue.

func ListIssueNeeds added in v0.2.0

func ListIssueNeeds(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueCustomerNeedMetadataList, error)

ListIssueNeeds returns body-free customer needs associated with one issue.

func ListIssueVCSBranchFormerNeeds added in v0.2.0

func ListIssueVCSBranchFormerNeeds(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (IssueCustomerNeedMetadataList, error)

ListIssueVCSBranchFormerNeeds returns body-free former customer needs for the issue matched by a VCS branch.

func ListIssueVCSBranchNeeds added in v0.2.0

func ListIssueVCSBranchNeeds(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (IssueCustomerNeedMetadataList, error)

ListIssueVCSBranchNeeds returns body-free customer needs for the issue matched by a VCS branch.

type IssueDependencyGraph added in v0.2.0

type IssueDependencyGraph struct {
	ID          string         `json:"id"`
	Identifier  string         `json:"identifier"`
	Parent      *IssueSummary  `json:"parent,omitempty"`
	Children    []IssueSummary `json:"children"`
	Blocks      []IssueSummary `json:"blocks"`
	BlockedBy   []IssueSummary `json:"blocked_by"`
	HasNextPage bool           `json:"has_next_page"`
}

IssueDependencyGraph is the compact dependency graph for one issue.

func GetIssueDependencies added in v0.2.0

func GetIssueDependencies(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueDependencyGraph, error)

GetIssueDependencies returns parent, child, and blocking relationships for one issue.

type IssueDetail added in v0.2.0

type IssueDetail struct {
	Summary     IssueSummary
	Description string
}

IssueDetail is one issue with fields needed for safe read-modify-write operations.

func GetIssueDetail added in v0.2.0

func GetIssueDetail(ctx context.Context, graphqlClient graphql.Client, id string) (IssueDetail, error)

GetIssueDetail returns an issue by Linear id or identifier with mutable text fields.

type IssueFilterSuggestion added in v0.2.0

type IssueFilterSuggestion struct {
	Filter json.RawMessage `json:"filter,omitempty"`
	LogID  string          `json:"log_id,omitempty"`
}

IssueFilterSuggestion is an AI-generated issue filter suggestion.

func GetIssueFilterSuggestion added in v0.2.0

func GetIssueFilterSuggestion(
	ctx context.Context,
	graphqlClient graphql.Client,
	prompt string,
	teamID string,
	projectID string,
) (IssueFilterSuggestion, error)

GetIssueFilterSuggestion returns a JSON issue filter suggestion for a prompt.

type IssueHistoryList added in v0.2.0

type IssueHistoryList struct {
	History     []IssueHistorySummary `json:"history"`
	HasNextPage bool                  `json:"has_next_page"`
	EndCursor   *string               `json:"end_cursor,omitempty"`
}

IssueHistoryList is a page of issue history metadata.

func ListAttachmentIssueHistory added in v0.2.0

func ListAttachmentIssueHistory(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueHistoryList, error)

ListAttachmentIssueHistory returns history metadata for the issue associated with one attachment.

func ListIssueHistory added in v0.2.0

func ListIssueHistory(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueHistoryList, error)

ListIssueHistory returns compact history metadata for one issue.

func ListIssueVCSBranchHistory added in v0.2.0

func ListIssueVCSBranchHistory(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (IssueHistoryList, error)

ListIssueVCSBranchHistory returns history metadata for the issue matched by a VCS branch.

type IssueHistorySummary added in v0.2.0

type IssueHistorySummary struct {
	ID                 string `json:"id"`
	IssueID            string `json:"issue_id"`
	ActorID            string `json:"actor_id,omitempty"`
	UpdatedDescription bool   `json:"updated_description,omitempty"`
	CreatedAt          string `json:"created_at"`
	UpdatedAt          string `json:"updated_at"`
	ArchivedAt         string `json:"archived_at,omitempty"`
}

IssueHistorySummary is compact issue history metadata without raw change payloads.

type IssueLabelAssociationRequest added in v0.7.0

type IssueLabelAssociationRequest struct {
	IssueID string
	LabelID string
}

IssueLabelAssociationRequest describes a guarded label attach/detach on an issue.

type IssueList

type IssueList struct {
	Issues      []IssueSummary `json:"issues"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

IssueList is a page of read-only issues.

func ListAttachmentIssueChildren added in v0.2.0

func ListAttachmentIssueChildren(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueList, error)

ListAttachmentIssueChildren returns child issues for the issue associated with one attachment.

func ListCommentCreatedIssues added in v0.2.0

func ListCommentCreatedIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueList, error)

ListCommentCreatedIssues returns issues created from a comment.

func ListCustomViewIssues added in v0.2.0

func ListCustomViewIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueList, error)

ListCustomViewIssues returns issues matching one custom view's issue filter.

func ListIssueChildren added in v0.2.0

func ListIssueChildren(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueList, error)

ListIssueChildren returns child issues for one issue.

func ListIssueVCSBranchChildren added in v0.2.0

func ListIssueVCSBranchChildren(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (IssueList, error)

ListIssueVCSBranchChildren returns child issues for the issue matched by a VCS branch.

func ListIssues added in v0.2.0

func ListIssues(ctx context.Context, graphqlClient graphql.Client, limit int) (IssueList, error)

ListIssues returns issues across every visible Linear team for broad read-only inspection.

func ListIssuesByTeam

func ListIssuesByTeam(
	ctx context.Context,
	graphqlClient graphql.Client,
	teamID string,
	limit int,
	filters IssueListFilters,
) (IssueList, error)

ListIssuesByTeam returns issues scoped to a resolved team, composing every set filter into one IssueFilter. The blocked-by filter stays on its own relations-based path because IssueFilter cannot express a relation target.

func ListNextIssuesByTeam added in v0.2.0

func ListNextIssuesByTeam(
	ctx context.Context,
	graphqlClient graphql.Client,
	teamID string,
	limit int,
) (IssueList, error)

ListNextIssuesByTeam returns unstarted issues that are not blocked by another issue.

func ListReleaseIssues added in v0.2.0

func ListReleaseIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueList, error)

ListReleaseIssues returns issues associated with one Linear release.

func ListTeamIssues added in v0.2.0

func ListTeamIssues(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (IssueList, error)

ListTeamIssues returns issues associated with one Team.

func ListUserAssignedIssues added in v0.2.0

func ListUserAssignedIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueList, error)

ListUserAssignedIssues returns issues assigned to one User.

func ListUserCreatedIssues added in v0.2.0

func ListUserCreatedIssues(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (IssueList, error)

ListUserCreatedIssues returns issues created by one User.

func ListUserDelegatedIssues added in v0.2.0

func ListUserDelegatedIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueList, error)

ListUserDelegatedIssues returns issues delegated to one User.

func ListViewerAssignedIssues added in v0.2.0

func ListViewerAssignedIssues(ctx context.Context, graphqlClient graphql.Client, limit int) (IssueList, error)

ListViewerAssignedIssues returns issues assigned to the authenticated User.

func ListViewerCreatedIssues added in v0.2.0

func ListViewerCreatedIssues(ctx context.Context, graphqlClient graphql.Client, limit int) (IssueList, error)

ListViewerCreatedIssues returns issues created by the authenticated User.

func ListViewerDelegatedIssues added in v0.2.0

func ListViewerDelegatedIssues(ctx context.Context, graphqlClient graphql.Client, limit int) (IssueList, error)

ListViewerDelegatedIssues returns issues delegated to the authenticated User.

func SearchIssuesByFigmaFileKey added in v0.2.0

func SearchIssuesByFigmaFileKey(
	ctx context.Context,
	graphqlClient graphql.Client,
	fileKey string,
	limit int,
) (IssueList, error)

SearchIssuesByFigmaFileKey searches issues associated with a Figma file key.

func SearchIssuesByTeam added in v0.2.0

func SearchIssuesByTeam(
	ctx context.Context,
	graphqlClient graphql.Client,
	teamID string,
	query string,
	limit int,
) (IssueList, error)

SearchIssuesByTeam searches issue content scoped to a resolved team.

type IssueListFilters added in v0.2.0

type IssueListFilters struct {
	StateType     string
	ProjectID     string
	AssigneeID    string
	LabelID       string
	CycleID       string
	CreatedAfter  string
	CreatedBefore string
	HasBlockers   bool
	Blocks        bool
	BlockedBy     string
}

IssueListFilters scopes read-only issue listing.

type IssuePriorityValue added in v0.2.0

type IssuePriorityValue struct {
	Priority int    `json:"priority"`
	Label    string `json:"label"`
}

IssuePriorityValue is a Linear issue priority number and label.

func ListIssuePriorityValues added in v0.2.0

func ListIssuePriorityValues(ctx context.Context, graphqlClient graphql.Client) ([]IssuePriorityValue, error)

ListIssuePriorityValues returns Linear issue priority labels.

type IssueRelationCreateRequest added in v0.3.0

type IssueRelationCreateRequest struct {
	IssueID        string
	RelatedIssueID string
	Type           string
}

IssueRelationCreateRequest describes a guarded issue-relation create.

type IssueRelationList added in v0.2.0

type IssueRelationList struct {
	Relations   []IssueRelationSummary `json:"relations"`
	HasNextPage bool                   `json:"has_next_page"`
	EndCursor   *string                `json:"end_cursor,omitempty"`
}

IssueRelationList is a page of issue relations.

func ListAttachmentIssueInverseRelations added in v0.2.0

func ListAttachmentIssueInverseRelations(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueRelationList, error)

ListAttachmentIssueInverseRelations returns inverse relations for the issue associated with one attachment.

func ListAttachmentIssueRelations added in v0.2.0

func ListAttachmentIssueRelations(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueRelationList, error)

ListAttachmentIssueRelations returns relations for the issue associated with one attachment.

func ListIssueInverseRelations added in v0.2.0

func ListIssueInverseRelations(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueRelationList, error)

ListIssueInverseRelations returns inverse relations associated with one issue.

func ListIssueRelations added in v0.2.0

func ListIssueRelations(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (IssueRelationList, error)

ListIssueRelations returns visible relations between issues.

func ListIssueRelationsForIssue added in v0.2.0

func ListIssueRelationsForIssue(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueRelationList, error)

ListIssueRelationsForIssue returns relations associated with one issue.

func ListIssueVCSBranchInverseRelations added in v0.2.0

func ListIssueVCSBranchInverseRelations(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (IssueRelationList, error)

ListIssueVCSBranchInverseRelations returns inverse relations for the issue matched by a VCS branch.

func ListIssueVCSBranchRelations added in v0.2.0

func ListIssueVCSBranchRelations(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (IssueRelationList, error)

ListIssueVCSBranchRelations returns relations for the issue matched by a VCS branch.

type IssueRelationSummary added in v0.2.0

type IssueRelationSummary struct {
	ID                     string `json:"id"`
	Type                   string `json:"type"`
	IssueID                string `json:"issue_id"`
	IssueIdentifier        string `json:"issue_identifier"`
	IssueTitle             string `json:"issue_title"`
	RelatedIssueID         string `json:"related_issue_id"`
	RelatedIssueIdentifier string `json:"related_issue_identifier"`
	RelatedIssueTitle      string `json:"related_issue_title"`
	CreatedAt              string `json:"created_at"`
	UpdatedAt              string `json:"updated_at"`
	ArchivedAt             string `json:"archived_at,omitempty"`
}

IssueRelationSummary is one directional relation between Linear issues.

func CreateIssueRelation added in v0.3.0

func CreateIssueRelation(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request IssueRelationCreateRequest,
) (IssueRelationSummary, error)

CreateIssueRelation links two issues after resolving and comparing the pinned target for both endpoints. Each issue must belong to the resolved team. For blocks relations it refuses to close a direct cycle.

func GetIssueRelationByID added in v0.2.0

func GetIssueRelationByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (IssueRelationSummary, error)

GetIssueRelationByID returns one issue relation by Linear id.

type IssueSharedAccessSummary added in v0.2.0

type IssueSharedAccessSummary struct {
	IssueID                   string   `json:"issue_id"`
	Identifier                string   `json:"identifier"`
	IsShared                  bool     `json:"is_shared"`
	ViewerHasOnlySharedAccess bool     `json:"viewer_has_only_shared_access"`
	SharedWithCount           int      `json:"shared_with_count"`
	DisallowedIssueFields     []string `json:"disallowed_issue_fields,omitempty"`
}

IssueSharedAccessSummary is compact shared-access metadata without shared user details.

func GetAttachmentIssueSharedAccess added in v0.2.0

func GetAttachmentIssueSharedAccess(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (IssueSharedAccessSummary, error)

GetAttachmentIssueSharedAccess returns compact shared-access metadata for the issue associated with one attachment.

func GetIssueSharedAccess added in v0.2.0

func GetIssueSharedAccess(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (IssueSharedAccessSummary, error)

GetIssueSharedAccess returns compact shared-access metadata for one issue.

func GetIssueVCSBranchSharedAccess added in v0.2.0

func GetIssueVCSBranchSharedAccess(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
) (IssueSharedAccessSummary, error)

GetIssueVCSBranchSharedAccess returns compact shared-access metadata for an issue matched by a VCS branch.

type IssueStateHistoryList added in v0.2.0

type IssueStateHistoryList struct {
	IssueID     string                  `json:"issue_id"`
	Spans       []IssueStateSpanSummary `json:"spans"`
	HasNextPage bool                    `json:"has_next_page"`
	EndCursor   *string                 `json:"end_cursor,omitempty"`
}

IssueStateHistoryList is a page of workflow-state spans for one issue.

func ListAttachmentIssueStateHistory added in v0.2.0

func ListAttachmentIssueStateHistory(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueStateHistoryList, error)

ListAttachmentIssueStateHistory returns workflow-state spans for the issue associated with one attachment.

func ListIssueStateHistory added in v0.2.0

func ListIssueStateHistory(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (IssueStateHistoryList, error)

ListIssueStateHistory returns workflow-state spans for one issue.

func ListIssueVCSBranchStateHistory added in v0.2.0

func ListIssueVCSBranchStateHistory(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (IssueStateHistoryList, error)

ListIssueVCSBranchStateHistory returns workflow-state spans for the issue matched by a VCS branch.

type IssueStateSpanSummary added in v0.2.0

type IssueStateSpanSummary struct {
	ID        string `json:"id"`
	StateID   string `json:"state_id"`
	StateName string `json:"state_name,omitempty"`
	StateType string `json:"state_type,omitempty"`
	StartedAt string `json:"started_at"`
	EndedAt   string `json:"ended_at,omitempty"`
}

IssueStateSpanSummary is compact workflow-state span metadata for one issue.

type IssueSummary

type IssueSummary struct {
	ID            string  `json:"id"`
	Identifier    string  `json:"identifier"`
	Title         string  `json:"title"`
	BranchName    string  `json:"branch_name"`
	URL           string  `json:"url"`
	Priority      float64 `json:"priority"`
	PriorityLabel string  `json:"priority_label"`
	TeamID        string  `json:"team_id"`
	Team          string  `json:"team"`
	StateID       string  `json:"state_id"`
	State         string  `json:"state"`
	StateType     string  `json:"state_type"`
	Assignee      string  `json:"assignee,omitempty"`
	ProjectID     string  `json:"project_id,omitempty"`
	Project       string  `json:"project,omitempty"`
	CreatedAt     string  `json:"created_at,omitempty"`
	UnblocksCount int     `json:"unblocks_count,omitempty"`
}

IssueSummary is the compact issue model used by read-only commands.

func AddIssueLabel added in v0.7.0

func AddIssueLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request IssueLabelAssociationRequest,
) (IssueSummary, error)

AddIssueLabel attaches an IssueLabel to an issue after resolving and comparing both the issue and the label against the pinned target. A team-scoped label must match the resolved team; an organization-wide label is always attachable within the resolved organization.

func CloseIssue

func CloseIssue(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	issueID string,
) (IssueSummary, error)

CloseIssue moves an issue to the team's completed workflow state after target comparison.

func CreateIssue

func CreateIssue(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request IssueCreateRequest,
) (IssueSummary, error)

CreateIssue creates an issue after resolving and comparing the pinned write target.

func GetAttachmentIssue added in v0.2.0

func GetAttachmentIssue(ctx context.Context, graphqlClient graphql.Client, id string) (IssueSummary, error)

GetAttachmentIssue returns the issue associated with one attachment.

func GetIssueByID

func GetIssueByID(ctx context.Context, graphqlClient graphql.Client, id string) (IssueSummary, error)

GetIssueByID returns a read-only issue by Linear id or identifier.

func GetIssueByVCSBranch added in v0.2.0

func GetIssueByVCSBranch(ctx context.Context, graphqlClient graphql.Client, branchName string) (IssueSummary, error)

GetIssueByVCSBranch returns an issue by VCS branch name.

func RemoveIssueLabel added in v0.7.0

func RemoveIssueLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request IssueLabelAssociationRequest,
) (IssueSummary, error)

RemoveIssueLabel detaches an IssueLabel from an issue after resolving and comparing both the issue and the label against the pinned target.

func StartIssue added in v0.2.0

func StartIssue(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	issueID string,
) (IssueSummary, error)

StartIssue assigns a human viewer, delegates to an app viewer, and moves the issue to the team's started workflow state.

func UpdateIssue

func UpdateIssue(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request IssueUpdateRequest,
) (IssueSummary, error)

UpdateIssue updates an issue after resolving and comparing the pinned write target.

type IssueTemplateContent added in v0.3.0

type IssueTemplateContent struct {
	Title       string `json:"title"`
	Description string `json:"description"`
}

IssueTemplateContent is the issue title and description pre-filled by a Linear template.

func GetIssueTemplateContent added in v0.3.0

func GetIssueTemplateContent(
	ctx context.Context,
	graphqlClient graphql.Client,
	templateID string,
) (IssueTemplateContent, error)

GetIssueTemplateContent reads a Linear template and extracts the issue title and description from its templateData. It is a free read: the template is fetched without a pinned target so a draft can be assembled before any guarded write.

type IssueTitleSuggestion added in v0.2.0

type IssueTitleSuggestion struct {
	Title string `json:"title"`
	LogID string `json:"log_id,omitempty"`
}

IssueTitleSuggestion is an AI-generated issue title suggestion.

func GetIssueTitleSuggestionFromCustomerRequest added in v0.2.0

func GetIssueTitleSuggestionFromCustomerRequest(
	ctx context.Context,
	graphqlClient graphql.Client,
	request string,
) (IssueTitleSuggestion, error)

GetIssueTitleSuggestionFromCustomerRequest returns a title suggestion for customer request text.

type IssueToReleaseList added in v0.2.0

type IssueToReleaseList struct {
	Associations []IssueToReleaseSummary `json:"associations"`
	HasNextPage  bool                    `json:"has_next_page"`
	EndCursor    *string                 `json:"end_cursor,omitempty"`
}

IssueToReleaseList is a page of issue-to-release associations.

func ListIssueToReleases added in v0.2.0

func ListIssueToReleases(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (IssueToReleaseList, error)

ListIssueToReleases returns visible Issue-to-Release associations.

type IssueToReleaseSummary added in v0.2.0

type IssueToReleaseSummary struct {
	ID         string `json:"id"`
	IssueID    string `json:"issue_id"`
	ReleaseID  string `json:"release_id"`
	CreatedAt  string `json:"created_at"`
	UpdatedAt  string `json:"updated_at"`
	ArchivedAt string `json:"archived_at,omitempty"`
}

IssueToReleaseSummary is one issue association under a release.

func GetIssueToReleaseByID added in v0.2.0

func GetIssueToReleaseByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (IssueToReleaseSummary, error)

GetIssueToReleaseByID returns one Issue-to-Release association by Linear id.

type IssueUpdateRequest

type IssueUpdateRequest struct {
	ID            string
	Title         string
	Description   string
	Append        string
	StateType     string
	Priority      string
	AssigneeID    string
	LabelIDs      []string
	DueDate       string
	ClearDueDate  bool
	Estimate      *int
	ClearEstimate bool
}

IssueUpdateRequest describes a guarded issue update.

type LabelChildList added in v0.2.0

type LabelChildList struct {
	LabelID     string         `json:"label_id"`
	LabelName   string         `json:"label_name"`
	Labels      []LabelSummary `json:"labels"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

LabelChildList is a page of child labels for one IssueLabel group.

func ListLabelChildren added in v0.2.0

func ListLabelChildren(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (LabelChildList, error)

ListLabelChildren returns child labels under one IssueLabel group.

type LabelCreateRequest added in v0.7.0

type LabelCreateRequest struct {
	Name        string
	Color       string
	Description string
	ParentID    string
	OrgWide     bool
}

LabelCreateRequest describes a guarded IssueLabel create in the pinned team, or organization-wide when OrgWide is set.

type LabelIssueList added in v0.2.0

type LabelIssueList struct {
	LabelID     string         `json:"label_id"`
	LabelName   string         `json:"label_name"`
	Issues      []IssueSummary `json:"issues"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

LabelIssueList is a page of issues associated with one IssueLabel.

func ListLabelIssues added in v0.2.0

func ListLabelIssues(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (LabelIssueList, error)

ListLabelIssues returns issues associated with one IssueLabel.

type LabelList added in v0.2.0

type LabelList struct {
	Labels      []LabelSummary `json:"labels"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

LabelList is a page of labels.

func ListAttachmentIssueLabels added in v0.2.0

func ListAttachmentIssueLabels(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (LabelList, error)

ListAttachmentIssueLabels returns labels for the issue associated with one attachment.

func ListIssueLabels added in v0.2.0

func ListIssueLabels(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (LabelList, error)

ListIssueLabels returns labels associated with one issue.

func ListIssueVCSBranchLabels added in v0.2.0

func ListIssueVCSBranchLabels(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (LabelList, error)

ListIssueVCSBranchLabels returns labels for the issue matched by a VCS branch.

func ListLabels added in v0.2.0

func ListLabels(ctx context.Context, graphqlClient graphql.Client, limit int) (LabelList, error)

ListLabels returns visible IssueLabels.

func ListOrganizationLabels added in v0.2.0

func ListOrganizationLabels(ctx context.Context, graphqlClient graphql.Client, limit int) (LabelList, error)

ListOrganizationLabels returns organization-wide issue labels.

func ListTeamLabels added in v0.2.0

func ListTeamLabels(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (LabelList, error)

ListTeamLabels returns IssueLabels associated with one Team.

type LabelSummary added in v0.2.0

type LabelSummary struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Color       string `json:"color"`
	IsGroup     bool   `json:"is_group"`
	TeamID      string `json:"team_id,omitempty"`
	TeamKey     string `json:"team_key,omitempty"`
	TeamName    string `json:"team_name,omitempty"`
}

LabelSummary is the compact IssueLabel model used by label commands.

func CreateLabel added in v0.7.0

func CreateLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request LabelCreateRequest,
) (LabelSummary, error)

CreateLabel creates an IssueLabel in the pinned team, or organization-wide when OrgWide is set, after target comparison. replaceTeamLabels is never sent true.

func GetLabelByID added in v0.2.0

func GetLabelByID(ctx context.Context, graphqlClient graphql.Client, id string) (LabelSummary, error)

GetLabelByID returns one IssueLabel by id.

func RestoreLabel added in v0.7.0

func RestoreLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	id string,
	orgWide bool,
) (LabelSummary, error)

RestoreLabel restores a previously retired IssueLabel after resolving and comparing its scope.

func RetireLabel added in v0.7.0

func RetireLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	id string,
	orgWide bool,
) (LabelSummary, error)

RetireLabel retires an IssueLabel after resolving and comparing its scope.

func UpdateLabel added in v0.7.0

func UpdateLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request LabelUpdateRequest,
) (LabelSummary, error)

UpdateLabel updates an IssueLabel after resolving and comparing its scope: a team-scoped label compares team id+key, and an organization-wide label (null team) requires OrgWide and fails closed otherwise.

type LabelUpdateRequest added in v0.7.0

type LabelUpdateRequest struct {
	ID          string
	Name        string
	Color       string
	Description string
	OrgWide     bool
}

LabelUpdateRequest describes a guarded IssueLabel update.

type LinearAttachmentCreateInput added in v0.4.0

type LinearAttachmentCreateInput = gqlmodel.LinearAttachmentCreateInput

LinearAttachmentCreateInput is the client compatibility alias for the GraphQL input model.

type LinearCommentCreateInput

type LinearCommentCreateInput = gqlmodel.LinearCommentCreateInput

LinearCommentCreateInput is the client compatibility alias for the GraphQL input model.

type LinearCommentUpdateInput added in v0.3.0

type LinearCommentUpdateInput = gqlmodel.LinearCommentUpdateInput

LinearCommentUpdateInput is the client compatibility alias for the GraphQL input model.

type LinearCycleCreateInput added in v0.2.0

type LinearCycleCreateInput = gqlmodel.LinearCycleCreateInput

LinearCycleCreateInput is the client compatibility alias for the GraphQL input model.

type LinearCycleUpdateInput added in v0.2.0

type LinearCycleUpdateInput = gqlmodel.LinearCycleUpdateInput

LinearCycleUpdateInput is the client compatibility alias for the GraphQL input model.

type LinearDocumentCreateInput added in v0.3.0

type LinearDocumentCreateInput = gqlmodel.LinearDocumentCreateInput

LinearDocumentCreateInput is the client compatibility alias for the GraphQL input model.

type LinearDocumentUpdateInput added in v0.3.0

type LinearDocumentUpdateInput = gqlmodel.LinearDocumentUpdateInput

LinearDocumentUpdateInput is the client compatibility alias for the GraphQL input model.

type LinearIssueCreateInput

type LinearIssueCreateInput = gqlmodel.LinearIssueCreateInput

LinearIssueCreateInput is the client compatibility alias for the GraphQL input model.

type LinearIssueLabelCreateInput added in v0.7.0

type LinearIssueLabelCreateInput = gqlmodel.LinearIssueLabelCreateInput

LinearIssueLabelCreateInput is the client compatibility alias for the GraphQL input model.

type LinearIssueLabelUpdateInput added in v0.7.0

type LinearIssueLabelUpdateInput = gqlmodel.LinearIssueLabelUpdateInput

LinearIssueLabelUpdateInput is the client compatibility alias for the GraphQL input model.

type LinearIssueRelationCreateInput added in v0.3.0

type LinearIssueRelationCreateInput = gqlmodel.LinearIssueRelationCreateInput

LinearIssueRelationCreateInput is the client compatibility alias for the GraphQL input model.

type LinearIssueUpdateInput

type LinearIssueUpdateInput = gqlmodel.LinearIssueUpdateInput

LinearIssueUpdateInput is the client compatibility alias for the GraphQL input model.

type LinearProjectCreateInput

type LinearProjectCreateInput = gqlmodel.LinearProjectCreateInput

LinearProjectCreateInput is the client compatibility alias for the GraphQL input model.

type LinearProjectLabelCreateInput added in v0.7.0

type LinearProjectLabelCreateInput = gqlmodel.LinearProjectLabelCreateInput

LinearProjectLabelCreateInput is the client compatibility alias for the GraphQL input model.

type LinearProjectLabelUpdateInput added in v0.7.0

type LinearProjectLabelUpdateInput = gqlmodel.LinearProjectLabelUpdateInput

LinearProjectLabelUpdateInput is the client compatibility alias for the GraphQL input model.

type LinearProjectMilestoneCreateInput added in v0.2.0

type LinearProjectMilestoneCreateInput = gqlmodel.LinearProjectMilestoneCreateInput

LinearProjectMilestoneCreateInput is the client compatibility alias for the GraphQL input model.

type LinearProjectMilestoneUpdateInput added in v0.2.0

type LinearProjectMilestoneUpdateInput = gqlmodel.LinearProjectMilestoneUpdateInput

LinearProjectMilestoneUpdateInput is the client compatibility alias for the GraphQL input model.

type LinearProjectUpdateCreateInput added in v0.3.0

type LinearProjectUpdateCreateInput = gqlmodel.LinearProjectUpdateCreateInput

LinearProjectUpdateCreateInput is the client compatibility alias for the GraphQL input model.

type LinearProjectUpdateInput

type LinearProjectUpdateInput = gqlmodel.LinearProjectUpdateInput

LinearProjectUpdateInput is the client compatibility alias for the GraphQL input model.

type NotificationCategoryPreferences added in v0.2.0

type NotificationCategoryPreferences struct {
	AppsAndIntegrations NotificationChannelPreference `json:"apps_and_integrations"`
	Assignments         NotificationChannelPreference `json:"assignments"`
	Billing             NotificationChannelPreference `json:"billing"`
	CommentsAndReplies  NotificationChannelPreference `json:"comments_and_replies"`
	Customers           NotificationChannelPreference `json:"customers"`
	DocumentChanges     NotificationChannelPreference `json:"document_changes"`
	Feed                NotificationChannelPreference `json:"feed"`
	Mentions            NotificationChannelPreference `json:"mentions"`
	PostsAndUpdates     NotificationChannelPreference `json:"posts_and_updates"`
	Reactions           NotificationChannelPreference `json:"reactions"`
	Reminders           NotificationChannelPreference `json:"reminders"`
	Reviews             NotificationChannelPreference `json:"reviews"`
	StatusChanges       NotificationChannelPreference `json:"status_changes"`
	Subscriptions       NotificationChannelPreference `json:"subscriptions"`
	System              NotificationChannelPreference `json:"system"`
	Triage              NotificationChannelPreference `json:"triage"`
}

NotificationCategoryPreferences is a compact notification preference matrix.

func GetUserSettingsNotificationCategoryPreferences added in v0.2.0

func GetUserSettingsNotificationCategoryPreferences(
	ctx context.Context,
	graphqlClient graphql.Client,
) (NotificationCategoryPreferences, error)

GetUserSettingsNotificationCategoryPreferences returns all notification category preferences.

type NotificationChannelPreference added in v0.2.0

type NotificationChannelPreference struct {
	Desktop bool `json:"desktop"`
	Email   bool `json:"email"`
	Mobile  bool `json:"mobile"`
	Slack   bool `json:"slack"`
}

NotificationChannelPreference is a compact channel preference set.

func GetUserSettingsNotificationCategoryPreference added in v0.2.0

func GetUserSettingsNotificationCategoryPreference(
	ctx context.Context,
	graphqlClient graphql.Client,
	category string,
) (NotificationChannelPreference, error)

GetUserSettingsNotificationCategoryPreference returns one notification category preference.

func GetUserSettingsNotificationChannelPreferences added in v0.2.0

func GetUserSettingsNotificationChannelPreferences(
	ctx context.Context,
	graphqlClient graphql.Client,
) (NotificationChannelPreference, error)

GetUserSettingsNotificationChannelPreferences returns the top-level notification channel preferences.

type NotificationDeliveryChannel added in v0.2.0

type NotificationDeliveryChannel struct {
	NotificationsDisabled *bool                         `json:"notifications_disabled,omitempty"`
	Schedule              *NotificationDeliverySchedule `json:"schedule,omitempty"`
}

NotificationDeliveryChannel is a compact notification delivery channel.

func GetUserSettingsMobileDeliveryPreferences added in v0.2.0

func GetUserSettingsMobileDeliveryPreferences(
	ctx context.Context,
	graphqlClient graphql.Client,
) (*NotificationDeliveryChannel, error)

GetUserSettingsMobileDeliveryPreferences returns mobile notification delivery preferences.

type NotificationDeliveryDay added in v0.2.0

type NotificationDeliveryDay struct {
	Start *string `json:"start,omitempty"`
	End   *string `json:"end,omitempty"`
}

NotificationDeliveryDay is one mobile notification delivery window.

func GetUserSettingsMobileScheduleDay added in v0.2.0

func GetUserSettingsMobileScheduleDay(
	ctx context.Context,
	graphqlClient graphql.Client,
	day string,
) (NotificationDeliveryDay, error)

GetUserSettingsMobileScheduleDay returns one mobile notification delivery schedule day.

type NotificationDeliveryPreferences added in v0.2.0

type NotificationDeliveryPreferences struct {
	Mobile *NotificationDeliveryChannel `json:"mobile,omitempty"`
}

NotificationDeliveryPreferences is the compact notification delivery preference set.

func GetUserSettingsNotificationDeliveryPreferences added in v0.2.0

func GetUserSettingsNotificationDeliveryPreferences(
	ctx context.Context,
	graphqlClient graphql.Client,
) (NotificationDeliveryPreferences, error)

GetUserSettingsNotificationDeliveryPreferences returns notification delivery preferences.

type NotificationDeliverySchedule added in v0.2.0

type NotificationDeliverySchedule struct {
	Disabled  *bool                   `json:"disabled,omitempty"`
	Friday    NotificationDeliveryDay `json:"friday"`
	Monday    NotificationDeliveryDay `json:"monday"`
	Saturday  NotificationDeliveryDay `json:"saturday"`
	Sunday    NotificationDeliveryDay `json:"sunday"`
	Thursday  NotificationDeliveryDay `json:"thursday"`
	Tuesday   NotificationDeliveryDay `json:"tuesday"`
	Wednesday NotificationDeliveryDay `json:"wednesday"`
}

NotificationDeliverySchedule is the compact weekly notification schedule.

func GetUserSettingsMobileSchedule added in v0.2.0

func GetUserSettingsMobileSchedule(
	ctx context.Context,
	graphqlClient graphql.Client,
) (*NotificationDeliverySchedule, error)

GetUserSettingsMobileSchedule returns the mobile notification delivery schedule.

type NotificationList added in v0.2.0

type NotificationList struct {
	Notifications []NotificationSummary `json:"notifications"`
	HasNextPage   bool                  `json:"has_next_page"`
	EndCursor     *string               `json:"end_cursor,omitempty"`
}

NotificationList is a page of Linear notifications.

func ListNotifications added in v0.2.0

func ListNotifications(ctx context.Context, graphqlClient graphql.Client, limit int) (NotificationList, error)

ListNotifications returns the authenticated user's notifications.

type NotificationSubscriptionList added in v0.2.0

type NotificationSubscriptionList struct {
	Subscriptions []NotificationSubscriptionSummary `json:"notification_subscriptions"`
	HasNextPage   bool                              `json:"has_next_page"`
	EndCursor     *string                           `json:"end_cursor,omitempty"`
}

NotificationSubscriptionList is a page of Linear notification subscriptions.

func ListNotificationSubscriptions added in v0.2.0

func ListNotificationSubscriptions(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (NotificationSubscriptionList, error)

ListNotificationSubscriptions returns the authenticated user's notification subscriptions.

type NotificationSubscriptionSummary added in v0.2.0

type NotificationSubscriptionSummary struct {
	ID                  string `json:"id"`
	Active              bool   `json:"active"`
	CreatedAt           string `json:"created_at"`
	UpdatedAt           string `json:"updated_at"`
	ArchivedAt          string `json:"archived_at,omitempty"`
	ContextViewType     string `json:"context_view_type,omitempty"`
	UserContextViewType string `json:"user_context_view_type,omitempty"`
	SubscriberID        string `json:"subscriber_id"`
	SubscriberName      string `json:"subscriber_name"`
	TargetType          string `json:"target_type,omitempty"`
	TargetID            string `json:"target_id,omitempty"`
	TargetName          string `json:"target_name,omitempty"`
}

NotificationSubscriptionSummary is the compact subscription model used by read-only commands.

func GetNotificationSubscriptionByID added in v0.2.0

func GetNotificationSubscriptionByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (NotificationSubscriptionSummary, error)

GetNotificationSubscriptionByID returns one notification subscription by id.

type NotificationSummary added in v0.2.0

type NotificationSummary struct {
	ID                  string `json:"id"`
	Type                string `json:"type"`
	Category            string `json:"category"`
	Title               string `json:"title"`
	Subtitle            string `json:"subtitle"`
	URL                 string `json:"url"`
	InboxURL            string `json:"inbox_url"`
	CreatedAt           string `json:"created_at"`
	UpdatedAt           string `json:"updated_at"`
	ArchivedAt          string `json:"archived_at,omitempty"`
	ReadAt              string `json:"read_at,omitempty"`
	EmailedAt           string `json:"emailed_at,omitempty"`
	SnoozedUntilAt      string `json:"snoozed_until_at,omitempty"`
	UnsnoozedAt         string `json:"unsnoozed_at,omitempty"`
	UserID              string `json:"user_id"`
	UserDisplayName     string `json:"user_display_name"`
	ActorID             string `json:"actor_id,omitempty"`
	ActorDisplayName    string `json:"actor_display_name,omitempty"`
	ExternalUserActorID string `json:"external_user_actor_id,omitempty"`
}

NotificationSummary is the compact notification model used by read-only commands.

func GetNotificationByID added in v0.2.0

func GetNotificationByID(ctx context.Context, graphqlClient graphql.Client, id string) (NotificationSummary, error)

GetNotificationByID returns one notification by id.

type OrganizationExistsStatus added in v0.2.0

type OrganizationExistsStatus struct {
	URLKey  string `json:"url_key"`
	Success bool   `json:"success"`
	Exists  bool   `json:"exists"`
}

OrganizationExistsStatus reports whether a Linear organization URL key exists.

func CheckOrganizationExists added in v0.2.0

func CheckOrganizationExists(
	ctx context.Context,
	graphqlClient graphql.Client,
	urlKey string,
) (OrganizationExistsStatus, error)

CheckOrganizationExists checks whether a Linear organization URL key exists.

type ProjectAttachmentList added in v0.2.0

type ProjectAttachmentList struct {
	ProjectID   string              `json:"project_id"`
	ProjectName string              `json:"project_name"`
	Attachments []AttachmentSummary `json:"attachments"`
	HasNextPage bool                `json:"has_next_page"`
	EndCursor   *string             `json:"end_cursor,omitempty"`
}

ProjectAttachmentList is a page of Attachments associated with one Project.

func ListProjectAttachments added in v0.2.0

func ListProjectAttachments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectAttachmentList, error)

ListProjectAttachments returns Attachments associated with one Project.

type ProjectCommentList added in v0.2.0

type ProjectCommentList struct {
	ProjectID   string                   `json:"project_id"`
	ProjectName string                   `json:"project_name"`
	Comments    []CommentMetadataSummary `json:"comments"`
	HasNextPage bool                     `json:"has_next_page"`
	EndCursor   *string                  `json:"end_cursor,omitempty"`
}

ProjectCommentList is a page of body-free Comments associated with one Project.

func ListProjectComments added in v0.2.0

func ListProjectComments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectCommentList, error)

ListProjectComments returns body-free comments associated with one Project.

type ProjectCreateRequest

type ProjectCreateRequest struct {
	Name        string
	Description string
	Content     string
}

ProjectCreateRequest describes a guarded project create.

type ProjectCustomerNeedList added in v0.2.0

type ProjectCustomerNeedList struct {
	ProjectID   string                `json:"project_id"`
	ProjectName string                `json:"project_name"`
	Needs       []CustomerNeedSummary `json:"customer_needs"`
	HasNextPage bool                  `json:"has_next_page"`
	EndCursor   *string               `json:"end_cursor,omitempty"`
}

ProjectCustomerNeedList is a page of customer needs associated with one Project.

func ListProjectNeeds added in v0.2.0

func ListProjectNeeds(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectCustomerNeedList, error)

ListProjectNeeds returns customer needs associated with one Project.

type ProjectDocumentList added in v0.2.0

type ProjectDocumentList struct {
	ProjectID   string            `json:"project_id"`
	ProjectName string            `json:"project_name"`
	Documents   []DocumentSummary `json:"documents"`
	HasNextPage bool              `json:"has_next_page"`
	EndCursor   *string           `json:"end_cursor,omitempty"`
}

ProjectDocumentList is a page of Documents associated with one Project.

func ListProjectDocuments added in v0.2.0

func ListProjectDocuments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectDocumentList, error)

ListProjectDocuments returns Documents associated with one Project.

type ProjectExternalLinkList struct {
	ProjectID   string                      `json:"project_id"`
	ProjectName string                      `json:"project_name"`
	Links       []EntityExternalLinkSummary `json:"links"`
	HasNextPage bool                        `json:"has_next_page"`
	EndCursor   *string                     `json:"end_cursor,omitempty"`
}

ProjectExternalLinkList is a page of external links associated with one Project.

func ListProjectExternalLinks(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectExternalLinkList, error)

ListProjectExternalLinks returns external links associated with one Project.

type ProjectFilterSuggestion added in v0.2.0

type ProjectFilterSuggestion struct {
	Filter json.RawMessage `json:"filter,omitempty"`
	LogID  string          `json:"log_id,omitempty"`
}

ProjectFilterSuggestion is an AI-generated project filter suggestion.

func GetProjectFilterSuggestion added in v0.2.0

func GetProjectFilterSuggestion(
	ctx context.Context,
	graphqlClient graphql.Client,
	prompt string,
	teamID string,
) (ProjectFilterSuggestion, error)

GetProjectFilterSuggestion returns a JSON project filter suggestion for a prompt.

type ProjectHistoryList added in v0.2.0

type ProjectHistoryList struct {
	ProjectID   string                  `json:"project_id"`
	ProjectName string                  `json:"project_name"`
	History     []ProjectHistorySummary `json:"history"`
	HasNextPage bool                    `json:"has_next_page"`
	EndCursor   *string                 `json:"end_cursor,omitempty"`
}

ProjectHistoryList is a page of Linear project history records.

func ListProjectHistory added in v0.2.0

func ListProjectHistory(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectHistoryList, error)

ListProjectHistory returns history records associated with one Project.

type ProjectHistorySummary added in v0.2.0

type ProjectHistorySummary struct {
	ID         string          `json:"id"`
	ProjectID  string          `json:"project_id"`
	EntryCount int             `json:"entry_count"`
	Entries    json.RawMessage `json:"entries"`
	CreatedAt  string          `json:"created_at"`
	UpdatedAt  string          `json:"updated_at"`
	ArchivedAt string          `json:"archived_at,omitempty"`
}

ProjectHistorySummary is the compact project history model used by read-only commands.

type ProjectInitiativeList added in v0.2.0

type ProjectInitiativeList struct {
	ProjectID   string              `json:"project_id"`
	ProjectName string              `json:"project_name"`
	Initiatives []InitiativeSummary `json:"initiatives"`
	HasNextPage bool                `json:"has_next_page"`
	EndCursor   *string             `json:"end_cursor,omitempty"`
}

ProjectInitiativeList is a page of Initiatives associated with one Project.

func ListProjectInitiatives added in v0.2.0

func ListProjectInitiatives(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectInitiativeList, error)

ListProjectInitiatives returns Initiatives associated with one Project.

type ProjectInitiativeToProjectList added in v0.2.0

type ProjectInitiativeToProjectList struct {
	ProjectID    string                       `json:"project_id"`
	ProjectName  string                       `json:"project_name"`
	Associations []InitiativeToProjectSummary `json:"associations"`
	HasNextPage  bool                         `json:"has_next_page"`
	EndCursor    *string                      `json:"end_cursor,omitempty"`
}

ProjectInitiativeToProjectList is a page of initiative associations for one Project.

func ListProjectInitiativeToProjects added in v0.2.0

func ListProjectInitiativeToProjects(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectInitiativeToProjectList, error)

ListProjectInitiativeToProjects returns Initiative-to-Project associations for one Project.

type ProjectIssueList added in v0.2.0

type ProjectIssueList struct {
	ProjectID   string         `json:"project_id"`
	ProjectName string         `json:"project_name"`
	Issues      []IssueSummary `json:"issues"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

ProjectIssueList is a page of Issues associated with one Project.

func ListProjectIssues added in v0.2.0

func ListProjectIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectIssueList, error)

ListProjectIssues returns Issues associated with one Project.

type ProjectLabelAssociationRequest added in v0.7.0

type ProjectLabelAssociationRequest struct {
	ProjectID string
	LabelID   string
}

ProjectLabelAssociationRequest describes a guarded ProjectLabel attach/detach on a project.

type ProjectLabelChildrenList added in v0.2.0

type ProjectLabelChildrenList struct {
	ProjectLabelID   string                `json:"project_label_id"`
	ProjectLabelName string                `json:"project_label_name"`
	ProjectLabels    []ProjectLabelSummary `json:"project_labels"`
	HasNextPage      bool                  `json:"has_next_page"`
	EndCursor        *string               `json:"end_cursor,omitempty"`
}

ProjectLabelChildrenList is a page of child labels for one ProjectLabel.

func ListProjectLabelChildren added in v0.2.0

func ListProjectLabelChildren(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectLabelChildrenList, error)

ListProjectLabelChildren returns children for one Linear project label.

type ProjectLabelCreateRequest added in v0.7.0

type ProjectLabelCreateRequest struct {
	Name        string
	Color       string
	Description string
	OrgWide     bool
}

ProjectLabelCreateRequest describes a guarded ProjectLabel create. ProjectLabel has no team scope, so OrgWide must be true; the request is refused otherwise.

type ProjectLabelList added in v0.2.0

type ProjectLabelList struct {
	ProjectLabels []ProjectLabelSummary `json:"project_labels"`
	HasNextPage   bool                  `json:"has_next_page"`
	EndCursor     *string               `json:"end_cursor,omitempty"`
}

ProjectLabelList is a page of Linear project labels.

func ListOrganizationProjectLabels added in v0.2.0

func ListOrganizationProjectLabels(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (ProjectLabelList, error)

ListOrganizationProjectLabels returns organization-wide project labels.

func ListProjectLabels added in v0.2.0

func ListProjectLabels(ctx context.Context, graphqlClient graphql.Client, limit int) (ProjectLabelList, error)

ListProjectLabels returns visible Linear project labels.

type ProjectLabelProjectsList added in v0.2.0

type ProjectLabelProjectsList struct {
	ProjectLabelID   string           `json:"project_label_id"`
	ProjectLabelName string           `json:"project_label_name"`
	Projects         []ProjectSummary `json:"projects"`
	HasNextPage      bool             `json:"has_next_page"`
	EndCursor        *string          `json:"end_cursor,omitempty"`
}

ProjectLabelProjectsList is a page of projects associated with one ProjectLabel.

func ListProjectLabelProjects added in v0.2.0

func ListProjectLabelProjects(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectLabelProjectsList, error)

ListProjectLabelProjects returns projects associated with one Linear project label.

type ProjectLabelSummary added in v0.2.0

type ProjectLabelSummary struct {
	ID            string `json:"id"`
	Name          string `json:"name"`
	Description   string `json:"description,omitempty"`
	Color         string `json:"color"`
	IsGroup       bool   `json:"is_group"`
	OrgID         string `json:"org_id,omitempty"`
	ParentID      string `json:"parent_id,omitempty"`
	ParentName    string `json:"parent_name,omitempty"`
	ParentColor   string `json:"parent_color,omitempty"`
	LastAppliedAt string `json:"last_applied_at,omitempty"`
	RetiredAt     string `json:"retired_at,omitempty"`
	ArchivedAt    string `json:"archived_at,omitempty"`
	CreatedAt     string `json:"created_at"`
	UpdatedAt     string `json:"updated_at"`
}

ProjectLabelSummary is the compact project label model used by read-only commands.

func CreateProjectLabel added in v0.7.0

func CreateProjectLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request ProjectLabelCreateRequest,
) (ProjectLabelSummary, error)

CreateProjectLabel creates a ProjectLabel after confirming --org-wide was passed. ProjectLabel is organization-owned; there is no team scope to materialize, so the Org-Scoped Write comparison is provided by guarded client's target resolution alone.

func GetProjectLabelByID added in v0.2.0

func GetProjectLabelByID(ctx context.Context, graphqlClient graphql.Client, id string) (ProjectLabelSummary, error)

GetProjectLabelByID returns one Linear project label by id.

func RestoreProjectLabel added in v0.7.0

func RestoreProjectLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	id string,
	orgWide bool,
) (ProjectLabelSummary, error)

RestoreProjectLabel restores a previously retired ProjectLabel after confirming --org-wide was passed and that the label belongs to the resolved organization.

func RetireProjectLabel added in v0.7.0

func RetireProjectLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	id string,
	orgWide bool,
) (ProjectLabelSummary, error)

RetireProjectLabel retires a ProjectLabel after confirming --org-wide was passed and that the label belongs to the resolved organization.

func UpdateProjectLabel added in v0.7.0

func UpdateProjectLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request ProjectLabelUpdateRequest,
) (ProjectLabelSummary, error)

UpdateProjectLabel updates a ProjectLabel after confirming --org-wide was passed and that the label belongs to the resolved organization.

type ProjectLabelUpdateRequest added in v0.7.0

type ProjectLabelUpdateRequest struct {
	ID          string
	Name        string
	Color       string
	Description string
	OrgWide     bool
}

ProjectLabelUpdateRequest describes a guarded ProjectLabel update. OrgWide must be true for the same reason as ProjectLabelCreateRequest.

type ProjectList

type ProjectList struct {
	Projects    []ProjectSummary `json:"projects"`
	HasNextPage bool             `json:"has_next_page"`
	EndCursor   *string          `json:"end_cursor,omitempty"`
}

ProjectList is a page of projects scoped to a team.

func ListCustomViewProjects added in v0.2.0

func ListCustomViewProjects(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectList, error)

ListCustomViewProjects returns projects matching one custom view's project filter.

func ListInitiativeProjects added in v0.2.0

func ListInitiativeProjects(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectList, error)

ListInitiativeProjects returns Projects directly associated with one initiative.

func ListProjects added in v0.2.0

func ListProjects(ctx context.Context, graphqlClient graphql.Client, limit int) (ProjectList, error)

ListProjects returns Linear projects visible to the authenticated user.

func ListProjectsByTeam

func ListProjectsByTeam(
	ctx context.Context,
	graphqlClient graphql.Client,
	teamID string,
	limit int,
) (ProjectList, error)

ListProjectsByTeam returns projects scoped to a resolved team.

func ListTeamProjects added in v0.2.0

func ListTeamProjects(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (ProjectList, error)

ListTeamProjects returns Projects associated with one Team.

type ProjectMember

type ProjectMember struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	DisplayName string `json:"display_name"`
	Email       string `json:"email"`
}

ProjectMember is a project member.

type ProjectMemberList

type ProjectMemberList struct {
	ProjectID   string          `json:"project_id"`
	ProjectName string          `json:"project_name"`
	Members     []ProjectMember `json:"members"`
	HasNextPage bool            `json:"has_next_page"`
	EndCursor   *string         `json:"end_cursor,omitempty"`
}

ProjectMemberList is a page of project members.

func ListProjectMembers

func ListProjectMembers(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectMemberList, error)

ListProjectMembers returns members for one project.

type ProjectMilestoneCreateRequest added in v0.2.0

type ProjectMilestoneCreateRequest struct {
	ProjectID   string
	Name        string
	Description string
	TargetDate  string
}

ProjectMilestoneCreateRequest describes a guarded ProjectMilestone create.

type ProjectMilestoneDetail added in v0.2.0

type ProjectMilestoneDetail struct {
	Summary ProjectMilestoneSummary `json:"summary"`
	Project ProjectSummary          `json:"project"`
}

ProjectMilestoneDetail is a ProjectMilestone with its parent project.

func GetProjectMilestoneDetail added in v0.2.0

func GetProjectMilestoneDetail(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (ProjectMilestoneDetail, error)

GetProjectMilestoneDetail returns one ProjectMilestone and its parent project.

type ProjectMilestoneIssueList added in v0.2.0

type ProjectMilestoneIssueList struct {
	ProjectMilestoneID   string         `json:"project_milestone_id"`
	ProjectMilestoneName string         `json:"project_milestone_name"`
	Issues               []IssueSummary `json:"issues"`
	HasNextPage          bool           `json:"has_next_page"`
	EndCursor            *string        `json:"end_cursor,omitempty"`
}

ProjectMilestoneIssueList is a page of issues associated with one ProjectMilestone.

func ListProjectMilestoneIssues added in v0.2.0

func ListProjectMilestoneIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectMilestoneIssueList, error)

ListProjectMilestoneIssues returns issues associated with one ProjectMilestone.

type ProjectMilestoneList added in v0.2.0

type ProjectMilestoneList struct {
	ProjectID   string                    `json:"project_id"`
	ProjectName string                    `json:"project_name"`
	Milestones  []ProjectMilestoneSummary `json:"milestones"`
	HasNextPage bool                      `json:"has_next_page"`
	EndCursor   *string                   `json:"end_cursor,omitempty"`
}

ProjectMilestoneList is a page of project milestones.

func ListAllProjectMilestones added in v0.2.0

func ListAllProjectMilestones(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (ProjectMilestoneList, error)

ListAllProjectMilestones returns project milestones visible to the authenticated user.

func ListProjectMilestones added in v0.2.0

func ListProjectMilestones(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectMilestoneList, error)

ListProjectMilestones returns milestones for one project.

type ProjectMilestoneSummary added in v0.2.0

type ProjectMilestoneSummary struct {
	ID          string  `json:"id"`
	Name        string  `json:"name"`
	Description string  `json:"description,omitempty"`
	TargetDate  string  `json:"target_date,omitempty"`
	Status      string  `json:"status"`
	Progress    float64 `json:"progress"`
	SortOrder   float64 `json:"sort_order"`
}

ProjectMilestoneSummary is one milestone within a project.

func CreateProjectMilestone added in v0.2.0

func CreateProjectMilestone(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request ProjectMilestoneCreateRequest,
) (ProjectMilestoneSummary, error)

CreateProjectMilestone creates a ProjectMilestone after resolving and comparing its project.

func GetProjectMilestoneByID added in v0.2.0

func GetProjectMilestoneByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (ProjectMilestoneSummary, error)

GetProjectMilestoneByID returns one ProjectMilestone by Linear id.

func UpdateProjectMilestone added in v0.2.0

func UpdateProjectMilestone(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request ProjectMilestoneUpdateRequest,
) (ProjectMilestoneSummary, error)

UpdateProjectMilestone updates a ProjectMilestone after resolving and comparing its project.

type ProjectMilestoneUpdateRequest added in v0.2.0

type ProjectMilestoneUpdateRequest struct {
	ID          string
	Name        string
	Description string
	TargetDate  string
}

ProjectMilestoneUpdateRequest describes a guarded ProjectMilestone update.

type ProjectProjectLabelList added in v0.2.0

type ProjectProjectLabelList struct {
	ProjectID     string                `json:"project_id"`
	ProjectName   string                `json:"project_name"`
	ProjectLabels []ProjectLabelSummary `json:"project_labels"`
	HasNextPage   bool                  `json:"has_next_page"`
	EndCursor     *string               `json:"end_cursor,omitempty"`
}

ProjectProjectLabelList is a page of ProjectLabels associated with one Project.

func ListLabelsForProject added in v0.2.0

func ListLabelsForProject(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectProjectLabelList, error)

ListLabelsForProject returns ProjectLabels associated with one Project.

type ProjectProjectRelationList added in v0.2.0

type ProjectProjectRelationList struct {
	ProjectID   string                   `json:"project_id"`
	ProjectName string                   `json:"project_name"`
	Relations   []ProjectRelationSummary `json:"relations"`
	HasNextPage bool                     `json:"has_next_page"`
	EndCursor   *string                  `json:"end_cursor,omitempty"`
}

ProjectProjectRelationList is a page of project relations associated with one Project.

func ListProjectInverseRelations added in v0.2.0

func ListProjectInverseRelations(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectProjectRelationList, error)

ListProjectInverseRelations returns inverse project relations associated with one Project.

func ListProjectRelationsForProject added in v0.2.0

func ListProjectRelationsForProject(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectProjectRelationList, error)

ListProjectRelationsForProject returns project relations associated with one Project.

type ProjectRelationList added in v0.2.0

type ProjectRelationList struct {
	Relations   []ProjectRelationSummary `json:"relations"`
	HasNextPage bool                     `json:"has_next_page"`
	EndCursor   *string                  `json:"end_cursor,omitempty"`
}

ProjectRelationList is a page of project dependency relations.

func ListProjectRelations added in v0.2.0

func ListProjectRelations(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (ProjectRelationList, error)

ListProjectRelations returns visible dependency relations between projects.

type ProjectRelationSummary added in v0.2.0

type ProjectRelationSummary struct {
	ID                          string `json:"id"`
	Type                        string `json:"type"`
	AnchorType                  string `json:"anchor_type"`
	RelatedAnchorType           string `json:"related_anchor_type"`
	ProjectID                   string `json:"project_id"`
	ProjectName                 string `json:"project_name"`
	ProjectMilestoneID          string `json:"project_milestone_id,omitempty"`
	ProjectMilestoneName        string `json:"project_milestone_name,omitempty"`
	RelatedProjectID            string `json:"related_project_id"`
	RelatedProjectName          string `json:"related_project_name"`
	RelatedProjectMilestoneID   string `json:"related_project_milestone_id,omitempty"`
	RelatedProjectMilestoneName string `json:"related_project_milestone_name,omitempty"`
	CreatedAt                   string `json:"created_at"`
	UpdatedAt                   string `json:"updated_at"`
	ArchivedAt                  string `json:"archived_at,omitempty"`
	UserID                      string `json:"user_id,omitempty"`
	Name                        string `json:"name,omitempty"`
	DisplayName                 string `json:"display_name,omitempty"`
}

ProjectRelationSummary is one dependency relation between Linear projects.

func GetProjectRelationByID added in v0.2.0

func GetProjectRelationByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (ProjectRelationSummary, error)

GetProjectRelationByID returns one project relation by Linear id.

type ProjectStatus

type ProjectStatus struct {
	ID   string `json:"id"`
	Name string `json:"name"`
	Type string `json:"type"`
}

ProjectStatus is the compact project lifecycle status.

type ProjectStatusList added in v0.2.0

type ProjectStatusList struct {
	ProjectStatuses []ProjectStatusSummary `json:"project_statuses"`
	HasNextPage     bool                   `json:"has_next_page"`
	EndCursor       *string                `json:"end_cursor,omitempty"`
}

ProjectStatusList is a page of Linear project statuses.

func ListProjectStatuses added in v0.2.0

func ListProjectStatuses(ctx context.Context, graphqlClient graphql.Client, limit int) (ProjectStatusList, error)

ListProjectStatuses returns visible Linear project statuses.

type ProjectStatusProjectCount added in v0.2.0

type ProjectStatusProjectCount struct {
	ProjectStatusID   string  `json:"project_status_id"`
	Count             float64 `json:"count"`
	PrivateCount      float64 `json:"private_count"`
	ArchivedTeamCount float64 `json:"archived_team_count"`
}

ProjectStatusProjectCount summarizes projects using one project status.

func GetProjectStatusProjectCount added in v0.2.0

func GetProjectStatusProjectCount(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (ProjectStatusProjectCount, error)

GetProjectStatusProjectCount returns project counts for one Linear project status.

type ProjectStatusSummary added in v0.2.0

type ProjectStatusSummary struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Type        string `json:"type"`
	Color       string `json:"color"`
	Position    string `json:"position"`
	ArchivedAt  string `json:"archived_at,omitempty"`
	CreatedAt   string `json:"created_at"`
	UpdatedAt   string `json:"updated_at"`
}

ProjectStatusSummary is the compact project status model used by read-only commands.

func GetProjectStatusByID added in v0.2.0

func GetProjectStatusByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (ProjectStatusSummary, error)

GetProjectStatusByID returns one Linear project status by id.

type ProjectSummary

type ProjectSummary struct {
	ID          string        `json:"id"`
	Name        string        `json:"name"`
	Description string        `json:"description"`
	ArchivedAt  string        `json:"archived_at,omitempty"`
	SlugID      string        `json:"slug_id"`
	URL         string        `json:"url"`
	Priority    int           `json:"priority"`
	Status      ProjectStatus `json:"status"`
	Lead        string        `json:"lead,omitempty"`
	Teams       []ProjectTeam `json:"teams"`
	// TeamsTruncated is true when the project has more teams than the fetched
	// page, so an unmatched pinned team cannot be ruled out from this page alone.
	TeamsTruncated bool `json:"teams_truncated,omitempty"`
}

ProjectSummary is the compact project model used by project commands.

func AddProjectLabel added in v0.7.0

func AddProjectLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request ProjectLabelAssociationRequest,
) (ProjectSummary, error)

AddProjectLabel attaches a ProjectLabel to a project after resolving and comparing both the project and the label against the pinned target. A pinned project_id does not block this taxonomy write; ProjectLabel is organization-owned so only the organization is compared for the label.

func ArchiveProject

func ArchiveProject(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	projectID string,
) (ProjectSummary, error)

ArchiveProject archives a resource-scoped project after target comparison.

func CreateProject

func CreateProject(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request ProjectCreateRequest,
) (ProjectSummary, error)

CreateProject creates a team-scoped project after target comparison.

func GetProjectByID

func GetProjectByID(ctx context.Context, graphqlClient graphql.Client, id string) (ProjectSummary, error)

GetProjectByID returns a project by Linear id or slug.

func RemoveProjectLabel added in v0.7.0

func RemoveProjectLabel(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request ProjectLabelAssociationRequest,
) (ProjectSummary, error)

RemoveProjectLabel detaches a ProjectLabel from a project after resolving and comparing both the project and the label against the pinned target.

func UpdateProject

func UpdateProject(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request ProjectUpdateRequest,
) (ProjectSummary, error)

UpdateProject updates a resource-scoped project after target comparison.

type ProjectTeam

type ProjectTeam struct {
	ID   string `json:"id"`
	Key  string `json:"key"`
	Name string `json:"name"`
}

ProjectTeam is a project-associated team.

type ProjectTeamList added in v0.2.0

type ProjectTeamList struct {
	ProjectID   string        `json:"project_id"`
	ProjectName string        `json:"project_name"`
	Teams       []TeamSummary `json:"teams"`
	HasNextPage bool          `json:"has_next_page"`
	EndCursor   *string       `json:"end_cursor,omitempty"`
}

ProjectTeamList is a page of Teams associated with one Project.

func ListProjectTeams added in v0.2.0

func ListProjectTeams(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectTeamList, error)

ListProjectTeams returns Teams associated with one Project.

type ProjectUpdateCommentList added in v0.2.0

type ProjectUpdateCommentList struct {
	ProjectUpdateID string                   `json:"project_update_id"`
	Comments        []CommentMetadataSummary `json:"comments"`
	HasNextPage     bool                     `json:"has_next_page"`
	EndCursor       *string                  `json:"end_cursor,omitempty"`
}

ProjectUpdateCommentList is a page of body-free Comments associated with one ProjectUpdate.

func ListProjectUpdateComments added in v0.2.0

func ListProjectUpdateComments(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectUpdateCommentList, error)

ListProjectUpdateComments returns body-free comments associated with one ProjectUpdate.

type ProjectUpdateCreateRequest added in v0.3.0

type ProjectUpdateCreateRequest struct {
	ProjectID string
	Body      string
	Health    string
}

ProjectUpdateCreateRequest describes a guarded project status-update create.

type ProjectUpdateList added in v0.2.0

type ProjectUpdateList struct {
	ProjectID   string                 `json:"project_id"`
	ProjectName string                 `json:"project_name"`
	Updates     []ProjectUpdateSummary `json:"updates"`
	HasNextPage bool                   `json:"has_next_page"`
	EndCursor   *string                `json:"end_cursor,omitempty"`
}

ProjectUpdateList is a page of project status updates.

func ListAllProjectUpdates added in v0.2.0

func ListAllProjectUpdates(ctx context.Context, graphqlClient graphql.Client, limit int) (ProjectUpdateList, error)

ListAllProjectUpdates returns visible project status updates across projects.

func ListProjectUpdates added in v0.2.0

func ListProjectUpdates(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ProjectUpdateList, error)

ListProjectUpdates returns status updates for one project.

type ProjectUpdateRequest

type ProjectUpdateRequest struct {
	ID          string
	Name        string
	Description string
	Content     string
}

ProjectUpdateRequest describes a guarded project update.

type ProjectUpdateSummary added in v0.2.0

type ProjectUpdateSummary struct {
	ID          string `json:"id"`
	Body        string `json:"body,omitempty"`
	Health      string `json:"health"`
	CreatedAt   string `json:"created_at"`
	UpdatedAt   string `json:"updated_at"`
	URL         string `json:"url"`
	ProjectID   string `json:"project_id,omitempty"`
	ProjectName string `json:"project_name,omitempty"`
	UserID      string `json:"user_id"`
	Name        string `json:"name"`
	DisplayName string `json:"display_name"`
}

ProjectUpdateSummary is one project status update.

func CreateProjectUpdate added in v0.3.0

func CreateProjectUpdate(
	ctx context.Context,
	graphqlClient graphql.Client,
	expected config.Target,
	request ProjectUpdateCreateRequest,
) (ProjectUpdateSummary, error)

CreateProjectUpdate posts a status update to a project after resolving and comparing the pinned target. It is resource-scoped: the target project must match the pinned project (when configured) and belong to the resolved team.

func GetProjectUpdateByID added in v0.2.0

func GetProjectUpdateByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (ProjectUpdateSummary, error)

GetProjectUpdateByID returns one project update by Linear id.

type RateLimit added in v0.2.0

type RateLimit struct {
	Type            string  `json:"type"`
	RequestedAmount float64 `json:"requested_amount"`
	AllowedAmount   float64 `json:"allowed_amount"`
	Period          float64 `json:"period"`
	RemainingAmount float64 `json:"remaining_amount"`
	Reset           float64 `json:"reset"`
}

RateLimit is one quota bucket inside Linear's current rate-limit state.

type RateLimitStatus added in v0.2.0

type RateLimitStatus struct {
	Identifier string      `json:"identifier,omitempty"`
	Kind       string      `json:"kind"`
	Limits     []RateLimit `json:"limits"`
}

RateLimitStatus is the authenticated client's current Linear rate-limit state.

func GetRateLimitStatus added in v0.2.0

func GetRateLimitStatus(ctx context.Context, graphqlClient graphql.Client) (RateLimitStatus, error)

GetRateLimitStatus returns the authenticated client's current Linear quota state.

type ReleaseHistoryList added in v0.2.0

type ReleaseHistoryList struct {
	History     []ReleaseHistorySummary `json:"history"`
	HasNextPage bool                    `json:"has_next_page"`
	EndCursor   *string                 `json:"end_cursor,omitempty"`
}

ReleaseHistoryList is a page of Linear release history records.

func ListReleaseHistory added in v0.2.0

func ListReleaseHistory(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ReleaseHistoryList, error)

ListReleaseHistory returns history records associated with one Linear release.

type ReleaseHistorySummary added in v0.2.0

type ReleaseHistorySummary struct {
	ID         string          `json:"id"`
	ReleaseID  string          `json:"release_id"`
	EntryCount int             `json:"entry_count"`
	Entries    json.RawMessage `json:"entries"`
	CreatedAt  string          `json:"created_at"`
	UpdatedAt  string          `json:"updated_at"`
	ArchivedAt string          `json:"archived_at,omitempty"`
}

ReleaseHistorySummary is the compact release history model used by read-only commands.

type ReleaseList added in v0.2.0

type ReleaseList struct {
	Releases    []ReleaseSummary `json:"releases"`
	HasNextPage bool             `json:"has_next_page"`
	EndCursor   *string          `json:"end_cursor,omitempty"`
}

ReleaseList is a page of Linear releases.

func ListAttachmentIssueReleases added in v0.2.0

func ListAttachmentIssueReleases(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ReleaseList, error)

ListAttachmentIssueReleases returns releases for the issue associated with one attachment.

func ListIssueReleases added in v0.2.0

func ListIssueReleases(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ReleaseList, error)

ListIssueReleases returns releases associated with one issue.

func ListIssueVCSBranchReleases added in v0.2.0

func ListIssueVCSBranchReleases(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (ReleaseList, error)

ListIssueVCSBranchReleases returns releases for the issue matched by a VCS branch.

func ListReleasePipelineReleases added in v0.2.0

func ListReleasePipelineReleases(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ReleaseList, error)

ListReleasePipelineReleases returns releases associated with one Linear release pipeline.

func ListReleaseStageReleases added in v0.2.0

func ListReleaseStageReleases(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ReleaseList, error)

ListReleaseStageReleases returns releases associated with one Linear release stage.

func ListReleases added in v0.2.0

func ListReleases(ctx context.Context, graphqlClient graphql.Client, limit int) (ReleaseList, error)

ListReleases returns visible Linear releases.

func SearchReleases added in v0.2.0

func SearchReleases(ctx context.Context, graphqlClient graphql.Client, term string, limit int) (ReleaseList, error)

SearchReleases returns Linear releases matching a term.

type ReleaseNoteList added in v0.2.0

type ReleaseNoteList struct {
	ReleaseNotes []ReleaseNoteSummary `json:"release_notes"`
	HasNextPage  bool                 `json:"has_next_page"`
	EndCursor    *string              `json:"end_cursor,omitempty"`
}

ReleaseNoteList is a page of Linear release notes.

func ListReleaseNotes added in v0.2.0

func ListReleaseNotes(ctx context.Context, graphqlClient graphql.Client, limit int) (ReleaseNoteList, error)

ListReleaseNotes returns visible Linear release notes.

type ReleaseNoteSummary added in v0.2.0

type ReleaseNoteSummary struct {
	ID                  string `json:"id"`
	Title               string `json:"title,omitempty"`
	SlugID              string `json:"slug_id"`
	GenerationStatus    string `json:"generation_status,omitempty"`
	ReleaseCount        int    `json:"release_count"`
	CreatedAt           string `json:"created_at"`
	UpdatedAt           string `json:"updated_at"`
	ArchivedAt          string `json:"archived_at,omitempty"`
	PipelineID          string `json:"pipeline_id"`
	PipelineName        string `json:"pipeline_name"`
	PipelineSlugID      string `json:"pipeline_slug_id"`
	FirstReleaseID      string `json:"first_release_id,omitempty"`
	FirstReleaseName    string `json:"first_release_name,omitempty"`
	FirstReleaseVersion string `json:"first_release_version,omitempty"`
	LastReleaseID       string `json:"last_release_id,omitempty"`
	LastReleaseName     string `json:"last_release_name,omitempty"`
	LastReleaseVersion  string `json:"last_release_version,omitempty"`
}

ReleaseNoteSummary is the compact release note model used by read-only commands.

func GetReleaseNoteByID added in v0.2.0

func GetReleaseNoteByID(ctx context.Context, graphqlClient graphql.Client, id string) (ReleaseNoteSummary, error)

GetReleaseNoteByID returns one Linear release note by id.

type ReleasePipelineList added in v0.2.0

type ReleasePipelineList struct {
	ReleasePipelines []ReleasePipelineSummary `json:"release_pipelines"`
	HasNextPage      bool                     `json:"has_next_page"`
	EndCursor        *string                  `json:"end_cursor,omitempty"`
}

ReleasePipelineList is a page of Linear release pipelines.

func ListReleasePipelines added in v0.2.0

func ListReleasePipelines(ctx context.Context, graphqlClient graphql.Client, limit int) (ReleasePipelineList, error)

ListReleasePipelines returns visible Linear release pipelines.

func ListTeamReleasePipelines added in v0.2.0

func ListTeamReleasePipelines(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ReleasePipelineList, error)

ListTeamReleasePipelines returns ReleasePipelines associated with one Team.

type ReleasePipelineSummary added in v0.2.0

type ReleasePipelineSummary struct {
	ID                                   string   `json:"id"`
	Name                                 string   `json:"name"`
	SlugID                               string   `json:"slug_id"`
	Type                                 string   `json:"type"`
	IsProduction                         bool     `json:"is_production"`
	AutoGenerateReleaseNotesOnCompletion bool     `json:"auto_generate_release_notes_on_completion"`
	IncludePathPatterns                  []string `json:"include_path_patterns,omitempty"`
	ApproximateReleaseCount              int      `json:"approximate_release_count"`
	Trashed                              bool     `json:"trashed,omitempty"`
	ReleaseNoteTemplateID                string   `json:"release_note_template_id,omitempty"`
	LatestReleaseNoteID                  string   `json:"latest_release_note_id,omitempty"`
	URL                                  string   `json:"url"`
	CreatedAt                            string   `json:"created_at"`
	UpdatedAt                            string   `json:"updated_at"`
	ArchivedAt                           string   `json:"archived_at,omitempty"`
}

ReleasePipelineSummary is the compact release pipeline model used by read-only commands.

func GetReleasePipelineByID added in v0.2.0

func GetReleasePipelineByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (ReleasePipelineSummary, error)

GetReleasePipelineByID returns one Linear release pipeline by id.

type ReleaseStageList added in v0.2.0

type ReleaseStageList struct {
	ReleaseStages []ReleaseStageSummary `json:"release_stages"`
	HasNextPage   bool                  `json:"has_next_page"`
	EndCursor     *string               `json:"end_cursor,omitempty"`
}

ReleaseStageList is a page of Linear release stages.

func ListReleasePipelineStages added in v0.2.0

func ListReleasePipelineStages(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (ReleaseStageList, error)

ListReleasePipelineStages returns stages associated with one Linear release pipeline.

func ListReleaseStages added in v0.2.0

func ListReleaseStages(ctx context.Context, graphqlClient graphql.Client, limit int) (ReleaseStageList, error)

ListReleaseStages returns visible Linear release stages.

type ReleaseStageSummary added in v0.2.0

type ReleaseStageSummary struct {
	ID             string  `json:"id"`
	Name           string  `json:"name"`
	Color          string  `json:"color"`
	Type           string  `json:"type"`
	Position       float64 `json:"position"`
	Frozen         bool    `json:"frozen"`
	CreatedAt      string  `json:"created_at"`
	UpdatedAt      string  `json:"updated_at"`
	ArchivedAt     string  `json:"archived_at,omitempty"`
	PipelineID     string  `json:"pipeline_id"`
	PipelineName   string  `json:"pipeline_name"`
	PipelineSlugID string  `json:"pipeline_slug_id"`
}

ReleaseStageSummary is the compact release stage model used by read-only commands.

func GetReleaseStageByID added in v0.2.0

func GetReleaseStageByID(ctx context.Context, graphqlClient graphql.Client, id string) (ReleaseStageSummary, error)

GetReleaseStageByID returns one Linear release stage by id.

type ReleaseSummary added in v0.2.0

type ReleaseSummary struct {
	ID               string `json:"id"`
	Name             string `json:"name"`
	SlugID           string `json:"slug_id"`
	Version          string `json:"version,omitempty"`
	Description      string `json:"description,omitempty"`
	CommitSHA        string `json:"commit_sha,omitempty"`
	IssueCount       int    `json:"issue_count"`
	ReleaseNoteCount int    `json:"release_note_count"`
	Trashed          bool   `json:"trashed"`
	URL              string `json:"url"`
	StartDate        string `json:"start_date,omitempty"`
	TargetDate       string `json:"target_date,omitempty"`
	StartedAt        string `json:"started_at,omitempty"`
	CompletedAt      string `json:"completed_at,omitempty"`
	CanceledAt       string `json:"canceled_at,omitempty"`
	AutoArchivedAt   string `json:"auto_archived_at,omitempty"`
	CreatedAt        string `json:"created_at"`
	UpdatedAt        string `json:"updated_at"`
	ArchivedAt       string `json:"archived_at,omitempty"`
	PipelineID       string `json:"pipeline_id"`
	PipelineName     string `json:"pipeline_name"`
	PipelineSlugID   string `json:"pipeline_slug_id"`
	StageID          string `json:"stage_id"`
	StageName        string `json:"stage_name"`
	StageType        string `json:"stage_type"`
	CreatorID        string `json:"creator_id,omitempty"`
	CreatorName      string `json:"creator_name,omitempty"`
}

ReleaseSummary is the compact release model used by read-only commands.

func GetReleaseByID added in v0.2.0

func GetReleaseByID(ctx context.Context, graphqlClient graphql.Client, id string) (ReleaseSummary, error)

GetReleaseByID returns one Linear release by id.

type ResolvedProject

type ResolvedProject struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

ResolvedProject is the resolved Linear project.

type ResolvedTarget

type ResolvedTarget struct {
	Viewer    TargetViewer     `json:"viewer"`
	Org       TargetOrg        `json:"org"`
	Team      TargetTeam       `json:"team"`
	Project   *ResolvedProject `json:"project,omitempty"`
	Expected  config.Target    `json:"expected"`
	Resolved  config.Target    `json:"resolved"`
	Confirmed bool             `json:"confirmed"`
}

ResolvedTarget is the auth-resolved Linear write target.

func ResolveTarget

func ResolveTarget(ctx context.Context, graphqlClient graphql.Client, expected config.Target) (ResolvedTarget, error)

ResolveTarget resolves viewer, organization, team, and optional project from auth.

type RoadmapList added in v0.2.0

type RoadmapList struct {
	Roadmaps    []RoadmapSummary `json:"roadmaps"`
	HasNextPage bool             `json:"has_next_page"`
	EndCursor   *string          `json:"end_cursor,omitempty"`
}

RoadmapList is a page of deprecated Linear roadmaps.

func ListRoadmaps added in v0.2.0

func ListRoadmaps(ctx context.Context, graphqlClient graphql.Client, limit int) (RoadmapList, error)

ListRoadmaps returns visible Linear roadmaps.

type RoadmapProjectList added in v0.2.0

type RoadmapProjectList struct {
	RoadmapID   string           `json:"roadmap_id"`
	RoadmapName string           `json:"roadmap_name"`
	Projects    []ProjectSummary `json:"projects"`
	HasNextPage bool             `json:"has_next_page"`
	EndCursor   *string          `json:"end_cursor,omitempty"`
}

RoadmapProjectList is a page of Projects associated with one Roadmap.

func ListRoadmapProjects added in v0.2.0

func ListRoadmapProjects(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (RoadmapProjectList, error)

ListRoadmapProjects returns Projects associated with one Roadmap.

type RoadmapSummary added in v0.2.0

type RoadmapSummary struct {
	ID                 string  `json:"id"`
	Name               string  `json:"name"`
	Description        string  `json:"description,omitempty"`
	Color              string  `json:"color,omitempty"`
	SlugID             string  `json:"slug_id"`
	SortOrder          float64 `json:"sort_order"`
	ArchivedAt         string  `json:"archived_at,omitempty"`
	CreatedAt          string  `json:"created_at"`
	UpdatedAt          string  `json:"updated_at"`
	URL                string  `json:"url"`
	CreatorID          string  `json:"creator_id"`
	CreatorDisplayName string  `json:"creator_display_name"`
	OwnerID            string  `json:"owner_id,omitempty"`
	OwnerDisplayName   string  `json:"owner_display_name,omitempty"`
}

RoadmapSummary is the compact deprecated roadmap model used by read-only commands.

func GetRoadmapByID added in v0.2.0

func GetRoadmapByID(ctx context.Context, graphqlClient graphql.Client, id string) (RoadmapSummary, error)

GetRoadmapByID returns one deprecated Linear roadmap by id.

type RoadmapToProjectList added in v0.2.0

type RoadmapToProjectList struct {
	Associations []RoadmapToProjectSummary `json:"associations"`
	HasNextPage  bool                      `json:"has_next_page"`
	EndCursor    *string                   `json:"end_cursor,omitempty"`
}

RoadmapToProjectList is a page of Roadmap-to-Project associations.

func ListRoadmapToProjects added in v0.2.0

func ListRoadmapToProjects(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (RoadmapToProjectList, error)

ListRoadmapToProjects returns visible Roadmap-to-Project associations.

type RoadmapToProjectSummary added in v0.2.0

type RoadmapToProjectSummary struct {
	ID            string `json:"id"`
	RoadmapID     string `json:"roadmap_id"`
	RoadmapName   string `json:"roadmap_name"`
	ProjectID     string `json:"project_id"`
	ProjectName   string `json:"project_name"`
	ProjectSlugID string `json:"project_slug_id"`
	ProjectURL    string `json:"project_url"`
	SortOrder     string `json:"sort_order"`
	CreatedAt     string `json:"created_at"`
	UpdatedAt     string `json:"updated_at"`
	ArchivedAt    string `json:"archived_at,omitempty"`
}

RoadmapToProjectSummary is one project association under a Roadmap.

func GetRoadmapToProjectByID added in v0.2.0

func GetRoadmapToProjectByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (RoadmapToProjectSummary, error)

GetRoadmapToProjectByID returns one Roadmap-to-Project association by Linear id.

type SLAConfigurationList added in v0.2.0

type SLAConfigurationList struct {
	TeamIDOrKey       string                    `json:"team_id_or_key"`
	SLAConfigurations []SLAConfigurationSummary `json:"sla_configurations"`
}

SLAConfigurationList is the active SLA configuration set for one team.

func ListSLAConfigurations added in v0.2.0

func ListSLAConfigurations(
	ctx context.Context,
	graphqlClient graphql.Client,
	teamIDOrKey string,
) (SLAConfigurationList, error)

ListSLAConfigurations returns active SLA rules that can apply to one team.

type SLAConfigurationSummary added in v0.2.0

type SLAConfigurationSummary struct {
	ID         string          `json:"id"`
	Name       string          `json:"name"`
	Conditions json.RawMessage `json:"conditions"`
	SLA        float64         `json:"sla,omitempty"`
	SLAType    string          `json:"sla_type,omitempty"`
	RemovesSLA bool            `json:"removes_sla"`
}

SLAConfigurationSummary is the compact SLA rule model used by read-only commands.

type SearchDocumentList added in v0.2.0

type SearchDocumentList struct {
	Documents   []SearchDocumentSummary `json:"documents"`
	TotalCount  float64                 `json:"total_count"`
	HasNextPage bool                    `json:"has_next_page"`
	EndCursor   *string                 `json:"end_cursor,omitempty"`
}

SearchDocumentList is a page of document search results.

func SearchDocuments added in v0.2.0

func SearchDocuments(
	ctx context.Context,
	graphqlClient graphql.Client,
	term string,
	limit int,
) (SearchDocumentList, error)

SearchDocuments returns compact document search results.

type SearchDocumentSummary added in v0.2.0

type SearchDocumentSummary struct {
	ID         string `json:"id"`
	Title      string `json:"title"`
	SlugID     string `json:"slug_id"`
	URL        string `json:"url"`
	ParentType string `json:"parent_type,omitempty"`
	ParentID   string `json:"parent_id,omitempty"`
	ParentName string `json:"parent_name,omitempty"`
}

SearchDocumentSummary is a compact document search result.

type SearchIssueList added in v0.2.0

type SearchIssueList struct {
	Issues      []SearchIssueSummary `json:"issues"`
	TotalCount  float64              `json:"total_count"`
	HasNextPage bool                 `json:"has_next_page"`
	EndCursor   *string              `json:"end_cursor,omitempty"`
}

SearchIssueList is a page of issue search results.

func SearchIssues added in v0.2.0

func SearchIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	term string,
	limit int,
) (SearchIssueList, error)

SearchIssues returns compact issue search results.

type SearchIssueSummary added in v0.2.0

type SearchIssueSummary struct {
	ID          string `json:"id"`
	Identifier  string `json:"identifier"`
	Title       string `json:"title"`
	URL         string `json:"url"`
	TeamID      string `json:"team_id"`
	TeamKey     string `json:"team_key"`
	TeamName    string `json:"team_name"`
	StateID     string `json:"state_id"`
	StateName   string `json:"state_name"`
	StateType   string `json:"state_type"`
	ProjectID   string `json:"project_id,omitempty"`
	ProjectName string `json:"project_name,omitempty"`
}

SearchIssueSummary is a compact issue search result.

type SearchProjectList added in v0.2.0

type SearchProjectList struct {
	Projects    []SearchProjectSummary `json:"projects"`
	TotalCount  float64                `json:"total_count"`
	HasNextPage bool                   `json:"has_next_page"`
	EndCursor   *string                `json:"end_cursor,omitempty"`
}

SearchProjectList is a page of project search results.

func SearchProjects added in v0.2.0

func SearchProjects(
	ctx context.Context,
	graphqlClient graphql.Client,
	term string,
	limit int,
) (SearchProjectList, error)

SearchProjects returns compact project search results.

type SearchProjectSummary added in v0.2.0

type SearchProjectSummary struct {
	ID     string        `json:"id"`
	Name   string        `json:"name"`
	SlugID string        `json:"slug_id"`
	URL    string        `json:"url"`
	Status ProjectStatus `json:"status"`
	Lead   string        `json:"lead,omitempty"`
	Teams  []ProjectTeam `json:"teams"`
}

SearchProjectSummary is a compact project search result.

type SemanticSearchList added in v0.2.0

type SemanticSearchList struct {
	Results []SemanticSearchResultSummary `json:"results"`
}

SemanticSearchList is the semantic search result set.

func SearchSemantic added in v0.2.0

func SearchSemantic(
	ctx context.Context,
	graphqlClient graphql.Client,
	query string,
	limit int,
) (SemanticSearchList, error)

SearchSemantic returns compact references from Linear semantic search.

type SemanticSearchResultSummary added in v0.2.0

type SemanticSearchResultSummary struct {
	Type  string `json:"type"`
	ID    string `json:"id"`
	Key   string `json:"key,omitempty"`
	Title string `json:"title"`
	URL   string `json:"url,omitempty"`
}

SemanticSearchResultSummary is a compact reference returned by semantic search.

type SprintReport added in v0.2.0

type SprintReport struct {
	Cycle       CycleSummary   `json:"cycle"`
	Issues      []IssueSummary `json:"issues"`
	HasNextPage bool           `json:"has_next_page"`
	EndCursor   *string        `json:"end_cursor,omitempty"`
}

SprintReport is a read-only Cycle report with its assigned issues.

func GetSprintReport added in v0.2.0

func GetSprintReport(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (SprintReport, error)

GetSprintReport returns one Cycle and its assigned issues.

type TargetOrg

type TargetOrg struct {
	ID     string `json:"id"`
	Name   string `json:"name"`
	URLKey string `json:"url_key"`
}

TargetOrg is the resolved Linear organization.

type TargetTeam

type TargetTeam struct {
	ID   string `json:"id"`
	Key  string `json:"key"`
	Name string `json:"name"`
}

TargetTeam is the resolved Linear team.

type TargetViewer

type TargetViewer struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	DisplayName string `json:"display_name"`
	Email       string `json:"email"`
	App         bool   `json:"-"`
	Assignable  bool   `json:"-"`
}

TargetViewer is the authenticated Linear user.

type TeamList added in v0.2.0

type TeamList struct {
	Teams       []TeamSummary `json:"teams"`
	HasNextPage bool          `json:"has_next_page"`
	EndCursor   *string       `json:"end_cursor,omitempty"`
}

TeamList is a page of teams.

func ListOrganizationTeams added in v0.2.0

func ListOrganizationTeams(ctx context.Context, graphqlClient graphql.Client, limit int) (TeamList, error)

ListOrganizationTeams returns teams visible to the authenticated user.

func ListReleasePipelineTeams added in v0.2.0

func ListReleasePipelineTeams(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (TeamList, error)

ListReleasePipelineTeams returns teams associated with one Linear release pipeline.

func ListTeams added in v0.2.0

func ListTeams(ctx context.Context, graphqlClient graphql.Client, limit int) (TeamList, error)

ListTeams returns visible teams.

func ListUserTeams added in v0.2.0

func ListUserTeams(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (TeamList, error)

ListUserTeams returns Teams associated with one User.

func ListViewerTeams added in v0.2.0

func ListViewerTeams(ctx context.Context, graphqlClient graphql.Client, limit int) (TeamList, error)

ListViewerTeams returns Teams associated with the authenticated User.

type TeamMemberList added in v0.2.0

type TeamMemberList struct {
	TeamID      string        `json:"team_id"`
	TeamKey     string        `json:"team_key"`
	TeamName    string        `json:"team_name"`
	Members     []UserSummary `json:"members"`
	HasNextPage bool          `json:"has_next_page"`
	EndCursor   *string       `json:"end_cursor,omitempty"`
}

TeamMemberList is a page of team members.

func ListTeamMembers added in v0.2.0

func ListTeamMembers(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (TeamMemberList, error)

ListTeamMembers returns visible members for one Team.

type TeamMembershipList added in v0.2.0

type TeamMembershipList struct {
	Memberships []TeamMembershipSummary `json:"memberships"`
	HasNextPage bool                    `json:"has_next_page"`
	EndCursor   *string                 `json:"end_cursor,omitempty"`
}

TeamMembershipList is a page of team memberships.

func ListTeamMemberships added in v0.2.0

func ListTeamMemberships(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (TeamMembershipList, error)

ListTeamMemberships returns team memberships visible to the authenticated user.

func ListTeamMembershipsForTeam added in v0.2.0

func ListTeamMembershipsForTeam(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (TeamMembershipList, error)

ListTeamMembershipsForTeam returns TeamMemberships associated with one Team.

func ListUserTeamMemberships added in v0.2.0

func ListUserTeamMemberships(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (TeamMembershipList, error)

ListUserTeamMemberships returns TeamMemberships associated with one User.

func ListViewerTeamMemberships added in v0.2.0

func ListViewerTeamMemberships(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (TeamMembershipList, error)

ListViewerTeamMemberships returns TeamMemberships associated with the authenticated User.

type TeamMembershipSummary added in v0.2.0

type TeamMembershipSummary struct {
	ID          string  `json:"id"`
	UserID      string  `json:"user_id"`
	Name        string  `json:"name"`
	DisplayName string  `json:"display_name"`
	Email       string  `json:"email,omitempty"`
	Active      bool    `json:"active"`
	Guest       bool    `json:"guest"`
	Admin       bool    `json:"admin"`
	TeamID      string  `json:"team_id"`
	TeamKey     string  `json:"team_key"`
	TeamName    string  `json:"team_name"`
	Owner       bool    `json:"owner"`
	SortOrder   float64 `json:"sort_order"`
	CreatedAt   string  `json:"created_at"`
	UpdatedAt   string  `json:"updated_at"`
	ArchivedAt  string  `json:"archived_at,omitempty"`
}

TeamMembershipSummary is one user's membership in a Linear team.

func GetTeamMembershipByID added in v0.2.0

func GetTeamMembershipByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (TeamMembershipSummary, error)

GetTeamMembershipByID returns one team membership by Linear id.

type TeamSummary added in v0.2.0

type TeamSummary struct {
	ID          string `json:"id"`
	Key         string `json:"key"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	ArchivedAt  string `json:"archived_at,omitempty"`
	OrgID       string `json:"org_id"`
	OrgName     string `json:"org_name"`
	OrgURLKey   string `json:"org_url_key"`
}

TeamSummary is the compact Team model used by team commands.

func GetTeamByID added in v0.2.0

func GetTeamByID(ctx context.Context, graphqlClient graphql.Client, id string) (TeamSummary, error)

GetTeamByID returns one Team by id.

type TemplateList added in v0.2.0

type TemplateList struct {
	Templates   []TemplateSummary `json:"templates"`
	TotalCount  int               `json:"total_count"`
	HasNextPage bool              `json:"has_next_page,omitempty"`
	EndCursor   *string           `json:"end_cursor,omitempty"`
}

TemplateList is a local page of Linear templates.

func ListOrganizationTemplates added in v0.2.0

func ListOrganizationTemplates(ctx context.Context, graphqlClient graphql.Client, limit int) (TemplateList, error)

ListOrganizationTemplates returns organization-wide Linear templates.

func ListTeamTemplates added in v0.2.0

func ListTeamTemplates(ctx context.Context, graphqlClient graphql.Client, id string, limit int) (TemplateList, error)

ListTeamTemplates returns Templates associated with one Team.

func ListTemplates added in v0.2.0

func ListTemplates(ctx context.Context, graphqlClient graphql.Client, limit int) (TemplateList, error)

ListTemplates returns visible Linear templates.

type TemplateSummary added in v0.2.0

type TemplateSummary struct {
	ID              string  `json:"id"`
	Name            string  `json:"name"`
	Type            string  `json:"type"`
	Description     string  `json:"description,omitempty"`
	Icon            string  `json:"icon,omitempty"`
	Color           string  `json:"color,omitempty"`
	SortOrder       float64 `json:"sort_order"`
	LastAppliedAt   string  `json:"last_applied_at,omitempty"`
	CreatedAt       string  `json:"created_at"`
	UpdatedAt       string  `json:"updated_at"`
	ArchivedAt      string  `json:"archived_at,omitempty"`
	TeamID          string  `json:"team_id,omitempty"`
	TeamKey         string  `json:"team_key,omitempty"`
	TeamName        string  `json:"team_name,omitempty"`
	PipelineID      string  `json:"pipeline_id,omitempty"`
	CreatorID       string  `json:"creator_id,omitempty"`
	LastUpdatedByID string  `json:"last_updated_by_id,omitempty"`
	InheritedFromID string  `json:"inherited_from_id,omitempty"`
}

TemplateSummary is the compact Linear template model used by read-only commands.

func GetTemplateByID added in v0.2.0

func GetTemplateByID(ctx context.Context, graphqlClient graphql.Client, id string) (TemplateSummary, error)

GetTemplateByID returns one Linear template by id.

type TimeScheduleEntrySummary added in v0.2.0

type TimeScheduleEntrySummary struct {
	StartsAt  string `json:"starts_at"`
	EndsAt    string `json:"ends_at"`
	UserID    string `json:"user_id,omitempty"`
	UserEmail string `json:"user_email,omitempty"`
}

TimeScheduleEntrySummary is one compact entry in a Linear time schedule.

type TimeScheduleList added in v0.2.0

type TimeScheduleList struct {
	TimeSchedules []TimeScheduleSummary `json:"time_schedules"`
	HasNextPage   bool                  `json:"has_next_page"`
	EndCursor     *string               `json:"end_cursor,omitempty"`
}

TimeScheduleList is a page of Linear time schedules.

func ListTimeSchedules added in v0.2.0

func ListTimeSchedules(ctx context.Context, graphqlClient graphql.Client, limit int) (TimeScheduleList, error)

ListTimeSchedules returns visible Linear time schedules.

type TimeScheduleSummary added in v0.2.0

type TimeScheduleSummary struct {
	ID            string                     `json:"id"`
	Name          string                     `json:"name"`
	CreatedAt     string                     `json:"created_at"`
	UpdatedAt     string                     `json:"updated_at"`
	ArchivedAt    string                     `json:"archived_at,omitempty"`
	ExternalID    string                     `json:"external_id,omitempty"`
	ExternalURL   string                     `json:"external_url,omitempty"`
	IntegrationID string                     `json:"integration_id,omitempty"`
	EntryCount    int                        `json:"entry_count"`
	Entries       []TimeScheduleEntrySummary `json:"entries"`
}

TimeScheduleSummary is the compact time schedule model used by read-only commands.

func GetTimeScheduleByID added in v0.2.0

func GetTimeScheduleByID(ctx context.Context, graphqlClient graphql.Client, id string) (TimeScheduleSummary, error)

GetTimeScheduleByID returns one Linear time schedule by id.

type Transport

type Transport struct {
	// contains filtered or unexported fields
}

Transport implements genqlient's GraphQL client interface.

func NewTransport

func NewTransport(config TransportConfig) *Transport

NewTransport creates a Linear GraphQL transport.

func (*Transport) MakeRequest

func (transport *Transport) MakeRequest(
	ctx context.Context,
	request *graphql.Request,
	response *graphql.Response,
) error

MakeRequest sends a GraphQL request and decodes a GraphQL response.

type TransportConfig

type TransportConfig struct {
	Client           *http.Client
	DiagnosticWriter io.Writer
	Endpoint         string
	Token            AuthToken
	Timeout          time.Duration
	MaxRetries       int
}

TransportConfig configures the Linear GraphQL transport.

type TriageResponsibilityList added in v0.2.0

type TriageResponsibilityList struct {
	TriageResponsibilities []TriageResponsibilitySummary `json:"triage_responsibilities"`
	HasNextPage            bool                          `json:"has_next_page"`
	EndCursor              *string                       `json:"end_cursor,omitempty"`
}

TriageResponsibilityList is a page of triage responsibilities.

func ListTriageResponsibilities added in v0.2.0

func ListTriageResponsibilities(
	ctx context.Context,
	graphqlClient graphql.Client,
	limit int,
) (TriageResponsibilityList, error)

ListTriageResponsibilities returns visible triage responsibility configs.

type TriageResponsibilityManualSelection added in v0.2.0

type TriageResponsibilityManualSelection struct {
	ID      string   `json:"id"`
	UserIDs []string `json:"user_ids"`
}

TriageResponsibilityManualSelection is the manual user selection for one triage responsibility.

func GetTriageResponsibilityManualSelection added in v0.2.0

func GetTriageResponsibilityManualSelection(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (TriageResponsibilityManualSelection, error)

GetTriageResponsibilityManualSelection returns manual user ids for one triage responsibility.

type TriageResponsibilitySummary added in v0.2.0

type TriageResponsibilitySummary struct {
	ID               string   `json:"id"`
	Action           string   `json:"action"`
	TeamID           string   `json:"team_id"`
	TeamKey          string   `json:"team_key"`
	TeamName         string   `json:"team_name"`
	TimeScheduleID   string   `json:"time_schedule_id,omitempty"`
	TimeScheduleName string   `json:"time_schedule_name,omitempty"`
	CurrentUserID    string   `json:"current_user_id,omitempty"`
	CurrentUserName  string   `json:"current_user_name,omitempty"`
	ManualUserIDs    []string `json:"manual_user_ids,omitempty"`
	CreatedAt        string   `json:"created_at"`
	UpdatedAt        string   `json:"updated_at"`
	ArchivedAt       string   `json:"archived_at,omitempty"`
}

TriageResponsibilitySummary is the compact triage responsibility model used by read-only commands.

func GetTriageResponsibilityByID added in v0.2.0

func GetTriageResponsibilityByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (TriageResponsibilitySummary, error)

GetTriageResponsibilityByID returns one triage responsibility by id.

type UserList added in v0.2.0

type UserList struct {
	Users       []UserSummary `json:"users"`
	HasNextPage bool          `json:"has_next_page"`
	EndCursor   *string       `json:"end_cursor,omitempty"`
}

UserList is a page of users.

func ListAttachmentIssueSubscribers added in v0.2.0

func ListAttachmentIssueSubscribers(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (UserList, error)

ListAttachmentIssueSubscribers returns subscribers for the issue associated with one attachment.

func ListIssueSubscribers added in v0.2.0

func ListIssueSubscribers(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (UserList, error)

ListIssueSubscribers returns users subscribed to one issue.

func ListIssueVCSBranchSubscribers added in v0.2.0

func ListIssueVCSBranchSubscribers(
	ctx context.Context,
	graphqlClient graphql.Client,
	branchName string,
	limit int,
) (UserList, error)

ListIssueVCSBranchSubscribers returns subscribers for the issue matched by a VCS branch.

func ListOrganizationUsers added in v0.2.0

func ListOrganizationUsers(ctx context.Context, graphqlClient graphql.Client, limit int) (UserList, error)

ListOrganizationUsers returns active users visible to the authenticated user.

func ListUsers added in v0.2.0

func ListUsers(ctx context.Context, graphqlClient graphql.Client, limit int) (UserList, error)

ListUsers returns visible users.

type UserSettingsCustomSidebarTheme added in v0.2.0

type UserSettingsCustomSidebarTheme struct {
	Accent   []float64 `json:"accent"`
	Base     []float64 `json:"base"`
	Contrast int       `json:"contrast"`
}

UserSettingsCustomSidebarTheme is a compact custom sidebar theme.

func GetUserSettingsCustomSidebarTheme added in v0.2.0

func GetUserSettingsCustomSidebarTheme(
	ctx context.Context,
	graphqlClient graphql.Client,
	deviceType string,
	mode string,
) (*UserSettingsCustomSidebarTheme, error)

GetUserSettingsCustomSidebarTheme returns the user's custom sidebar theme for one device and mode.

type UserSettingsCustomTheme added in v0.2.0

type UserSettingsCustomTheme struct {
	Accent   []float64                       `json:"accent"`
	Base     []float64                       `json:"base"`
	Contrast int                             `json:"contrast"`
	Sidebar  *UserSettingsCustomSidebarTheme `json:"sidebar,omitempty"`
}

UserSettingsCustomTheme is a compact custom theme.

func GetUserSettingsCustomTheme added in v0.2.0

func GetUserSettingsCustomTheme(
	ctx context.Context,
	graphqlClient graphql.Client,
	deviceType string,
	mode string,
) (*UserSettingsCustomTheme, error)

GetUserSettingsCustomTheme returns the user's custom theme for one device and mode.

type UserSettingsSummary added in v0.2.0

type UserSettingsSummary struct {
	ID                              string                          `json:"id"`
	UserID                          string                          `json:"user_id"`
	CreatedAt                       string                          `json:"created_at"`
	UpdatedAt                       string                          `json:"updated_at"`
	ArchivedAt                      *string                         `json:"archived_at,omitempty"`
	AutoAssignToSelf                bool                            `json:"auto_assign_to_self"`
	FeedLastSeenTime                *string                         `json:"feed_last_seen_time,omitempty"`
	FeedSummarySchedule             string                          `json:"feed_summary_schedule,omitempty"`
	ShowFullUserNames               bool                            `json:"show_full_user_names"`
	SubscribedToChangelog           bool                            `json:"subscribed_to_changelog"`
	SubscribedToDPA                 bool                            `json:"subscribed_to_dpa"`
	SubscribedToInviteAccepted      bool                            `json:"subscribed_to_invite_accepted"`
	SubscribedToPrivacyLegalUpdates bool                            `json:"subscribed_to_privacy_legal_updates"`
	NotificationCategoryPreferences NotificationCategoryPreferences `json:"notification_category_preferences"`
	NotificationChannelPreferences  NotificationChannelPreference   `json:"notification_channel_preferences"`
	NotificationDeliveryPreferences NotificationDeliveryPreferences `json:"notification_delivery_preferences"`
}

UserSettingsSummary is the compact viewer-scoped settings model.

func GetUserSettings added in v0.2.0

func GetUserSettings(ctx context.Context, graphqlClient graphql.Client) (UserSettingsSummary, error)

GetUserSettings returns the authenticated user's compact settings.

type UserSettingsThemeSummary added in v0.2.0

type UserSettingsThemeSummary struct {
	Preset string                   `json:"preset"`
	Custom *UserSettingsCustomTheme `json:"custom,omitempty"`
}

UserSettingsThemeSummary is a compact resolved theme.

func GetUserSettingsTheme added in v0.2.0

func GetUserSettingsTheme(
	ctx context.Context,
	graphqlClient graphql.Client,
	deviceType string,
	mode string,
) (*UserSettingsThemeSummary, error)

GetUserSettingsTheme returns the user's theme for one device and mode.

type UserSummary added in v0.2.0

type UserSummary struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	DisplayName string `json:"display_name"`
	Email       string `json:"email"`
	Active      bool   `json:"active"`
	Guest       bool   `json:"guest"`
	Admin       bool   `json:"admin"`
}

UserSummary is the compact User model used by user commands.

func GetUserByID added in v0.2.0

func GetUserByID(ctx context.Context, graphqlClient graphql.Client, id string) (UserSummary, error)

GetUserByID returns one User by id.

func GetViewerUser added in v0.2.0

func GetViewerUser(ctx context.Context, graphqlClient graphql.Client) (UserSummary, error)

GetViewerUser returns the authenticated User.

type WorkflowStateIssueList added in v0.2.0

type WorkflowStateIssueList struct {
	WorkflowStateID   string         `json:"workflow_state_id"`
	WorkflowStateName string         `json:"workflow_state_name"`
	Issues            []IssueSummary `json:"issues"`
	HasNextPage       bool           `json:"has_next_page"`
	EndCursor         *string        `json:"end_cursor,omitempty"`
}

WorkflowStateIssueList is a page of Issues currently associated with one WorkflowState.

func ListWorkflowStateIssues added in v0.2.0

func ListWorkflowStateIssues(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (WorkflowStateIssueList, error)

ListWorkflowStateIssues returns Issues currently associated with one WorkflowState.

type WorkflowStateList added in v0.2.0

type WorkflowStateList struct {
	WorkflowStates []WorkflowStateSummary `json:"workflow_states"`
	HasNextPage    bool                   `json:"has_next_page"`
	EndCursor      *string                `json:"end_cursor,omitempty"`
}

WorkflowStateList is a page of workflow states.

func ListTeamWorkflowStates added in v0.2.0

func ListTeamWorkflowStates(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
	limit int,
) (WorkflowStateList, error)

ListTeamWorkflowStates returns workflow states associated with one Team.

func ListWorkflowStates added in v0.2.0

func ListWorkflowStates(ctx context.Context, graphqlClient graphql.Client, limit int) (WorkflowStateList, error)

ListWorkflowStates returns visible workflow states.

type WorkflowStateSummary added in v0.2.0

type WorkflowStateSummary struct {
	ID       string  `json:"id"`
	Name     string  `json:"name"`
	Type     string  `json:"type"`
	Color    string  `json:"color"`
	Position float64 `json:"position"`
	TeamID   string  `json:"team_id"`
	TeamKey  string  `json:"team_key"`
	TeamName string  `json:"team_name"`
}

WorkflowStateSummary is the compact workflow state model used by read-only commands.

func GetWorkflowStateByID added in v0.2.0

func GetWorkflowStateByID(
	ctx context.Context,
	graphqlClient graphql.Client,
	id string,
) (WorkflowStateSummary, error)

GetWorkflowStateByID returns one workflow state by Linear id.

Directories

Path Synopsis
internal
gql
gqlmodel
Package gqlmodel holds neutral GraphQL input models shared by code generation and the parent client compatibility aliases.
Package gqlmodel holds neutral GraphQL input models shared by code generation and the parent client compatibility aliases.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL