ReleaseSource.fromJson constructor
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'),
};
}