Commit db239dc2 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'remove_repo_prefix_from_api' into 'master'

Remove 'Repo' prefix from API entities

Closes #28417

See merge request gitlab-org/gitlab-ce!14694
parents 6ba96149 c55a9ac4
class CommitEntity < API::Entities::RepoCommit
class CommitEntity < API::Entities::Commit
include RequestAwareEntity
expose :author, using: UserEntity
......
---
title: Remove 'Repo' prefix from API entites
merge_request: 14694
author: Vitaliy @blackst0ne Klachkov
type: other
......@@ -13,7 +13,7 @@ module API
end
resource :projects, requirements: API::PROJECT_ENDPOINT_REQUIREMENTS do
desc 'Get a project repository branches' do
success Entities::RepoBranch
success Entities::Branch
end
params do
use :pagination
......@@ -23,13 +23,13 @@ module API
# n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/37442
Gitlab::GitalyClient.allow_n_plus_1_calls do
present paginate(branches), with: Entities::RepoBranch, project: user_project
present paginate(branches), with: Entities::Branch, project: user_project
end
end
resource ':id/repository/branches/:branch', requirements: BRANCH_ENDPOINT_REQUIREMENTS do
desc 'Get a single branch' do
success Entities::RepoBranch
success Entities::Branch
end
params do
requires :branch, type: String, desc: 'The name of the branch'
......@@ -41,7 +41,7 @@ module API
branch = user_project.repository.find_branch(params[:branch])
not_found!('Branch') unless branch
present branch, with: Entities::RepoBranch, project: user_project
present branch, with: Entities::Branch, project: user_project
end
end
......@@ -50,7 +50,7 @@ module API
# in `gitlab-org/gitlab-ce!5081`. The API interface has not been changed (to maintain compatibility),
# but it works with the changed data model to infer `developers_can_merge` and `developers_can_push`.
desc 'Protect a single branch' do
success Entities::RepoBranch
success Entities::Branch
end
params do
requires :branch, type: String, desc: 'The name of the branch'
......@@ -80,7 +80,7 @@ module API
end
if protected_branch.valid?
present branch, with: Entities::RepoBranch, project: user_project
present branch, with: Entities::Branch, project: user_project
else
render_api_error!(protected_branch.errors.full_messages, 422)
end
......@@ -88,7 +88,7 @@ module API
# Note: This API will be deprecated in favor of the protected branches API.
desc 'Unprotect a single branch' do
success Entities::RepoBranch
success Entities::Branch
end
params do
requires :branch, type: String, desc: 'The name of the branch'
......@@ -101,11 +101,11 @@ module API
protected_branch = user_project.protected_branches.find_by(name: branch.name)
protected_branch&.destroy
present branch, with: Entities::RepoBranch, project: user_project
present branch, with: Entities::Branch, project: user_project
end
desc 'Create branch' do
success Entities::RepoBranch
success Entities::Branch
end
params do
requires :branch, type: String, desc: 'The name of the branch'
......@@ -119,7 +119,7 @@ module API
if result[:status] == :success
present result[:branch],
with: Entities::RepoBranch,
with: Entities::Branch,
project: user_project
else
render_api_error!(result[:message], 400)
......
......@@ -13,7 +13,7 @@ module API
end
resource :projects, requirements: API::PROJECT_ENDPOINT_REQUIREMENTS do
desc 'Get a project repository commits' do
success Entities::RepoCommit
success Entities::Commit
end
params do
optional :ref_name, type: String, desc: 'The name of a repository branch or tag, if not given the default branch is used'
......@@ -46,11 +46,11 @@ module API
paginated_commits = Kaminari.paginate_array(commits, total_count: commit_count)
present paginate(paginated_commits), with: Entities::RepoCommit
present paginate(paginated_commits), with: Entities::Commit
end
desc 'Commit multiple file changes as one commit' do
success Entities::RepoCommitDetail
success Entities::CommitDetail
detail 'This feature was introduced in GitLab 8.13'
end
params do
......@@ -72,14 +72,14 @@ module API
if result[:status] == :success
commit_detail = user_project.repository.commit(result[:result])
present commit_detail, with: Entities::RepoCommitDetail
present commit_detail, with: Entities::CommitDetail
else
render_api_error!(result[:message], 400)
end
end
desc 'Get a specific commit of a project' do
success Entities::RepoCommitDetail
success Entities::CommitDetail
failure [[404, 'Commit Not Found']]
end
params do
......@@ -90,7 +90,7 @@ module API
not_found! 'Commit' unless commit
present commit, with: Entities::RepoCommitDetail
present commit, with: Entities::CommitDetail
end
desc 'Get the diff for a specific commit of a project' do
......@@ -104,7 +104,7 @@ module API
not_found! 'Commit' unless commit
present commit.raw_diffs.to_a, with: Entities::RepoDiff
present commit.raw_diffs.to_a, with: Entities::Diff
end
desc "Get a commit's comments" do
......@@ -126,7 +126,7 @@ module API
desc 'Cherry pick commit into a branch' do
detail 'This feature was introduced in GitLab 8.15'
success Entities::RepoCommit
success Entities::Commit
end
params do
requires :sha, type: String, desc: 'A commit sha, or the name of a branch or tag to be cherry picked'
......@@ -151,7 +151,7 @@ module API
if result[:status] == :success
branch = user_project.repository.find_branch(params[:branch])
present user_project.repository.commit(branch.dereferenced_target), with: Entities::RepoCommit
present user_project.repository.commit(branch.dereferenced_target), with: Entities::Commit
else
render_api_error!(result[:message], 400)
end
......
......@@ -220,7 +220,7 @@ module API
expose :shared_projects, using: Entities::Project
end
class RepoCommit < Grape::Entity
class Commit < Grape::Entity
expose :id, :short_id, :title, :created_at
expose :parent_ids
expose :safe_message, as: :message
......@@ -228,20 +228,20 @@ module API
expose :committer_name, :committer_email, :committed_date
end
class RepoCommitStats < Grape::Entity
class CommitStats < Grape::Entity
expose :additions, :deletions, :total
end
class RepoCommitDetail < RepoCommit
expose :stats, using: Entities::RepoCommitStats
class CommitDetail < Commit
expose :stats, using: Entities::CommitStats
expose :status
expose :last_pipeline, using: 'API::Entities::PipelineBasic'
end
class RepoBranch < Grape::Entity
class Branch < Grape::Entity
expose :name
expose :commit, using: Entities::RepoCommit do |repo_branch, options|
expose :commit, using: Entities::Commit do |repo_branch, options|
options[:project].repository.commit(repo_branch.dereferenced_target)
end
......@@ -265,7 +265,7 @@ module API
end
end
class RepoTreeObject < Grape::Entity
class TreeObject < Grape::Entity
expose :id, :name, :type, :path
expose :mode do |obj, options|
......@@ -305,7 +305,7 @@ module API
expose :state, :created_at, :updated_at
end
class RepoDiff < Grape::Entity
class Diff < Grape::Entity
expose :old_path, :new_path, :a_mode, :b_mode
expose :new_file?, as: :new_file
expose :renamed_file?, as: :renamed_file
......@@ -483,7 +483,7 @@ module API
end
class MergeRequestChanges < MergeRequest
expose :diffs, as: :changes, using: Entities::RepoDiff do |compare, _|
expose :diffs, as: :changes, using: Entities::Diff do |compare, _|
compare.raw_diffs(limits: false).to_a
end
end
......@@ -494,9 +494,9 @@ module API
end
class MergeRequestDiffFull < MergeRequestDiff
expose :commits, using: Entities::RepoCommit
expose :commits, using: Entities::Commit
expose :diffs, using: Entities::RepoDiff do |compare, _|
expose :diffs, using: Entities::Diff do |compare, _|
compare.raw_diffs(limits: false).to_a
end
end
......@@ -592,8 +592,7 @@ module API
expose :target_type
expose :target do |todo, options|
target = todo.target_type == 'Commit' ? 'RepoCommit' : todo.target_type
Entities.const_get(target).represent(todo.target, options)
Entities.const_get(todo.target_type).represent(todo.target, options)
end
expose :target_url do |todo, options|
......@@ -729,15 +728,15 @@ module API
end
class Compare < Grape::Entity
expose :commit, using: Entities::RepoCommit do |compare, options|
Commit.decorate(compare.commits, nil).last
expose :commit, using: Entities::Commit do |compare, options|
::Commit.decorate(compare.commits, nil).last
end
expose :commits, using: Entities::RepoCommit do |compare, options|
Commit.decorate(compare.commits, nil)
expose :commits, using: Entities::Commit do |compare, options|
::Commit.decorate(compare.commits, nil)
end
expose :diffs, using: Entities::RepoDiff do |compare, options|
expose :diffs, using: Entities::Diff do |compare, options|
compare.diffs(limits: false).to_a
end
......@@ -773,10 +772,10 @@ module API
expose :description
end
class RepoTag < Grape::Entity
class Tag < Grape::Entity
expose :name, :message
expose :commit, using: Entities::RepoCommit do |repo_tag, options|
expose :commit, using: Entities::Commit do |repo_tag, options|
options[:project].repository.commit(repo_tag.dereferenced_target)
end
......@@ -827,7 +826,7 @@ module API
expose :created_at, :started_at, :finished_at
expose :user, with: User
expose :artifacts_file, using: JobArtifactFile, if: -> (job, opts) { job.artifacts? }
expose :commit, with: RepoCommit
expose :commit, with: Commit
expose :runner, with: Runner
expose :pipeline, with: PipelineBasic
end
......@@ -880,7 +879,7 @@ module API
expose :deployable, using: Entities::Job
end
class RepoLicense < Grape::Entity
class License < Grape::Entity
expose :key, :name, :nickname
expose :featured, as: :popular
expose :url, as: :html_url
......
......@@ -183,13 +183,13 @@ module API
end
desc 'Get the commits of a merge request' do
success Entities::RepoCommit
success Entities::Commit
end
get ':id/merge_requests/:merge_request_iid/commits' do
merge_request = find_merge_request_with_access(params[:merge_request_iid])
commits = ::Kaminari.paginate_array(merge_request.commits)
present paginate(commits), with: Entities::RepoCommit
present paginate(commits), with: Entities::Commit
end
desc 'Show the merge request changes' do
......
......@@ -35,7 +35,7 @@ module API
end
desc 'Get a project repository tree' do
success Entities::RepoTreeObject
success Entities::TreeObject
end
params do
optional :ref, type: String, desc: 'The name of a repository branch or tag, if not given the default branch is used'
......@@ -52,7 +52,7 @@ module API
tree = user_project.repository.tree(commit.id, path, recursive: params[:recursive])
entries = ::Kaminari.paginate_array(tree.sorted_entries)
present paginate(entries), with: Entities::RepoTreeObject
present paginate(entries), with: Entities::TreeObject
end
desc 'Get raw blob contents from the repository'
......
......@@ -11,18 +11,18 @@ module API
end
resource :projects, requirements: API::PROJECT_ENDPOINT_REQUIREMENTS do
desc 'Get a project repository tags' do
success Entities::RepoTag
success Entities::Tag
end
params do
use :pagination
end
get ':id/repository/tags' do
tags = ::Kaminari.paginate_array(user_project.repository.tags.sort_by(&:name).reverse)
present paginate(tags), with: Entities::RepoTag, project: user_project
present paginate(tags), with: Entities::Tag, project: user_project
end
desc 'Get a single repository tag' do
success Entities::RepoTag
success Entities::Tag
end
params do
requires :tag_name, type: String, desc: 'The name of the tag'
......@@ -31,11 +31,11 @@ module API
tag = user_project.repository.find_tag(params[:tag_name])
not_found!('Tag') unless tag
present tag, with: Entities::RepoTag, project: user_project
present tag, with: Entities::Tag, project: user_project
end
desc 'Create a new repository tag' do
success Entities::RepoTag
success Entities::Tag
end
params do
requires :tag_name, type: String, desc: 'The name of the tag'
......@@ -51,7 +51,7 @@ module API
if result[:status] == :success
present result[:tag],
with: Entities::RepoTag,
with: Entities::Tag,
project: user_project
else
render_api_error!(result[:message], 400)
......
......@@ -49,7 +49,7 @@ module API
desc 'Get the list of the available license template' do
detail 'This feature was introduced in GitLab 8.7.'
success ::API::Entities::RepoLicense
success ::API::Entities::License
end
params do
optional :popular, type: Boolean, desc: 'If passed, returns only popular licenses'
......@@ -60,12 +60,12 @@ module API
featured: declared(params)[:popular].present? ? true : nil
}
licences = ::Kaminari.paginate_array(Licensee::License.all(options))
present paginate(licences), with: Entities::RepoLicense
present paginate(licences), with: Entities::License
end
desc 'Get the text for a specific license' do
detail 'This feature was introduced in GitLab 8.7.'
success ::API::Entities::RepoLicense
success ::API::Entities::License
end
params do
requires :name, type: String, desc: 'The name of the template'
......@@ -75,7 +75,7 @@ module API
template = parsed_license_template
present template, with: ::API::Entities::RepoLicense
present template, with: ::API::Entities::License
end
GLOBAL_TEMPLATE_TYPES.each do |template_type, properties|
......
......@@ -11,12 +11,12 @@ module API
end
resource :projects, requirements: { id: %r{[^/]+} } do
desc 'Get a project repository branches' do
success ::API::Entities::RepoBranch
success ::API::Entities::Branch
end
get ":id/repository/branches" do
branches = user_project.repository.branches.sort_by(&:name)
present branches, with: ::API::Entities::RepoBranch, project: user_project
present branches, with: ::API::Entities::Branch, project: user_project
end
desc 'Delete a branch'
......@@ -47,7 +47,7 @@ module API
end
desc 'Create branch' do
success ::API::Entities::RepoBranch
success ::API::Entities::Branch
end
params do
requires :branch_name, type: String, desc: 'The name of the branch'
......@@ -60,7 +60,7 @@ module API
if result[:status] == :success
present result[:branch],
with: ::API::Entities::RepoBranch,
with: ::API::Entities::Branch,
project: user_project
else
render_api_error!(result[:message], 400)
......
......@@ -13,7 +13,7 @@ module API
end
resource :projects, requirements: { id: %r{[^/]+} } do
desc 'Get a project repository commits' do
success ::API::Entities::RepoCommit
success ::API::Entities::Commit
end
params do
optional :ref_name, type: String, desc: 'The name of a repository branch or tag, if not given the default branch is used'
......@@ -34,11 +34,11 @@ module API
after: params[:since],
before: params[:until])
present commits, with: ::API::Entities::RepoCommit
present commits, with: ::API::Entities::Commit
end
desc 'Commit multiple file changes as one commit' do
success ::API::Entities::RepoCommitDetail
success ::API::Entities::CommitDetail
detail 'This feature was introduced in GitLab 8.13'
end
params do
......@@ -59,14 +59,14 @@ module API
if result[:status] == :success
commit_detail = user_project.repository.commits(result[:result], limit: 1).first
present commit_detail, with: ::API::Entities::RepoCommitDetail
present commit_detail, with: ::API::Entities::CommitDetail
else
render_api_error!(result[:message], 400)
end
end
desc 'Get a specific commit of a project' do
success ::API::Entities::RepoCommitDetail
success ::API::Entities::CommitDetail
failure [[404, 'Not Found']]
end
params do
......@@ -77,7 +77,7 @@ module API
not_found! "Commit" unless commit
present commit, with: ::API::Entities::RepoCommitDetail
present commit, with: ::API::Entities::CommitDetail
end
desc 'Get the diff for a specific commit of a project' do
......@@ -113,7 +113,7 @@ module API
desc 'Cherry pick commit into a branch' do
detail 'This feature was introduced in GitLab 8.15'
success ::API::Entities::RepoCommit
success ::API::Entities::Commit
end
params do
requires :sha, type: String, desc: 'A commit sha to be cherry picked'
......@@ -138,7 +138,7 @@ module API
if result[:status] == :success
branch = user_project.repository.find_branch(params[:branch])
present user_project.repository.commit(branch.dereferenced_target), with: ::API::Entities::RepoCommit
present user_project.repository.commit(branch.dereferenced_target), with: ::API::Entities::Commit
else
render_api_error!(result[:message], 400)
end
......
......@@ -220,7 +220,7 @@ module API
expose :created_at, :started_at, :finished_at
expose :user, with: ::API::Entities::User
expose :artifacts_file, using: ::API::Entities::JobArtifactFile, if: -> (build, opts) { build.artifacts? }
expose :commit, with: ::API::Entities::RepoCommit
expose :commit, with: ::API::Entities::Commit
expose :runner, with: ::API::Entities::Runner
expose :pipeline, with: ::API::Entities::PipelineBasic
end
......@@ -237,7 +237,7 @@ module API
end
class MergeRequestChanges < MergeRequest
expose :diffs, as: :changes, using: ::API::Entities::RepoDiff do |compare, _|
expose :diffs, as: :changes, using: ::API::Entities::Diff do |compare, _|
compare.raw_diffs(limits: false).to_a
end
end
......
......@@ -135,12 +135,12 @@ module API
end
desc 'Get the commits of a merge request' do
success ::API::Entities::RepoCommit
success ::API::Entities::Commit
end
get "#{path}/commits" do
merge_request = find_merge_request_with_access(params[:merge_request_id])
present merge_request.commits, with: ::API::Entities::RepoCommit
present merge_request.commits, with: ::API::Entities::Commit
end
desc 'Show the merge request changes' do
......
......@@ -19,7 +19,7 @@ module API
end
desc 'Get a project repository tree' do
success ::API::Entities::RepoTreeObject
success ::API::Entities::TreeObject
end
params do
optional :ref_name, type: String, desc: 'The name of a repository branch or tag, if not given the default branch is used'
......@@ -35,7 +35,7 @@ module API
tree = user_project.repository.tree(commit.id, path, recursive: params[:recursive])
present tree.sorted_entries, with: ::API::Entities::RepoTreeObject
present tree.sorted_entries, with: ::API::Entities::TreeObject
end
desc 'Get a raw file contents'
......
......@@ -8,11 +8,11 @@ module API
end
resource :projects, requirements: { id: %r{[^/]+} } do
desc 'Get a project repository tags' do
success ::API::Entities::RepoTag
success ::API::Entities::Tag
end
get ":id/repository/tags" do
tags = user_project.repository.tags.sort_by(&:name).reverse
present tags, with: ::API::Entities::RepoTag, project: user_project
present tags, with: ::API::Entities::Tag, project: user_project
end
desc 'Delete a repository tag'
......
......@@ -52,7 +52,7 @@ module API
detailed_desc = 'This feature was introduced in GitLab 8.7.'
detailed_desc << DEPRECATION_MESSAGE unless status == :ok
detail detailed_desc
success ::API::Entities::RepoLicense
success ::API::Entities::License
end
params do
optional :popular, type: Boolean, desc: 'If passed, returns only popular licenses'
......@@ -61,7 +61,7 @@ module API
options = {
featured: declared(params)[:popular].present? ? true : nil
}
present Licensee::License.all(options), with: ::API::Entities::RepoLicense
present Licensee::License.all(options), with: ::API::Entities::License
end
end
......@@ -70,7 +70,7 @@ module API
detailed_desc = 'This feature was introduced in GitLab 8.7.'
detailed_desc << DEPRECATION_MESSAGE unless status == :ok
detail detailed_desc
success ::API::Entities::RepoLicense
success ::API::Entities::License
end
params do
requires :name, type: String, desc: 'The name of the template'
......@@ -80,7 +80,7 @@ module API
template = parsed_license_template
present template, with: ::API::Entities::RepoLicense
present template, with: ::API::Entities::License
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment