発端
「開始時と終了時にChatにメッセージ投げてくれるのはいんだけど、同じ文字数で同じ色だとわかりにくいんだよね。」
と言われてしまった。俺もそう思ってた。
どうすればいい?
普通にChatにメッセージ投げる場合は
{
    "text":"処理を開始しました"
}
と簡単なjsonをWebhookのurlにcurlでpostしれやればOK。文字を太くしたり、斜体にするのもおなじみのMarkdown表記で大丈夫だが、色を付けるとなると途端に面倒になる。
文字に色をつけてChatに投稿するにはCard V2をpostする必要がある。
最低限、一部の文字に色を付けるには以下のようなjsonにすればよい。
{
  "cardsV2": [
    {
      "card": {
        "sections": [
          {
            "widgets": [
              {
                "decoratedText": {
                  "text": "処理を<font color=\"#ff0000\">開始</font>しました"
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
一気に面倒になった。
[]や{}の具合が変更するときに面倒なら、こんな具合にjqを使ってみるのもいいかも。
jq -c -n '.cardsV2 = [.card.sections = [.widgets = [.decoratedText.text = "処理を<font color=\"#ff0000\">開始</font>しました"]]]'