Merge branch 'expose-last-pipeline-for-a-commit' into 'master'
Expose last pipeline details in API response when getting a single commit Closes #35692 See merge request gitlab-org/gitlab-ce!13521
This commit is contained in:
commit
7e71ec199a
6 changed files with 42 additions and 2 deletions
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Expose last pipeline details in API response when getting a single commit
|
||||||
|
merge_request: 13521
|
||||||
|
author: Mehdi Lahmam (@mehlah)
|
||||||
|
type: added
|
|
@ -181,6 +181,12 @@ Example response:
|
||||||
"parent_ids": [
|
"parent_ids": [
|
||||||
"ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"
|
"ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"
|
||||||
],
|
],
|
||||||
|
"last_pipeline" : {
|
||||||
|
"id": 8,
|
||||||
|
"ref": "master",
|
||||||
|
"sha": "2dc6aa325a317eda67812f05600bdf0fcdc70ab0"
|
||||||
|
"status": "created"
|
||||||
|
}
|
||||||
"stats": {
|
"stats": {
|
||||||
"additions": 15,
|
"additions": 15,
|
||||||
"deletions": 10,
|
"deletions": 10,
|
||||||
|
|
|
@ -234,6 +234,7 @@ module API
|
||||||
class RepoCommitDetail < RepoCommit
|
class RepoCommitDetail < RepoCommit
|
||||||
expose :stats, using: Entities::RepoCommitStats
|
expose :stats, using: Entities::RepoCommitStats
|
||||||
expose :status
|
expose :status
|
||||||
|
expose :last_pipeline, using: 'API::Entities::PipelineBasic'
|
||||||
end
|
end
|
||||||
|
|
||||||
class RepoBranch < Grape::Entity
|
class RepoBranch < Grape::Entity
|
||||||
|
|
|
@ -5,11 +5,18 @@
|
||||||
{
|
{
|
||||||
"required" : [
|
"required" : [
|
||||||
"stats",
|
"stats",
|
||||||
"status"
|
"status",
|
||||||
|
"last_pipeline"
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
"stats": { "$ref": "../commit_stats.json" },
|
"stats": { "$ref": "../commit_stats.json" },
|
||||||
"status": { "type": ["string", "null"] }
|
"status": { "type": ["string", "null"] },
|
||||||
|
"last_pipeline": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "type": "null" },
|
||||||
|
{ "$ref": "../pipeline/basic.json" }
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
16
spec/fixtures/api/schemas/public_api/v4/pipeline/basic.json
vendored
Normal file
16
spec/fixtures/api/schemas/public_api/v4/pipeline/basic.json
vendored
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"required" : [
|
||||||
|
"id",
|
||||||
|
"sha",
|
||||||
|
"ref",
|
||||||
|
"status"
|
||||||
|
],
|
||||||
|
"properties" : {
|
||||||
|
"id": { "type": "integer" },
|
||||||
|
"sha": { "type": "string" },
|
||||||
|
"ref": { "type": "string" },
|
||||||
|
"status": { "type": "string" }
|
||||||
|
},
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
|
@ -491,6 +491,7 @@ describe API::Commits do
|
||||||
expect(json_response['stats']['deletions']).to eq(commit.stats.deletions)
|
expect(json_response['stats']['deletions']).to eq(commit.stats.deletions)
|
||||||
expect(json_response['stats']['total']).to eq(commit.stats.total)
|
expect(json_response['stats']['total']).to eq(commit.stats.total)
|
||||||
expect(json_response['status']).to be_nil
|
expect(json_response['status']).to be_nil
|
||||||
|
expect(json_response['last_pipeline']).to be_nil
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when ref does not exist' do
|
context 'when ref does not exist' do
|
||||||
|
@ -573,6 +574,10 @@ describe API::Commits do
|
||||||
expect(response).to have_http_status(200)
|
expect(response).to have_http_status(200)
|
||||||
expect(response).to match_response_schema('public_api/v4/commit/detail')
|
expect(response).to match_response_schema('public_api/v4/commit/detail')
|
||||||
expect(json_response['status']).to eq('created')
|
expect(json_response['status']).to eq('created')
|
||||||
|
expect(json_response['last_pipeline']['id']).to eq(pipeline.id)
|
||||||
|
expect(json_response['last_pipeline']['ref']).to eq(pipeline.ref)
|
||||||
|
expect(json_response['last_pipeline']['sha']).to eq(pipeline.sha)
|
||||||
|
expect(json_response['last_pipeline']['status']).to eq(pipeline.status)
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when pipeline succeeds' do
|
context 'when pipeline succeeds' do
|
||||||
|
|
Loading…
Reference in a new issue