blob: 763b1a4aabbcc3d882d1a0abb6d6cd58e057e8b6 [file] [log] [blame]
// Copyright 2020 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/// Data models for json messages coming from GitHub Checks API.
///
/// See more:
/// * https://developer.com/v3/checks/.
import 'package:github/github.dart' show CheckSuite, PullRequest, User, Repository;
import 'package:github/hooks.dart' show HookEvent;
import 'package:json_annotation/json_annotation.dart';
part 'checks.g.dart';
@JsonSerializable(fieldRename: FieldRename.snake)
class CheckRunEvent extends HookEvent {
CheckRunEvent({
this.action,
this.checkRun,
this.sender,
this.repository,
});
factory CheckRunEvent.fromJson(Map<String, dynamic> input) => _$CheckRunEventFromJson(input);
CheckRun? checkRun;
String? action;
User? sender;
Repository? repository;
Map<String, dynamic> toJson() => _$CheckRunEventToJson(this);
}
@JsonSerializable(fieldRename: FieldRename.snake)
class CheckRun {
const CheckRun({
this.conclusion,
this.headSha,
this.id,
this.pullRequests,
this.name,
this.checkSuite,
});
factory CheckRun.fromJson(Map<String, dynamic> input) => _$CheckRunFromJson(input);
final int? id;
final String? headSha;
final String? conclusion;
final String? name;
final CheckSuite? checkSuite;
@JsonKey(name: 'pull_requests', defaultValue: <PullRequest>[])
final List<PullRequest>? pullRequests;
Map<String, dynamic> toJson() => _$CheckRunToJson(this);
}