Basic ref fetching for commits
This commit is contained in:
parent
7534f7a892
commit
cea2a8f741
|
@ -156,6 +156,31 @@ module API
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
desc 'Get all reference a commit is pushed to' do
|
||||||
|
detail 'This feature was introduced in GitLab 10.6'
|
||||||
|
success Entities::SimpleRef
|
||||||
|
end
|
||||||
|
params do
|
||||||
|
requires :sha, type: String, desc: 'A commit sha'
|
||||||
|
optional :type, type: String, values: %w(branches tags all), default: 'all', desc: 'Scope'
|
||||||
|
end
|
||||||
|
get ':id/repository/commits/:sha/refs', requirements: API::COMMIT_ENDPOINT_REQUIREMENTS do
|
||||||
|
commit = user_project.commit(params[:sha])
|
||||||
|
not_found!('Commit') unless commit
|
||||||
|
|
||||||
|
case params[:type]
|
||||||
|
when 'branches'
|
||||||
|
refs = user_project.repository.branch_names_contains(commit.id)
|
||||||
|
when 'tags'
|
||||||
|
refs = user_project.repository.tag_names_contains(commit.id)
|
||||||
|
else
|
||||||
|
refs = user_project.repository.branch_names_contains(commit.id)
|
||||||
|
refs.push(*user_project.repository.tag_names_contains(commit.id))
|
||||||
|
end
|
||||||
|
|
||||||
|
present refs, with: Entities::SimpleRef
|
||||||
|
end
|
||||||
|
|
||||||
desc 'Post comment to commit' do
|
desc 'Post comment to commit' do
|
||||||
success Entities::CommitNote
|
success Entities::CommitNote
|
||||||
end
|
end
|
||||||
|
|
|
@ -276,7 +276,17 @@ module API
|
||||||
expose :last_pipeline, using: 'API::Entities::PipelineBasic'
|
expose :last_pipeline, using: 'API::Entities::PipelineBasic'
|
||||||
end
|
end
|
||||||
|
|
||||||
class Branch < Grape::Entity
|
class BasicRef < Grape::Entity
|
||||||
|
expose :name
|
||||||
|
end
|
||||||
|
|
||||||
|
class SimpleRef < Grape::Entity
|
||||||
|
expose :name do |ref, options|
|
||||||
|
ref
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
class Branch < BasicRef
|
||||||
expose :name
|
expose :name
|
||||||
|
|
||||||
expose :commit, using: Entities::Commit do |repo_branch, options|
|
expose :commit, using: Entities::Commit do |repo_branch, options|
|
||||||
|
@ -845,8 +855,8 @@ module API
|
||||||
expose :description
|
expose :description
|
||||||
end
|
end
|
||||||
|
|
||||||
class Tag < Grape::Entity
|
class Tag < BasicRef
|
||||||
expose :name, :message
|
expose :message
|
||||||
|
|
||||||
expose :commit, using: Entities::Commit do |repo_tag, options|
|
expose :commit, using: Entities::Commit do |repo_tag, options|
|
||||||
options[:project].repository.commit(repo_tag.dereferenced_target)
|
options[:project].repository.commit(repo_tag.dereferenced_target)
|
||||||
|
|
Loading…
Reference in New Issue