<commit_before>- if @merge_request.has_ci?
  - ci_commit = @merge_request.source_project.ci_commit(@merge_request.source_sha)
  - if ci_commit
    - status = ci_commit.status
    .mr-widget-heading
      .ci_widget{class: "ci-#{status}"}
        = ci_status_icon(ci_commit)
        %span CI build #{status}
        for #{@merge_request.last_commit_short_sha}.
        %span.ci-coverage
        = link_to "View build details", ci_status_path(ci_commit)

  - else
    - # Compatibility with old CI integrations (ex jenkins) when you request status from CI server via AJAX
    - # Remove in later versions when services like Jenkins will set CI status via Commit status API
    .mr-widget-heading
      - [:success, :skipped, :canceled, :failed, :running, :pending].each do |status|
        .ci_widget{class: "ci-#{status}", style: "display:none"}
          - if status == :success
            - status = "passed"
            = icon("check-circle")
          - else
            = icon("circle")
          %span CI build #{status}
          for #{@merge_request.last_commit_short_sha}.
          %span.ci-coverage
          - if ci_build_details_path(@merge_request)
            = link_to "View build details", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"

      .ci_widget
        = icon("spinner spin")
        Checking CI status for #{@merge_request.last_commit_short_sha}&hellip;

      .ci_widget.ci-not_found{style: "display:none"}
        = icon("times-circle")
        Could not find CI status for #{@merge_request.last_commit_short_sha}.

      .ci_widget.ci-error{style: "display:none"}
        = icon("times-circle")
        Could not connect to the CI server. Please check your settings and try again.

    :coffeescript
      $ ->
        merge_request_widget.getCiStatus()<commit_msg>Fix missing commit status for widget when no CI service is enabled<commit_after>- ci_commit = @merge_request.source_project.ci_commit(@merge_request.source_sha)
- if ci_commit
  - status = ci_commit.status
  .mr-widget-heading
    .ci_widget{class: "ci-#{status}"}
      = ci_status_icon(ci_commit)
      %span CI build #{status}
      for #{@merge_request.last_commit_short_sha}.
      %span.ci-coverage
      = link_to "View build details", ci_status_path(ci_commit)

- elsif @merge_request.has_ci?
  - # Compatibility with old CI integrations (ex jenkins) when you request status from CI server via AJAX
  - # Remove in later versions when services like Jenkins will set CI status via Commit status API
  .mr-widget-heading
    - [:success, :skipped, :canceled, :failed, :running, :pending].each do |status|
      .ci_widget{class: "ci-#{status}", style: "display:none"}
        - if status == :success
          - status = "passed"
          = icon("check-circle")
        - else
          = icon("circle")
        %span CI build #{status}
        for #{@merge_request.last_commit_short_sha}.
        %span.ci-coverage
        - if ci_build_details_path(@merge_request)
          = link_to "View build details", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"

    .ci_widget
      = icon("spinner spin")
      Checking CI status for #{@merge_request.last_commit_short_sha}&hellip;

    .ci_widget.ci-not_found{style: "display:none"}
      = icon("times-circle")
      Could not find CI status for #{@merge_request.last_commit_short_sha}.

    .ci_widget.ci-error{style: "display:none"}
      = icon("times-circle")
      Could not connect to the CI server. Please check your settings and try again.

  :coffeescript
    $ ->
      merge_request_widget.getCiStatus()
{'fraction_non_alphanumeric': 0.115754742919989, 'fraction_numerical': 0.0, 'mean_word_length': 2.907626208378088, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4937686', 'n_tokens_mistral': 1156, 'n_tokens_neox': 1128, 'n_words': 273}