diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-19 08:27:35 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-19 08:27:35 +0000 |
commit | 7e9c479f7de77702622631cff2628a9c8dcbc627 (patch) | |
tree | c8f718a08e110ad7e1894510980d2155a6549197 /lib/api/entities | |
parent | e852b0ae16db4052c1c567d9efa4facc81146e88 (diff) | |
download | gitlab-ce-7e9c479f7de77702622631cff2628a9c8dcbc627.tar.gz |
Add latest changes from gitlab-org/gitlab@13-6-stable-eev13.6.0-rc42
Diffstat (limited to 'lib/api/entities')
-rw-r--r-- | lib/api/entities/board.rb | 1 | ||||
-rw-r--r-- | lib/api/entities/commit_signature.rb | 19 | ||||
-rw-r--r-- | lib/api/entities/container_registry.rb | 9 | ||||
-rw-r--r-- | lib/api/entities/invitation.rb | 15 | ||||
-rw-r--r-- | lib/api/entities/merge_request_changes.rb | 22 | ||||
-rw-r--r-- | lib/api/entities/package.rb | 3 | ||||
-rw-r--r-- | lib/api/entities/package_file.rb | 1 | ||||
-rw-r--r-- | lib/api/entities/package_version.rb | 2 | ||||
-rw-r--r-- | lib/api/entities/project_hook.rb | 2 | ||||
-rw-r--r-- | lib/api/entities/release.rb | 2 | ||||
-rw-r--r-- | lib/api/entities/releases/link.rb | 6 | ||||
-rw-r--r-- | lib/api/entities/user_status.rb | 1 |
12 files changed, 71 insertions, 12 deletions
diff --git a/lib/api/entities/board.rb b/lib/api/entities/board.rb index 5bb1cde0fa9..b7a50408313 100644 --- a/lib/api/entities/board.rb +++ b/lib/api/entities/board.rb @@ -4,6 +4,7 @@ module API module Entities class Board < Grape::Entity expose :id + expose :name expose :project, using: Entities::BasicProjectDetails expose :lists, using: Entities::List do |board| diff --git a/lib/api/entities/commit_signature.rb b/lib/api/entities/commit_signature.rb index b5232273521..505ce462edf 100644 --- a/lib/api/entities/commit_signature.rb +++ b/lib/api/entities/commit_signature.rb @@ -4,13 +4,28 @@ module API module Entities class CommitSignature < Grape::Entity expose :signature_type + expose :signature, merge: true do |commit, options| - if commit.signature.is_a?(GpgSignature) - ::API::Entities::GpgCommitSignature.represent commit.signature, options + if commit.signature.is_a?(GpgSignature) || commit.raw_commit_from_rugged? + ::API::Entities::GpgCommitSignature.represent commit_signature(commit), options elsif commit.signature.is_a?(X509CommitSignature) ::API::Entities::X509Signature.represent commit.signature, options end end + + expose :commit_source do |commit, _| + commit.raw_commit_from_rugged? ? "rugged" : "gitaly" + end + + private + + def commit_signature(commit) + if commit.raw_commit_from_rugged? + commit.gpg_commit.signature + else + commit.signature + end + end end end end diff --git a/lib/api/entities/container_registry.rb b/lib/api/entities/container_registry.rb index c430b73580b..c9c2c5156cc 100644 --- a/lib/api/entities/container_registry.rb +++ b/lib/api/entities/container_registry.rb @@ -10,6 +10,8 @@ module API end class Repository < Grape::Entity + include ::API::Helpers::RelatedResourcesHelpers + expose :id expose :name expose :path @@ -19,6 +21,13 @@ module API expose :expiration_policy_started_at, as: :cleanup_policy_started_at expose :tags_count, if: -> (_, options) { options[:tags_count] } expose :tags, using: Tag, if: -> (_, options) { options[:tags] } + expose :delete_api_path, if: ->(object, options) { Ability.allowed?(options[:user], :admin_container_image, object) } + + private + + def delete_api_path + expose_url api_v4_projects_registry_repositories_path(repository_id: object.id, id: object.project_id) + end end class TagDetails < Tag diff --git a/lib/api/entities/invitation.rb b/lib/api/entities/invitation.rb new file mode 100644 index 00000000000..342f4804cf3 --- /dev/null +++ b/lib/api/entities/invitation.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module API + module Entities + class Invitation < Grape::Entity + expose :access_level + expose :requested_at + expose :expires_at + expose :invite_email + expose :invite_token + expose :user_name, if: -> (member, _) { member.user.present? } + expose :created_by_name + end + end +end diff --git a/lib/api/entities/merge_request_changes.rb b/lib/api/entities/merge_request_changes.rb index a835d119736..488f33dfb93 100644 --- a/lib/api/entities/merge_request_changes.rb +++ b/lib/api/entities/merge_request_changes.rb @@ -4,7 +4,27 @@ module API module Entities class MergeRequestChanges < MergeRequest expose :diffs, as: :changes, using: Entities::Diff do |compare, _| - compare.raw_diffs(limits: false).to_a + Array(diff_collection(compare)) + end + + expose :overflow?, as: :overflow + + private + + def overflow? + expose_raw_diffs? ? false : diff_collection(object).overflow? + end + + def diff_collection(compare) + @diffs ||= if expose_raw_diffs? + compare.raw_diffs(limits: false) + else + compare.diffs.diffs + end + end + + def expose_raw_diffs? + options[:access_raw_diffs] || ::Feature.enabled?(:mrc_api_use_raw_diffs_from_gitaly, options[:project]) end end end diff --git a/lib/api/entities/package.rb b/lib/api/entities/package.rb index b54f0e04a9d..e7153f9bebb 100644 --- a/lib/api/entities/package.rb +++ b/lib/api/entities/package.rb @@ -38,7 +38,8 @@ module API expose :project_path, if: ->(obj, opts) { opts[:group] && Ability.allowed?(opts[:user], :read_project, obj.project) } expose :tags - expose :pipeline, if: ->(package) { package.build_info }, using: Package::Pipeline + expose :pipeline, if: ->(package) { package.original_build_info }, using: Package::Pipeline + expose :pipelines, if: ->(package) { package.pipelines.present? }, using: Package::Pipeline expose :versions, using: ::API::Entities::PackageVersion, unless: ->(_, opts) { opts[:collection] } diff --git a/lib/api/entities/package_file.rb b/lib/api/entities/package_file.rb index 8be4e5a4316..2cc2f62a948 100644 --- a/lib/api/entities/package_file.rb +++ b/lib/api/entities/package_file.rb @@ -6,6 +6,7 @@ module API expose :id, :package_id, :created_at expose :file_name, :size expose :file_md5, :file_sha1 + expose :pipelines, if: ->(package_file) { package_file.pipelines.present? }, using: Package::Pipeline end end end diff --git a/lib/api/entities/package_version.rb b/lib/api/entities/package_version.rb index 5f3e86c3229..82522d3f423 100644 --- a/lib/api/entities/package_version.rb +++ b/lib/api/entities/package_version.rb @@ -8,7 +8,7 @@ module API expose :created_at expose :tags - expose :pipeline, if: ->(package) { package.build_info }, using: Package::Pipeline + expose :pipeline, if: ->(package) { package.original_build_info }, using: Package::Pipeline end end end diff --git a/lib/api/entities/project_hook.rb b/lib/api/entities/project_hook.rb index 751f9500252..6c71e5d317c 100644 --- a/lib/api/entities/project_hook.rb +++ b/lib/api/entities/project_hook.rb @@ -5,7 +5,7 @@ module API class ProjectHook < Hook expose :project_id, :issues_events, :confidential_issues_events expose :note_events, :confidential_note_events, :pipeline_events, :wiki_page_events, :deployment_events - expose :job_events + expose :job_events, :releases_events expose :push_events_branch_filter end end diff --git a/lib/api/entities/release.rb b/lib/api/entities/release.rb index afe14cf33cf..44a46c5861e 100644 --- a/lib/api/entities/release.rb +++ b/lib/api/entities/release.rb @@ -30,8 +30,6 @@ module API expose :evidences, using: Entities::Releases::Evidence, expose_nil: false, if: ->(_, _) { can_download_code? } expose :_links do expose :self_url, as: :self, expose_nil: false - expose :merge_requests_url, expose_nil: false - expose :issues_url, expose_nil: false expose :edit_url, expose_nil: false end diff --git a/lib/api/entities/releases/link.rb b/lib/api/entities/releases/link.rb index 654df2e2caf..c1d83a8924f 100644 --- a/lib/api/entities/releases/link.rb +++ b/lib/api/entities/releases/link.rb @@ -14,10 +14,8 @@ module API def direct_asset_url return object.url unless object.filepath - release = object.release - project = release.project - - Gitlab::Routing.url_helpers.project_release_url(project, release) << object.filepath + release = object.release.present + release.download_url(object.filepath) end end end diff --git a/lib/api/entities/user_status.rb b/lib/api/entities/user_status.rb index 9bc4cbf240f..1d5cc27e5ef 100644 --- a/lib/api/entities/user_status.rb +++ b/lib/api/entities/user_status.rb @@ -5,6 +5,7 @@ module API class UserStatus < Grape::Entity expose :emoji expose :message + expose :availability expose :message_html do |entity| MarkupHelper.markdown_field(entity, :message) end |