【GitHub Actions、Bash】「curl: (3) URL using bad/illegal format or missing URL」「curl: (3) nested brace in URL」といったエラーメッセージが出た時に試したこと

Code

はじまり

リサちゃん
リサちゃん

うわあ、どこが悪いんだろおおう

135ml
135ml

今回はBashか?

リサちゃん
リサちゃん

文法が違うことは分かるんだけど・・・

135ml
135ml

どこだっどこだ。

起きた事象

GitHub Actionsを使って、別のAPIに対してcurlを試そうとした時の事です

# ...

    - name: Record log
      run: |
        curl '${{ env.API_ENDPOINT }}?scriptname=${{ env.MY_SCRIPT_NAME }}&function-name=${{ env.THIS_FUNCTION_NAME }}' \
        -X POST \
        -H "Content-Type: application/json" \
        -d '{"path": "/log", "method": "POST", "client_info": {"id": "${{ env.CLIENT_ID }}", "secret": "${{ env.CLIENT_SECRET }}"}}'

# ...

エラー文

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: POST-H
curl: (3) URL using bad/illegal format or missing URL
curl: (3) nested brace in URL position 51:
{"path": "/log", "method": "POST", "client_info": {"id": "***", "secret": "***"}}
                                                  ^
Error: Process completed with exit code 3.

何が原因だあ?

原因は・・・

改行の前に半角スペースを入れてないからでした🐽

これが正解。

# ...

    - name: Record log
      run: |
        curl '${{ env.API_ENDPOINT }}?scriptname=${{ env.MY_SCRIPT_NAME }}&function-name=${{ env.THIS_FUNCTION_NAME }}' \
        -X POST \
        -H "Content-Type: application/json" \
        -d '{"path": "/log", "method": "POST", "client_info": {"id": "${{ env.CLIENT_ID }}", "secret": "${{ env.CLIENT_SECRET }}"}}'

# ...

なるほど、-Hヘッダーの部分を読み取れないというのはそういうことでしたか。

curlでJSONを書くと煩雑で混乱しがちになります・・・

おしまい

リサちゃん
リサちゃん

ああら、そんなことかあ。

135ml
135ml

つい、データ部に目が行っちゃうよな

以上になります!

コメント

タイトルとURLをコピーしました