pub struct LinearTracker { /* private fields */ }Expand description
Tracker over the Linear GraphQL API.
No Debug derive: kept explicit so a field added later cannot print
Debug would print it wherever a log line or a panic message met the
adapter.
Implementations§
Source§impl LinearTracker
impl LinearTracker
Trait Implementations§
Source§impl Debug for LinearTracker
impl Debug for LinearTracker
Source§impl Tracker for LinearTracker
impl Tracker for LinearTracker
Source§fn file<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
dest: &'life1 Destination,
cred: &'life2 Credential,
draft: &'life3 TicketDraft,
) -> Pin<Box<dyn Future<Output = Result<Filed, TrackerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn file<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
dest: &'life1 Destination,
cred: &'life2 Credential,
draft: &'life3 TicketDraft,
) -> Pin<Box<dyn Future<Output = Result<Filed, TrackerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
One issueCreate mutation. title is the draft’s own, truncated to
Linear’s cap; description is the Markdown body verbatim (Linear
renders Markdown, so there is no document format to translate) plus a
footnote carrying what the port’s shape has and Linear’s input has no
field for: the labels, the environment, the severity, the stamp.
external_id is the issue’s UUID, the only id
CommentCreateInput.issueId is documented to take. Filed is not
idempotent: Linear offers no stamp to search an issue by, so the
at-least-once outbox may file twice; see the README.
Source§fn status<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
dest: &'life1 Destination,
cred: &'life2 Credential,
external_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<TicketStatus, TrackerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn status<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
dest: &'life1 Destination,
cred: &'life2 Credential,
external_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<TicketStatus, TrackerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
One issue(id:) query, mapping state.type — Linear’s own
workflow-type rollup, the field that survives every custom workflow a
tenant renames — onto the port’s five.
Source§fn comment<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
dest: &'life1 Destination,
cred: &'life2 Credential,
external_id: &'life3 str,
comment: &'life4 TicketComment,
) -> Pin<Box<dyn Future<Output = Result<(), TrackerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn comment<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
dest: &'life1 Destination,
cred: &'life2 Credential,
external_id: &'life3 str,
comment: &'life4 TicketComment,
) -> Pin<Box<dyn Future<Output = Result<(), TrackerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
One commentCreate mutation: the note’s Markdown verbatim plus, when
it carries one, a trailing line linking it. No search-before-write, so
a redelivery may duplicate the note — but the key rides the body as
the same cratefield-idem-… stamp, so any duplicate is findable.