curl命令在gitlab-ci管道上不起作用



我试图使用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}

在变量名周围使用{}大括号确保":"问题不会出现

最新更新