Линтер Gitlab YAML API не выдает выходных данных

# #gitlab #gitlab-ci #gitlab-api

Вопрос:

Вопрос

Я пытаюсь использовать инструмент компоновки API yaml Gitlab на корпоративном экземпляре Gitlab. Однако я получаю пустой ответ (не просто пустой объект json, например, абсолютно нулевой вывод).

Шаги для дублирования

Я использую урезанную версию файла образца .yaml , показанного на странице учебника gitlab CI/CD. Файл показан здесь:

 build-job:
  stage: build
  script:
    - echo "Hello, $GITLAB_USER_LOGIN!"

deploy-prod:
  stage: deploy
  script:
    - echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
 

Я использую команду 1 строка curl, как показано на странице API CI Linting.

Если я использую команду, как указано (заменяя только имя файла), я получаю

 $ jq --null-input --arg yaml "$(<.gitlab-ci.yml)" '.content=$yaml' 
| curl "https://gitlab.mycompany.com/api/v4/ci/lint?include_merged_yaml=true" 
--header 'Content-Type: application/json' 
--data @-
 

Я получаю результат {"message":"401 Unauthorized"} , которого и следовало ожидать, поскольку для вызова API требуется ключ API. Я создаю ключ API в своем профиле и повторяю попытку:

 $ export TOKEN='xxxxxxxxxx'
$ jq --null-input --arg yaml "$(<.gitlab-ci.yml)" '.content=$yaml' 
| curl "https://gitlab.mycompany.com/api/v4/ci/lint?include_merged_yaml=true" 
--header "Content-Type: application/json PRIVATE-TOKEN=${TOKEN}" 
--data @-
 

Когда я запускаю это, вывод ничего не показывает. Это подтверждается каналом, на wc -c который выводится 0.

Мой ожидаемый результат должен быть:

 {
  "status": "valid",
  "errors": [],
  "warnings": []
}
 

Вопросы:

  1. Почему нет ответа в результате того, что я использую свой действительный ключ API (это с недавно сгенерированным ключом)?
  2. Как я могу это исправить и получить ожидаемый результат, показанный выше?

Комментарии:

1. Если вы удалите все, кроме команды curl (включая --data @- опцию), получите ли вы ответ, говорящий no content ? {"error": "content is missing"}