protected function renderHarbormasterStatus(DifferentialDiff $diff, array $messages)
 {
     $colors = array(DifferentialLintStatus::LINT_NONE => 'grey', DifferentialLintStatus::LINT_OKAY => 'green', DifferentialLintStatus::LINT_WARN => 'yellow', DifferentialLintStatus::LINT_FAIL => 'red', DifferentialLintStatus::LINT_SKIP => 'blue', DifferentialLintStatus::LINT_AUTO_SKIP => 'blue');
     $icon_color = idx($colors, $diff->getLintStatus(), 'grey');
     $message = DifferentialRevisionUpdateHistoryView::getDiffLintMessage($diff);
     $excuse = $diff->getProperty('arc:lint-excuse');
     if (strlen($excuse)) {
         $excuse = array(phutil_tag('strong', array(), pht('Excuse:')), ' ', phutil_escape_html_newlines($excuse));
     }
     $status = id(new PHUIStatusListView())->addItem(id(new PHUIStatusItemView())->setIcon(PHUIStatusItemView::ICON_STAR, $icon_color)->setTarget($message)->setNote($excuse));
     return $status;
 }
 public static function getDiffLintMessage(DifferentialDiff $diff)
 {
     switch ($diff->getLintStatus()) {
         case DifferentialLintStatus::LINT_NONE:
             return pht('No Linters Available');
         case DifferentialLintStatus::LINT_OKAY:
             return pht('Lint OK');
         case DifferentialLintStatus::LINT_WARN:
             return pht('Lint Warnings');
         case DifferentialLintStatus::LINT_FAIL:
             return pht('Lint Errors');
         case DifferentialLintStatus::LINT_SKIP:
             return pht('Lint Skipped');
         case DifferentialLintStatus::LINT_AUTO_SKIP:
             return pht('Automatic diff as part of commit; lint not applicable.');
         case DifferentialLintStatus::LINT_POSTPONED:
             return pht('Lint Postponed');
     }
     return '???';
 }
 public static function getDiffLintMessage(DifferentialDiff $diff)
 {
     switch ($diff->getLintStatus()) {
         case DifferentialLintStatus::LINT_NONE:
             return 'No Linters Available';
         case DifferentialLintStatus::LINT_OKAY:
             return 'Lint OK';
         case DifferentialLintStatus::LINT_WARN:
             return 'Lint Warnings';
         case DifferentialLintStatus::LINT_FAIL:
             return 'Lint Errors';
         case DifferentialLintStatus::LINT_SKIP:
             return 'Lint Skipped';
         case DifferentialLintStatus::LINT_POSTPONED:
             return 'Lint Postponed';
     }
     return '???';
 }