如何将 curl 输出保存在 gitlab 变量中?
How to save curl output in gitlab variable?
对于一个项目,我们想调用一个 API 并将此 curl 的结果保存在一个变量中。
管道是这样构建的:
stages:
- download
scan:
stage: download
image: ubuntu
variables:
TOKEN:
script:
- apk add curl
- apk add jq
- TOKEN=$('curl -H "Content-Type: application/json" -d "{\"username\":\"$USER", \"password\":\"$PWD"}" https://example.org/api2/authenticate | jq .token ')
#- echo $TOKEN
我收到这个错误:
此 GitLab CI 配置无效:jobs:scan:script 配置应为字符串或最多 10 层深的嵌套字符串数组。
curl 命令(从 $() 中删除,但保留单引号以将双引号括起来)正常工作并且 returns 内部包含标记的字符串。唯一的问题是将结果封装在一个变量中。可以做什么?
谢谢。
尝试代替这个
- TOKEN=$('curl -H "Content-Type: application/json" -d "{\"username\":\"$USER", \"password\":\"$PWD"}" https://example.org/api2/authenticate | jq .token ')
以下
- |
TOKEN=$(curl -H "Content-Type: application/json" -d "{\"username\":\"$USER\", \"password\":\"$PWD\"}" https://example.org/api2/authenticate | jq .token)
P.S。
我建议从 运行
开始
- |
curl -H "Content-Type: application/json" -d "{\"username\":\"$USER\", \"password\":\"$PWD\"}" https://example.org/api2/authenticate
为了调试curl命令输出,在运行 jq
之前
对于一个项目,我们想调用一个 API 并将此 curl 的结果保存在一个变量中。
管道是这样构建的:
stages:
- download
scan:
stage: download
image: ubuntu
variables:
TOKEN:
script:
- apk add curl
- apk add jq
- TOKEN=$('curl -H "Content-Type: application/json" -d "{\"username\":\"$USER", \"password\":\"$PWD"}" https://example.org/api2/authenticate | jq .token ')
#- echo $TOKEN
我收到这个错误:
此 GitLab CI 配置无效:jobs:scan:script 配置应为字符串或最多 10 层深的嵌套字符串数组。
curl 命令(从 $() 中删除,但保留单引号以将双引号括起来)正常工作并且 returns 内部包含标记的字符串。唯一的问题是将结果封装在一个变量中。可以做什么?
谢谢。
尝试代替这个
- TOKEN=$('curl -H "Content-Type: application/json" -d "{\"username\":\"$USER", \"password\":\"$PWD"}" https://example.org/api2/authenticate | jq .token ')
以下
- |
TOKEN=$(curl -H "Content-Type: application/json" -d "{\"username\":\"$USER\", \"password\":\"$PWD\"}" https://example.org/api2/authenticate | jq .token)
P.S。 我建议从 运行
开始- |
curl -H "Content-Type: application/json" -d "{\"username\":\"$USER\", \"password\":\"$PWD\"}" https://example.org/api2/authenticate
为了调试curl命令输出,在运行 jq
之前