build method
Resolves the tracker adapter for config.
Implementation
TrackerResult<IssueTrackerClient> build(WorkflowConfig config) {
final kind = config.tracker.kind;
if (kind == null || kind.isEmpty) {
return const TrackerError<IssueTrackerClient>(
TrackerFailure(
TrackerFailureCode.unsupportedTrackerKind,
'tracker.kind is required.',
),
);
}
switch (kind) {
case 'linear':
try {
return TrackerSuccess<IssueTrackerClient>(
LinearTrackerClient.fromConfig(config, httpClient: httpClient),
);
} on TrackerFailure catch (failure) {
return TrackerError<IssueTrackerClient>(failure);
}
case 'local_plan':
return TrackerSuccess<IssueTrackerClient>(
LocalPlanTrackerClient.fromConfig(config),
);
default:
return TrackerError<IssueTrackerClient>(
TrackerFailure(
TrackerFailureCode.unsupportedTrackerKind,
'Unsupported tracker.kind: $kind.',
),
);
}
}