anchor.diff:      final Iterable<Map<String, dynamic>> pullRequests =
           (label['pullRequests']['nodes'] as List<dynamic>).cast<Map<String, dynamic>>();
       for (Map<String, dynamic> pullRequest in pullRequests) {
  +      log.info('Is pull request mergeable: ${pullRequest['mergeable']}');
  +      // This is used to remove the bot label as it requires manual intervention.
  +      final bool isConflicting = pullRequest['mergeable'] == 'CONFLICTING';
  +      // This is used to skip landing until we are sure the PR is mergeable.
  +      final bool unknownMergeableState = pullRequest['mergeable'] == 'UNKNOWN';
  +
         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).
  
positive.code:   /// Whether the commit has empty validations or not.
    final bool emptyValidations;
  
    /// Whether it is sane to automatically merge this PR.
    bool get shouldMerge =>
        ciSuccessful && failures.isEmpty && hasApprovedReview && changeRequestAuthors.isEmpty && !emptyValidations;
  
    /// Whether the auto-merge label should be removed from this PR.
    bool get shouldRemoveLabel =>
        !hasApprovedReview || changeRequestAuthors.isNotEmpty || failures.isNotEmpty || emptyValidations;
  
    String get removalMessage {
      if (!shouldRemoveLabel) {
  
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.
  