對于一個專案,我們想呼叫一個 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 命令(從 $() 中洗掉,但保留單引號以包裹雙引號)定期作業并回傳帶有令牌的字串。唯一的問題是把結果封裝在一個變數中。可以做什么?
謝謝你。
uj5u.com熱心網友回復:
試試這個
- 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)
PS我建議從運行開始
- |
curl -H "Content-Type: application/json" -d "{\"username\":\"$USER\", \"password\":\"$PWD\"}" https://example.org/api2/authenticate
為了除錯curl命令輸出,在運行jq之前
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/428539.html
