我试图使用gitlab REST API v4提取项目ID,但当我发出curl命令时,我得到了以下错误:
"jobs:test:script config should be a string or an array of strings"
命令是这样的:
curl -k -H "PRIVATE-TOKEN: PRIVATE-TOKEN" "https://gitlab.nbg992.poc.dcn.telekom.de/api/v4/projects?search=$CI_PROJECT_NAME"
我试着单独引用它:
'curl -k -H "PRIVATE-TOKEN: PRIVATE-TOKEN" "https://gitlab.nbg992.poc.dcn.telekom.de/api/v4/projects?search=$CI_PROJECT_NAME"'
但当我执行此操作时,它会删除失败,但该命令会被忽略。所以我试着这样评价:
eval - 'curl -k -H "PRIVATE-TOKEN: PRIVATE-TOKEN" "https://gitlab.nbg992.poc.dcn.telekom.de/api/v4/projects?search=$CI_PROJECT_NAME"'
当我这样做时,故障再次产生:
"jobs:test:script config should be a string or an array of strings"
知道我应该如何发出curl命令吗?我认为导致失败的原因是"PRIVATE-TOKEN: PRIVATE-TOKEN"
中的冒号
这对我有效
在变量部分声明作业变量,例如:
- 变量:
PRIVATE-TOKEN: "TokenValue"
PRIVATE_HEADER: "PRIVATE-TOKEN: ${PRIVATE-TOKEN}"
然后在CI文件的脚本部分下使用Curl命令,如下所示
- 脚本:
curl -k -H ${PRIVATE_HEADER} "https://gitlab.nbg992.poc.dcn.telekom.de/api/v4/projects?search=${CI_PROJECT_NAME}
在变量名周围使用{}
大括号确保":"
问题不会出现