null の判定 [GitHub Actions]


課題

on.pull_request_review においてシングルコメント (Add single comment) とレビューコメント (Review changes > Comment, 本文は空) は github.event.review.bodynull が入るか "" が入るかの違いしかありません。
しかし GitHub Actions は緩やかな比較しか行えないので if: github.event.review.body == null と書いても上手く判定できません。
null でも "" でも true 扱いになってしまいます。

ワークアラウンド

JavaScript の === で判定します。
文字列で返ってくることに注意してください。

      - uses: actions/github-script@v6
        id: is_null
        with:
          script: return context.payload.review.body === null
      - run: echo "Single comment (review.body is null)"
        if: steps.is_null.outputs.result == 'true'
      - run: echo "Review comment (review.body is not null)"
        if: steps.is_null.outputs.result != 'true'