参考: https://stackoverflow.com/questions/48470049/build-a-json-string-with-bash-variables
エスケープも勝手にやってもらえるので、こういうことができる。
FOO=$( \
gh pr list \
--repo cli/cli \
--limit 10 \
--json 'title,url,mergeable' \
--template '{{range .}}{{.mergeable}}{{"\t"}}{{.url}}{{"\t"}}{{.title}}{{"\n"}}{{end}}' \
)
curl $SLACK_WORKFLOW_WEBHOOK -d $(jq -n --arg prs "$FOO" '{items: $prs}')
便利〜と、思いはするもの、複雑なことを全部シェルスクリプトで頑張ろうとするとめっちゃ大変なので、素直にGoとかでロジックを書いちゃってos/execを使ったらいいんじゃないかな、という気もする。入出力も扱えるし。
実は現代では各種AIパワーが高まっているから、実はシェルスクリプトもそんなに大変ではないのかな…?