LinearTrackerClient.fromConfig constructor

LinearTrackerClient.fromConfig(
  1. WorkflowConfig config, {
  2. Client? httpClient,
})

Builds a Linear client pre-wired from a WorkflowConfig.

Throws a TrackerFailure-equivalent error when the config is missing the required fields. Callers SHOULD prefer the tracker factory which surfaces the error as a TrackerResult.

Implementation

factory LinearTrackerClient.fromConfig(
  WorkflowConfig config, {
  http.Client? httpClient,
}) {
  final apiKey = config.tracker.apiKey;
  final slug = config.tracker.projectSlug;
  if (apiKey == null || apiKey.isEmpty) {
    throw const TrackerFailure(
      TrackerFailureCode.missingTrackerApiKey,
      'Linear tracker requires tracker.api_key (LINEAR_API_KEY).',
    );
  }
  if (slug == null || slug.isEmpty) {
    throw const TrackerFailure(
      TrackerFailureCode.missingTrackerProjectSlug,
      'Linear tracker requires tracker.project_slug.',
    );
  }
  return LinearTrackerClient(
    endpoint: config.tracker.endpoint,
    apiKey: apiKey,
    projectSlug: slug,
    activeStates: config.tracker.activeStates,
    httpClient: httpClient,
  );
}