anchor.diff:    /// Whether the commit has empty validations or not.
     final bool emptyValidations;
   
  +  /// Whether the PR has conflicts or not.
  +  final bool isConflicting;
  +
  +  /// Whether has an unknown mergeable state or not.
  +  final bool unknownMergeableState;
  +
     /// Whether it is sane to automatically merge this PR.
     bool get shouldMerge =>
  -      ciSuccessful && failures.isEmpty && hasApprovedReview && changeRequestAuthors.isEmpty && !emptyValidations;
  +      ciSuccessful &&
  +      failures.isEmpty &&
  +      hasApprovedReview &&
  +      changeRequestAuthors.isEmpty &&
  +      !emptyValidations &&
  +      !unknownMergeableState &&
  +      !isConflicting;
   
     /// Whether the auto-merge label should be removed from this PR.
     bool get shouldRemoveLabel =>
  -      !hasApprovedReview || changeRequestAuthors.isNotEmpty || failures.isNotEmpty || emptyValidations;
  +      !hasApprovedReview || changeRequestAuthors.isNotEmpty || failures.isNotEmpty || emptyValidations || isConflicting;
   
     String get removalMessage {
       if (!shouldRemoveLabel) {
  
positive.code:     final Iterable<Map<String, dynamic>> pullRequests =
          (label['pullRequests']['nodes'] as List<dynamic>).cast<Map<String, dynamic>>();
      for (Map<String, dynamic> pullRequest in pullRequests) {
        final Map<String, dynamic> commit = pullRequest['commits']['nodes'].single['commit'] as Map<String, dynamic>;
        // Skip commits that are less than an hour old.
        // Use the committedDate if pushedDate is null (commitedDate cannot be null).
  
negative.code:     required this.sha,
      required this.labelId,
      required this.emptyValidations,
      required this.isConflicting,
      required this.unknownMergeableState,
    });
  
    /// The GitHub GraphQL ID of this pull request.
  