Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/presenters')
-rw-r--r--app/presenters/alert_management/alert_presenter.rb2
-rw-r--r--app/presenters/blob_presenter.rb62
-rw-r--r--app/presenters/ci/build_presenter.rb2
-rw-r--r--app/presenters/ci/build_runner_presenter.rb2
-rw-r--r--app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb10
-rw-r--r--app/presenters/ci/pipeline_presenter.rb21
-rw-r--r--app/presenters/clusterable_presenter.rb2
-rw-r--r--app/presenters/clusters/cluster_presenter.rb4
-rw-r--r--app/presenters/commit_status_presenter.rb6
-rw-r--r--app/presenters/group_clusterable_presenter.rb2
-rw-r--r--app/presenters/group_member_presenter.rb2
-rw-r--r--app/presenters/instance_clusterable_presenter.rb2
-rw-r--r--app/presenters/issue_presenter.rb2
-rw-r--r--app/presenters/label_presenter.rb2
-rw-r--r--app/presenters/member_presenter.rb2
-rw-r--r--app/presenters/merge_request_presenter.rb13
-rw-r--r--app/presenters/packages/detail/package_presenter.rb1
-rw-r--r--app/presenters/project_clusterable_presenter.rb2
-rw-r--r--app/presenters/project_member_presenter.rb2
-rw-r--r--app/presenters/project_presenter.rb46
-rw-r--r--app/presenters/projects/import_export/project_export_presenter.rb4
-rw-r--r--app/presenters/service_hook_presenter.rb4
-rw-r--r--app/presenters/snippet_blob_presenter.rb6
-rw-r--r--app/presenters/terraform/modules_presenter.rb40
24 files changed, 177 insertions, 64 deletions
diff --git a/app/presenters/alert_management/alert_presenter.rb b/app/presenters/alert_management/alert_presenter.rb
index 1cebf5c561a..c6c6fe837a0 100644
--- a/app/presenters/alert_management/alert_presenter.rb
+++ b/app/presenters/alert_management/alert_presenter.rb
@@ -112,3 +112,5 @@ module AlertManagement
end
end
end
+
+AlertManagement::AlertPresenter.prepend_mod_with('AlertManagement::AlertPresenter')
diff --git a/app/presenters/blob_presenter.rb b/app/presenters/blob_presenter.rb
index cff935d51b5..56dd056b9bc 100644
--- a/app/presenters/blob_presenter.rb
+++ b/app/presenters/blob_presenter.rb
@@ -1,6 +1,12 @@
# frozen_string_literal: true
class BlobPresenter < Gitlab::View::Presenter::Delegated
+ include ApplicationHelper
+ include BlobHelper
+ include DiffHelper
+ include TreeHelper
+ include ChecksCollaboration
+
presents :blob
def highlight(to: nil, plain: nil)
@@ -14,16 +20,68 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated
)
end
+ def plain_data
+ return if blob.binary?
+
+ highlight(plain: false)
+ end
+
def web_url
- Gitlab::Routing.url_helpers.project_blob_url(blob.repository.project, File.join(blob.commit_id, blob.path))
+ url_helpers.project_blob_url(project, ref_qualified_path)
end
def web_path
- Gitlab::Routing.url_helpers.project_blob_path(blob.repository.project, File.join(blob.commit_id, blob.path))
+ url_helpers.project_blob_path(project, ref_qualified_path)
+ end
+
+ def edit_blob_path
+ url_helpers.project_edit_blob_path(project, ref_qualified_path)
+ end
+
+ def raw_path
+ url_helpers.project_raw_path(project, ref_qualified_path)
+ end
+
+ def replace_path
+ url_helpers.project_create_blob_path(project, ref_qualified_path)
+ end
+
+ def fork_and_edit_path
+ fork_path_for_current_user(project, edit_blob_path)
+ end
+
+ def ide_fork_and_edit_path
+ fork_path_for_current_user(project, ide_edit_path)
+ end
+
+ def can_modify_blob?
+ super(blob, project, blob.commit_id)
+ end
+
+ def ide_edit_path
+ super(project, blob.commit_id, blob.path)
+ end
+
+ def external_storage_url
+ return unless static_objects_external_storage_enabled?
+
+ external_storage_url_or_path(url_helpers.project_raw_url(project, ref_qualified_path))
end
private
+ def url_helpers
+ Gitlab::Routing.url_helpers
+ end
+
+ def project
+ blob.repository.project
+ end
+
+ def ref_qualified_path
+ File.join(blob.commit_id, blob.path)
+ end
+
def load_all_blob_data
blob.load_all_data! if blob.respond_to?(:load_all_data!)
end
diff --git a/app/presenters/ci/build_presenter.rb b/app/presenters/ci/build_presenter.rb
index 51a81158f78..384cb3285fc 100644
--- a/app/presenters/ci/build_presenter.rb
+++ b/app/presenters/ci/build_presenter.rb
@@ -51,4 +51,4 @@ module Ci
end
end
-Ci::BuildPresenter.prepend_if_ee('EE::Ci::BuildPresenter')
+Ci::BuildPresenter.prepend_mod_with('Ci::BuildPresenter')
diff --git a/app/presenters/ci/build_runner_presenter.rb b/app/presenters/ci/build_runner_presenter.rb
index 6978bc46475..5b233ad89ec 100644
--- a/app/presenters/ci/build_runner_presenter.rb
+++ b/app/presenters/ci/build_runner_presenter.rb
@@ -138,4 +138,4 @@ module Ci
end
end
-Ci::BuildRunnerPresenter.prepend_if_ee('EE::Ci::BuildRunnerPresenter')
+Ci::BuildRunnerPresenter.prepend_mod_with('Ci::BuildRunnerPresenter')
diff --git a/app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb b/app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb
index 2fe3104fe69..d28b4523fd5 100644
--- a/app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb
+++ b/app/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter.rb
@@ -5,18 +5,20 @@ module Ci
class CodeQualityMrDiffPresenter < Gitlab::View::Presenter::Delegated
include Gitlab::Utils::StrongMemoize
- def for_files(filenames)
- quality_files = raw_report["files"].select { |key| filenames.include?(key) }
+ def for_files(merge_request)
+ filenames = merge_request.new_paths
+ mr_diff_report = raw_report(merge_request.id)
+ quality_files = mr_diff_report["files"]&.select { |key| filenames.include?(key) }
{ files: quality_files }
end
private
- def raw_report
+ def raw_report(merge_request_id)
strong_memoize(:raw_report) do
self.each_blob do |blob|
- Gitlab::Json.parse(blob).with_indifferent_access
+ Gitlab::Json.parse(blob).with_indifferent_access.fetch("merge_request_#{merge_request_id}", {})
end
end
end
diff --git a/app/presenters/ci/pipeline_presenter.rb b/app/presenters/ci/pipeline_presenter.rb
index a2cdabb912f..82f00f74692 100644
--- a/app/presenters/ci/pipeline_presenter.rb
+++ b/app/presenters/ci/pipeline_presenter.rb
@@ -8,15 +8,16 @@ module Ci
# We use a class method here instead of a constant, allowing EE to redefine
# the returned `Hash` more easily.
def self.failure_reasons
- { unknown_failure: 'Unknown pipeline failure!',
- config_error: 'CI/CD YAML configuration error!',
- external_validation_failure: 'External pipeline validation failed!',
- activity_limit_exceeded: 'Pipeline activity limit exceeded!',
- size_limit_exceeded: 'Pipeline size limit exceeded!',
- job_activity_limit_exceeded: 'Pipeline job activity limit exceeded!',
- deployments_limit_exceeded: 'Pipeline deployments limit exceeded!',
- project_deleted: 'The associated project was deleted',
- user_blocked: 'The user who created this pipeline is blocked' }
+ { unknown_failure: 'The reason for the pipeline failure is unknown.',
+ config_error: 'The pipeline failed due to an error on the CI/CD configuration file.',
+ external_validation_failure: 'The external pipeline validation failed.',
+ user_not_verified: 'The pipeline failed due to the user not being verified',
+ activity_limit_exceeded: 'The pipeline activity limit was exceeded.',
+ size_limit_exceeded: 'The pipeline size limit was exceeded.',
+ job_activity_limit_exceeded: 'The pipeline job activity limit was exceeded.',
+ deployments_limit_exceeded: 'The pipeline deployments limit was exceeded.',
+ project_deleted: 'The project associated with this pipeline was deleted.',
+ user_blocked: 'The user who created this pipeline is blocked.' }
end
presents :pipeline
@@ -163,4 +164,4 @@ module Ci
end
end
-Ci::PipelinePresenter.prepend_if_ee('EE::Ci::PipelinePresenter')
+Ci::PipelinePresenter.prepend_mod_with('Ci::PipelinePresenter')
diff --git a/app/presenters/clusterable_presenter.rb b/app/presenters/clusterable_presenter.rb
index 62488465c24..a316793dae9 100644
--- a/app/presenters/clusterable_presenter.rb
+++ b/app/presenters/clusterable_presenter.rb
@@ -86,4 +86,4 @@ class ClusterablePresenter < Gitlab::View::Presenter::Delegated
end
end
-ClusterablePresenter.prepend_if_ee('EE::ClusterablePresenter')
+ClusterablePresenter.prepend_mod_with('ClusterablePresenter')
diff --git a/app/presenters/clusters/cluster_presenter.rb b/app/presenters/clusters/cluster_presenter.rb
index 038fc752255..eb4bd8532af 100644
--- a/app/presenters/clusters/cluster_presenter.rb
+++ b/app/presenters/clusters/cluster_presenter.rb
@@ -76,7 +76,7 @@ module Clusters
def gitlab_managed_apps_logs_path
return unless logs_project && can_read_cluster?
- if cluster.application_elastic_stack&.available?
+ if cluster.elastic_stack_adapter&.available?
elasticsearch_project_logs_path(logs_project, cluster_id: cluster.id, format: :json)
else
k8s_project_logs_path(logs_project, cluster_id: cluster.id, format: :json)
@@ -144,4 +144,4 @@ module Clusters
end
end
-Clusters::ClusterPresenter.prepend_if_ee('EE::Clusters::ClusterPresenter')
+Clusters::ClusterPresenter.prepend_mod_with('Clusters::ClusterPresenter')
diff --git a/app/presenters/commit_status_presenter.rb b/app/presenters/commit_status_presenter.rb
index c8d3457b04a..8ef6e2b7962 100644
--- a/app/presenters/commit_status_presenter.rb
+++ b/app/presenters/commit_status_presenter.rb
@@ -15,6 +15,7 @@ class CommitStatusPresenter < Gitlab::View::Presenter::Delegated
scheduler_failure: 'The scheduler failed to assign job to the runner, please try again or contact system administrator',
data_integrity_failure: 'There has been a structural integrity problem detected, please contact system administrator',
forward_deployment_failure: 'The deployment job is older than the previously succeeded deployment job, and therefore cannot be run',
+ pipeline_loop_detected: 'This job could not be executed because it would create infinitely looping pipelines',
invalid_bridge_trigger: 'This job could not be executed because downstream pipeline trigger definition is invalid',
downstream_bridge_project_not_found: 'This job could not be executed because downstream bridge project could not be found',
insufficient_bridge_permissions: 'This job could not be executed because of insufficient permissions to create a downstream pipeline',
@@ -23,7 +24,8 @@ class CommitStatusPresenter < Gitlab::View::Presenter::Delegated
secrets_provider_not_found: 'The secrets provider can not be found',
reached_max_descendant_pipelines_depth: 'You reached the maximum depth of child pipelines',
project_deleted: 'The job belongs to a deleted project',
- user_blocked: 'The user who created this job is blocked'
+ user_blocked: 'The user who created this job is blocked',
+ ci_quota_exceeded: 'No more CI minutes available'
}.freeze
private_constant :CALLOUT_FAILURE_MESSAGES
@@ -39,4 +41,4 @@ class CommitStatusPresenter < Gitlab::View::Presenter::Delegated
end
end
-CommitStatusPresenter.prepend_if_ee('::EE::CommitStatusPresenter')
+CommitStatusPresenter.prepend_mod_with('CommitStatusPresenter')
diff --git a/app/presenters/group_clusterable_presenter.rb b/app/presenters/group_clusterable_presenter.rb
index dfe8e315f94..adbe20517be 100644
--- a/app/presenters/group_clusterable_presenter.rb
+++ b/app/presenters/group_clusterable_presenter.rb
@@ -49,4 +49,4 @@ class GroupClusterablePresenter < ClusterablePresenter
end
end
-GroupClusterablePresenter.prepend_if_ee('EE::GroupClusterablePresenter')
+GroupClusterablePresenter.prepend_mod_with('GroupClusterablePresenter')
diff --git a/app/presenters/group_member_presenter.rb b/app/presenters/group_member_presenter.rb
index df51f1eb075..5ab4b51f472 100644
--- a/app/presenters/group_member_presenter.rb
+++ b/app/presenters/group_member_presenter.rb
@@ -16,4 +16,4 @@ class GroupMemberPresenter < MemberPresenter
end
end
-GroupMemberPresenter.prepend_if_ee('EE::GroupMemberPresenter')
+GroupMemberPresenter.prepend_mod_with('GroupMemberPresenter')
diff --git a/app/presenters/instance_clusterable_presenter.rb b/app/presenters/instance_clusterable_presenter.rb
index 94c1195ed6a..84b3328b37f 100644
--- a/app/presenters/instance_clusterable_presenter.rb
+++ b/app/presenters/instance_clusterable_presenter.rb
@@ -87,4 +87,4 @@ class InstanceClusterablePresenter < ClusterablePresenter
end
end
-InstanceClusterablePresenter.prepend_if_ee('EE::InstanceClusterablePresenter')
+InstanceClusterablePresenter.prepend_mod_with('InstanceClusterablePresenter')
diff --git a/app/presenters/issue_presenter.rb b/app/presenters/issue_presenter.rb
index 76bf3bf4577..b7f4ac0555d 100644
--- a/app/presenters/issue_presenter.rb
+++ b/app/presenters/issue_presenter.rb
@@ -16,4 +16,4 @@ class IssuePresenter < Gitlab::View::Presenter::Delegated
end
end
-IssuePresenter.prepend_if_ee('EE::IssuePresenter')
+IssuePresenter.prepend_mod_with('IssuePresenter')
diff --git a/app/presenters/label_presenter.rb b/app/presenters/label_presenter.rb
index c23d6ce2218..9e51e6fa4ba 100644
--- a/app/presenters/label_presenter.rb
+++ b/app/presenters/label_presenter.rb
@@ -51,4 +51,4 @@ class LabelPresenter < Gitlab::View::Presenter::Delegated
end
end
-LabelPresenter.prepend_if_ee('EE::LabelPresenter')
+LabelPresenter.prepend_mod_with('LabelPresenter')
diff --git a/app/presenters/member_presenter.rb b/app/presenters/member_presenter.rb
index 0c67fc98ced..b37a43bf251 100644
--- a/app/presenters/member_presenter.rb
+++ b/app/presenters/member_presenter.rb
@@ -52,4 +52,4 @@ class MemberPresenter < Gitlab::View::Presenter::Delegated
end
end
-MemberPresenter.prepend_if_ee('EE::MemberPresenter')
+MemberPresenter.prepend_mod_with('MemberPresenter')
diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb
index a22138011ae..7d0fa9e2f8a 100644
--- a/app/presenters/merge_request_presenter.rb
+++ b/app/presenters/merge_request_presenter.rb
@@ -151,11 +151,12 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated
def assign_to_closing_issues_link
# rubocop: disable CodeReuse/ServiceClass
- issues = MergeRequests::AssignIssuesService.new(project,
- current_user,
- merge_request: merge_request,
- closes_issues: closing_issues
- ).assignable_issues
+ issues = MergeRequests::AssignIssuesService.new(project: project,
+ current_user: current_user,
+ params: {
+ merge_request: merge_request,
+ closes_issues: closing_issues
+ }).assignable_issues
path = assign_related_issues_project_merge_request_path(project, merge_request)
if issues.present?
if issues.count > 1
@@ -273,4 +274,4 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated
end
end
-MergeRequestPresenter.prepend_if_ee('EE::MergeRequestPresenter')
+MergeRequestPresenter.prepend_mod_with('MergeRequestPresenter')
diff --git a/app/presenters/packages/detail/package_presenter.rb b/app/presenters/packages/detail/package_presenter.rb
index 6640b0c5e94..4fa207b1205 100644
--- a/app/presenters/packages/detail/package_presenter.rb
+++ b/app/presenters/packages/detail/package_presenter.rb
@@ -17,6 +17,7 @@ module Packages
name: name,
package_files: @package.package_files.map { |pf| build_package_file_view(pf) },
package_type: @package.package_type,
+ status: @package.status,
project_id: @package.project_id,
tags: @package.tags.as_json,
updated_at: @package.updated_at,
diff --git a/app/presenters/project_clusterable_presenter.rb b/app/presenters/project_clusterable_presenter.rb
index 718f653eab1..1c5f11ffe59 100644
--- a/app/presenters/project_clusterable_presenter.rb
+++ b/app/presenters/project_clusterable_presenter.rb
@@ -44,4 +44,4 @@ class ProjectClusterablePresenter < ClusterablePresenter
end
end
-ProjectClusterablePresenter.prepend_if_ee('EE::ProjectClusterablePresenter')
+ProjectClusterablePresenter.prepend_mod_with('ProjectClusterablePresenter')
diff --git a/app/presenters/project_member_presenter.rb b/app/presenters/project_member_presenter.rb
index ff9c3df793a..17947266ed7 100644
--- a/app/presenters/project_member_presenter.rb
+++ b/app/presenters/project_member_presenter.rb
@@ -16,4 +16,4 @@ class ProjectMemberPresenter < MemberPresenter
end
end
-ProjectMemberPresenter.prepend_if_ee('EE::ProjectMemberPresenter')
+ProjectMemberPresenter.prepend_mod_with('ProjectMemberPresenter')
diff --git a/app/presenters/project_presenter.rb b/app/presenters/project_presenter.rb
index aad1c816cf1..4f803ba34f4 100644
--- a/app/presenters/project_presenter.rb
+++ b/app/presenters/project_presenter.rb
@@ -108,7 +108,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
end
def add_license_ide_path
- ide_edit_path(project, default_branch_or_master, 'LICENSE')
+ ide_edit_path(project, default_branch_or_main, 'LICENSE')
end
def add_changelog_path
@@ -116,7 +116,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
end
def add_changelog_ide_path
- ide_edit_path(project, default_branch_or_master, 'CHANGELOG')
+ ide_edit_path(project, default_branch_or_main, 'CHANGELOG')
end
def add_contribution_guide_path
@@ -124,7 +124,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
end
def add_contribution_guide_ide_path
- ide_edit_path(project, default_branch_or_master, 'CONTRIBUTING.md')
+ ide_edit_path(project, default_branch_or_main, 'CONTRIBUTING.md')
end
def add_readme_path
@@ -132,13 +132,24 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
end
def add_readme_ide_path
- ide_edit_path(project, default_branch_or_master, 'README.md')
+ ide_edit_path(project, default_branch_or_main, 'README.md')
end
def add_ci_yml_path
add_special_file_path(file_name: ci_config_path_or_default)
end
+ def add_code_quality_ci_yml_path
+ add_special_file_path(
+ file_name: ci_config_path_or_default,
+ commit_message: s_("CommitMessage|Add %{file_name} and create a code quality job") % { file_name: ci_config_path_or_default },
+ additional_params: {
+ template: 'Code-Quality',
+ code_quality_walkthrough: true
+ }
+ )
+ end
+
def license_short_name
license = repository.license
license&.nickname || license&.name || 'LICENSE'
@@ -210,7 +221,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
strong_start: '<strong class="project-stat-value">'.html_safe,
strong_end: '</strong>'.html_safe
},
- empty_repo? ? nil : project_commits_path(project, repository.root_ref))
+ empty_repo? ? nil : project_commits_path(project, default_branch_or_main))
end
def branches_anchor_data
@@ -249,10 +260,10 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
nil,
nil,
{
- 'target_branch' => default_branch_or_master,
- 'original_branch' => default_branch_or_master,
+ 'target_branch' => default_branch_or_main,
+ 'original_branch' => default_branch_or_main,
'can_push_code' => 'true',
- 'path' => project_create_blob_path(project, default_branch_or_master),
+ 'path' => project_create_blob_path(project, default_branch_or_main),
'project_path' => project.path
}
)
@@ -268,7 +279,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
def new_file_anchor_data
if can_current_user_push_to_default_branch?
- new_file_path = empty_repo? ? ide_edit_path(project, default_branch_or_master) : project_new_blob_path(project, default_branch_or_master)
+ new_file_path = empty_repo? ? ide_edit_path(project, default_branch_or_main) : project_new_blob_path(project, default_branch_or_main)
AnchorData.new(false,
statistic_icon + _('New file'),
@@ -390,16 +401,16 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
end
def topics_to_show
- project.tag_list.take(MAX_TOPICS_TO_SHOW) # rubocop: disable CodeReuse/ActiveRecord
+ project.topic_list.take(MAX_TOPICS_TO_SHOW) # rubocop: disable CodeReuse/ActiveRecord
end
def topics_not_shown
- project.tag_list - topics_to_show
+ project.topic_list - topics_to_show
end
def count_of_extra_topics_not_shown
- if project.tag_list.count > MAX_TOPICS_TO_SHOW
- project.tag_list.count - MAX_TOPICS_TO_SHOW
+ if project.topic_list.count > MAX_TOPICS_TO_SHOW
+ project.topic_list.count - MAX_TOPICS_TO_SHOW
else
0
end
@@ -468,16 +479,17 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated
end
end
- def add_special_file_path(file_name:, commit_message: nil, branch_name: nil)
+ def add_special_file_path(file_name:, commit_message: nil, branch_name: nil, additional_params: {})
commit_message ||= s_("CommitMessage|Add %{file_name}") % { file_name: file_name }
project_new_blob_path(
project,
- default_branch_or_master,
+ default_branch_or_main,
file_name: file_name,
commit_message: commit_message,
- branch_name: branch_name
+ branch_name: branch_name,
+ **additional_params
)
end
end
-ProjectPresenter.prepend_if_ee('EE::ProjectPresenter')
+ProjectPresenter.prepend_mod_with('ProjectPresenter')
diff --git a/app/presenters/projects/import_export/project_export_presenter.rb b/app/presenters/projects/import_export/project_export_presenter.rb
index b52f3411c49..611294ddfd8 100644
--- a/app/presenters/projects/import_export/project_export_presenter.rb
+++ b/app/presenters/projects/import_export/project_export_presenter.rb
@@ -31,11 +31,11 @@ module Projects
def group_members
return [] unless current_user.can?(:admin_group, project.group)
- # We need `.where.not(user_id: nil)` here otherwise when a group has an
+ # We need `.connected_to_user` here otherwise when a group has an
# invitee, it would make the following query return 0 rows since a NULL
# user_id would be present in the subquery
# See http://stackoverflow.com/questions/129077/not-in-clause-and-null-values
- non_null_user_ids = project.project_members.where.not(user_id: nil).select(:user_id)
+ non_null_user_ids = project.project_members.connected_to_user.select(:user_id)
GroupMembersFinder.new(project.group).execute.where.not(user_id: non_null_user_ids)
end
# rubocop: enable CodeReuse/ActiveRecord
diff --git a/app/presenters/service_hook_presenter.rb b/app/presenters/service_hook_presenter.rb
index bc20d5b1a3b..8f2ba1a905f 100644
--- a/app/presenters/service_hook_presenter.rb
+++ b/app/presenters/service_hook_presenter.rb
@@ -4,10 +4,10 @@ class ServiceHookPresenter < Gitlab::View::Presenter::Delegated
presents :service_hook
def logs_details_path(log)
- project_service_hook_log_path(service.project, service, log)
+ project_service_hook_log_path(integration.project, integration, log)
end
def logs_retry_path(log)
- retry_project_service_hook_log_path(service.project, service, log)
+ retry_project_service_hook_log_path(integration.project, integration, log)
end
end
diff --git a/app/presenters/snippet_blob_presenter.rb b/app/presenters/snippet_blob_presenter.rb
index 597ef6ebc39..e9c710e4a0f 100644
--- a/app/presenters/snippet_blob_presenter.rb
+++ b/app/presenters/snippet_blob_presenter.rb
@@ -9,12 +9,6 @@ class SnippetBlobPresenter < BlobPresenter
render_rich_partial
end
- def plain_data
- return if blob.binary?
-
- highlight(plain: false)
- end
-
def raw_path
snippet_blob_raw_route(only_path: true)
end
diff --git a/app/presenters/terraform/modules_presenter.rb b/app/presenters/terraform/modules_presenter.rb
new file mode 100644
index 00000000000..608f69e2019
--- /dev/null
+++ b/app/presenters/terraform/modules_presenter.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+module Terraform
+ class ModulesPresenter < Gitlab::View::Presenter::Simple
+ attr_accessor :packages, :system
+
+ presents :modules
+
+ def initialize(packages, system)
+ @packages = packages
+ @system = system
+ end
+
+ def modules
+ project_url = @packages.first&.project&.web_url
+ versions = @packages.map do |package|
+ {
+ 'version' => package.version,
+ 'submodules' => [],
+ 'root' => {
+ 'dependencies' => [],
+ 'providers' => [
+ {
+ 'name' => @system,
+ 'version' => ''
+ }
+ ]
+ }
+ }
+ end
+
+ [
+ {
+ 'versions' => versions,
+ 'source' => project_url
+ }.compact
+ ]
+ end
+ end
+end