ReleaseSource.fromJson constructor

ReleaseSource.fromJson(
  1. Map<String, dynamic> json
)

Deserializes a release source from JSON.

Implementation

factory ReleaseSource.fromJson(Map<String, dynamic> json) {
  return switch (json['type'] as String?) {
    'github' => GitHubReleaseSource(
      owner: json['owner'] as String,
      repository: json['repository'] as String,
      tag: json['tag'] as String,
      baseUri: json['base_uri'] == null
          ? null
          : Uri.parse(json['base_uri'] as String),
    ),
    'gitlab' => GitLabReleaseSource(
      projectPath: json['project_path'] as String,
      tag: json['tag'] as String,
      baseUri: json['base_uri'] == null
          ? null
          : Uri.parse(json['base_uri'] as String),
    ),
    final type => throw FormatException('Unknown release source type: $type'),
  };
}