- add_page_specific_style 'page_bundles/commit_description' .page-content-header .header-main-content - if @commit.has_signature? = render partial: 'signature', object: @commit.signature %strong #{ s_('CommitBoxTitle|Commit') } %span.commit-sha{ data: { testid: 'commit-sha-content' } }= @commit.short_id = clipboard_button(text: @commit.id, title: _('Copy commit SHA')) %span.gl-hidden.sm:gl-inline= _('authored') #{time_ago_with_tooltip(@commit.authored_date)} %span= s_('ByAuthor|by') %strong = author_avatar(@commit, size: 24, has_tooltip: false) = commit_author_link(@commit, avatar: true, size: 24) = user_status(@commit.author) - if @commit.different_committer? %span.gl-text-subtle= _('Committed by') = commit_committer_link(@commit, avatar: true, size: 24) #{time_ago_with_tooltip(@commit.committed_date)} = link_button_to _('Browse files'), project_tree_path(@project, @commit), class: 'gl-mr-3 gl-w-full sm:gl-w-auto gl-mb-3 sm:gl-mb-0' #js-commit-options-dropdown{ data: commit_options_dropdown_data(@project, @commit) } .commit-box{ data: { project_path: project_path(@project) } } %h3.commit-title = markdown_field(@commit, :title) - if @commit.description.present? %pre.commit-description< = preserve(markdown_field(@commit, :description)) .info-well .well-segment .icon-container.commit-icon = sprite_icon('commit') %span.gl-text-primary= n_('parent', 'parents', @commit.parents.count) - @commit.parents.each do |parent| = link_to parent.short_id, project_commit_path(@project, parent), class: "commit-sha" #js-commit-branches-and-tags.gl-border-t.gl-border-t-section{ data: { full_path: @project.full_path, commit_sha: @commit.short_id } } .well-segment = sprite_icon('branch', css_class: "gl-ml-2 gl-mr-3") = gl_loading_icon(inline: true, css_class: 'gl-align-middle') .well-segment = sprite_icon('tag', css_class: "gl-ml-2 gl-mr-3") = gl_loading_icon(inline: true, css_class: 'gl-align-middle') .well-segment.merge-request-info .icon-container = sprite_icon('merge-request') %span.commit-info.merge-requests{ 'data-project-commit-path' => merge_requests_project_commit_path(@project, @commit.id, format: :json) } = gl_loading_icon(inline: true, css_class: 'gl-align-middle') - if can?(current_user, :read_pipeline, @last_pipeline) - status = @last_pipeline.detailed_status(current_user) .well-segment.pipeline-info .js-commit-box-pipeline-status{ data: { full_path: @project.full_path, iid: @last_pipeline.iid, graphql_resource_etag: graphql_etag_pipeline_path(@last_pipeline) } } #{ _('Pipeline') } = link_to "##{@last_pipeline.id}", project_pipeline_path(@project, @last_pipeline.id) = status&.label - if @last_pipeline.stages_count.nonzero? #{ n_(s_('Pipeline|with stage'), s_('Pipeline|with stages'), @last_pipeline.stages_count) } .js-commit-pipeline-mini-graph{ data: { stages: @last_pipeline_stages.to_json.html_safe, full_path: @project.full_path, iid: @last_pipeline.iid, graphql_resource_etag: graphql_etag_pipeline_path(@last_pipeline) } } - if @last_pipeline.duration in = time_interval_in_words @last_pipeline.duration - if @merge_request .well-segment = sprite_icon('information-o', css_class: '!gl-align-middle gl-mr-2') - link_to_merge_request = link_to(@merge_request.to_reference, diffs_project_merge_request_path(@project, @merge_request, commit_id: @commit.id)) = _('This commit is part of merge request %{link_to_merge_request}. Comments created here will be created in the context of that merge request.').html_safe % { link_to_merge_request: link_to_merge_request }