Add Play endpoints on Builds
This commit is contained in:
parent
15b441f367
commit
fffe5c2b57
3 changed files with 46 additions and 0 deletions
|
@ -30,6 +30,7 @@ v 8.11.0 (unreleased)
|
|||
- Expand commit message width in repo view (ClemMakesApps)
|
||||
- Cache highlighted diff lines for merge requests
|
||||
- Pre-create all builds for a Pipeline when the new Pipeline is created !5295
|
||||
- Add Play endpoint on Builds
|
||||
- Fix of 'Commits being passed to custom hooks are already reachable when using the UI'
|
||||
- Show member roles to all users on members page
|
||||
- Project.visible_to_user is instrumented again
|
||||
|
|
|
@ -189,6 +189,29 @@ module API
|
|||
present build, with: Entities::Build,
|
||||
user_can_download_artifacts: can?(current_user, :read_build, user_project)
|
||||
end
|
||||
|
||||
desc 'Trigger a manual build' do
|
||||
success Entities::Build
|
||||
detail 'This feature was added in GitLab 8.11'
|
||||
end
|
||||
params do
|
||||
requires :build_id, type: Integer, desc: 'The ID of a Build'
|
||||
end
|
||||
post ":id/builds/:build_id/play" do
|
||||
authorize_read_builds!
|
||||
|
||||
build = get_build!(params[:build_id])
|
||||
|
||||
if build.playable?
|
||||
build.play(current_user)
|
||||
|
||||
status 200
|
||||
present build, with: Entities::Build,
|
||||
user_can_download_artifacts: can?(current_user, :read_build, user_project)
|
||||
else
|
||||
bad_request!("Unplayable Build")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
helpers do
|
||||
|
|
|
@ -407,4 +407,26 @@ describe API::API, api: true do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST /projects/:id/builds/:build_id/play' do
|
||||
before do
|
||||
post api("/projects/#{project.id}/builds/#{build.id}/play", user)
|
||||
end
|
||||
|
||||
context 'on an playable build' do
|
||||
let(:build) { create(:ci_build, :manual, project: project, pipeline: pipeline) }
|
||||
|
||||
it 'plays the build' do
|
||||
expect(response).to have_http_status 200
|
||||
expect(json_response['user']['id']).to eq(user.id)
|
||||
end
|
||||
end
|
||||
|
||||
context 'on a non-playable build' do
|
||||
it 'returns a status code 400, Bad Request' do
|
||||
expect(response).to have_http_status 400
|
||||
expect(response.body).to match("Unplayable Build")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue