Create CI Lint API endpoint scoped to project
In !37134 (merged) we expanded the CI Lint to use a dry run
mode which goes deeper in the pipeline creation stack, providing a simulation of the actual pipeline creation.
The dry run
mode was implemented only for Projects::Ci::LintsController#create
while the API endpoint still uses the legacy method via YamlProcessor
. Converting the existing API endpoint to use dry run
is not possible because it's project agnostic. The dry run
is project-aware.
To solve this problem we could introduce a new API endpoint scoped to projects: POST v4/projects/:id/ci/lint
which would have dry run
on by default.
This endpoint should return:
{
status: 'failed', # or success
errors: [ ... ],
warnings: [ ... ],
jobs: [ ... ] # if status: success
}
Edited by Fabio Pitino