InfoGrab Docs

CI Lint API

CI Lint API에 대해 설명합니다.

이 API를 사용하여 GitLab CI/CD 구성을 검증 합니다. 이 엔드포인트는 JSON으로 인코딩된 YAML 콘텐츠를 사용합니다. 경우에 따라 jq 와 같은 타사 도구를 사용하여 요청을 하기 전에 YAML 콘텐츠를 올바르게 형식화하는 것이 도움이 될 수 있습니다. CI/CD 구성의 형식을 유지하려는 경우에 유용합니다. 예를 들어 다음 명령은 JQ를 사용하여 지정된 YAML 파일을 올바르게 이스케이프하고 JSON으로 인코딩한 후 API에 요청합니다. jq --null-input --arg yaml "$(<example-gitlab-ci.yml)" '.content=$yaml' \ | curl --url "https://gitlab.com/api/v4/projects/:id/ci/lint?include_merged_yaml=true" \ --header 'Content-Type: application/json' \ --data @- example-gitlab-ci.yml 이라는 YAML 파일을 생성합니다: .api_test: rules: - if: $CI_PIPELINE_SOURCE=="merge_request_event" changes: - src/api/* deploy: extends: - .api_test rules: - when: manual allow_failure: true script: - echo "hello world" 입력 YAML 파일( example-gitlab-ci.yml )을 이스케이프 및 인코딩한 후 GitLab API에 POST 하려면 curl 과 jq 를 결합한 한 줄 명령을 생성합니다: jq --null-input --arg yaml "$(<example-gitlab-ci.yml)" '.content=$yaml' \ | curl --url "https://gitlab.com/api/v4/projects/:id/ci/lint?include_merged_yaml=true" \ --header 'Content-Type: application/json' \ --data @- 이 API의 응답 파싱 # CI Lint API의 응답을 재형식화하려면 다음 중 하나를 사용합니다: CI Lint 응답을 직접 jq 에 파이프합니다. API 응답을 텍스트 파일로 저장하고 다음과 같이 jq 에 인수로 제공합니다: jq --raw-output '.merged_yaml | fromjson' <your_input_here> 예를 들어 이 JSON 배열: { "valid" : "true" , "errors" : [ ] , "merged_yaml" : "---\n.api_test:\n rules:\n - if: $CI_PIPELINE_SOURCE==\"merge_request_event\"\n changes:\n - src/api/*\ndeploy:\n rules:\n - when: manual\n allow_failure: true\n extends:\n - \".api_test\"\n script:\n -