tl;dr;
wget --post-data="key1=value1&key2=value2" https://example.com/webhook -O /dev/null
経緯
- CIの実行中に通知用のwebhookをPOSTして通知をやりたかったんだけど、CIで使ってるDockerイメージに
curl
が入っていなくて困った - 素直に
curl
入れればよかったんだけど、パッケージのインストールはスロービルドの原因になるのでなるべくインストールしたくなかった curl
はなかったけどwget
は入ってたのでwget
でPOSTしてみた
解説
冒頭のコマンドが全てなのですが、特筆するとしたら最後の -O /dev/null
辺りです。
wgetするとPOSTであってもカレントディレクトリに webhook
みたいなファイルを書き出すのですが、その状態でもう一度同じURLに対して wget
すると(
つまり1回のCIで同じwebhookを2回叩くと *1 )
wget: can't open 'webhook': File exists
のようなエラーになるので、2回目エラーにならないように出力を /dev/null
に捨てています。
*1:自分の場合terraform applyの前後で通知をしようとしたらapply後の通知でエラーになった