Я думаю, что вы должны использовать private_token, как сказано в документации:
curl https://gitlab.example.com/api/v4/projects?private_token=<your_access_token>
или в шапке, как вы сказали:
curl --header "PRIVATE-TOKEN: xxx" "https://gitlab.com/api/v4/projects"
Загляните на официальную страницу:
https://docs.gitlab.com/ee/api/README.html#personal-access-tokens
Пример:
Получение информации из запроса на слияние с iid 1 (фактические метки - testlabel и testlabel3):
#curl -X GET https://gitlab.com/api/v4/projects/11209705/merge_requests/1?private_token={XXXXXX}
{"id":28761206,"iid":1,"project_id":1120970.......,"labels":["testlabel","testlabel3"],...}
Отправка пут с curl с «--data» и параметром для обновления «меток» до «test»:
# curl -X PUT https://gitlab.com/api/v4/projects/11209705/merge_requests/1?private_token={XXXXX} --data "labels=test"
Получение информации из запроса на слияние с iid 1 (фактические метки - «test»):
#curl -X GET https://gitlab.com/api/v4/projects/11209705/merge_requests/1?private_token={XXXXXX}
{"id":28761206,"iid":1,"project_id":1120970.......,"labels":["test"],...}