mongolyy / reviewdog-action-biome

MIT License
19 stars 2 forks source link

Fail to parse outputs for biome code block #20

Closed RShirohara closed 5 months ago

RShirohara commented 5 months ago

Summary

この Action を私のリポジトリ (RShirohara/unified-webnovel#227) に導入してみたところ、GitHub Checks レポーターの出力が壊れています。

GitHub Checks レポーターの出力 を確認したところ、Biome が出力するコードブロックの最終行が空行ではない場合に、Markdown のコードブロック記号 (```) が生成されていないようです。
リポジトリ内へスクリプトを移植し sed 正規表現を以下のように書き換えてみたところ、正常に Markdown コードブロックが出力されるようになりました。

    "$(npm root)"/.bin/biome check --apply ${INPUT_BIOME_FLAGS} 2>&1 1>/dev/null |
      sed 's/ *$//' |
-     sed -z 's/\n\n\([^\n]*│[^\n]*\)/\n\n  ```\n\1/g' |
-     sed -z 's/│\n\n/│\n  ```\n/g' |
+     sed -z 's/\n\n\([^\n]*│\)/\n\n  ```\n\1/g' |
+     sed -z 's/\(│[^\n]*\)\n\n/\1\n  ```\n\n/g' |
      reviewdog \

Expected Behavior

Biome が出力するコードブロックの最終行が空行ではない場合、Markdown コードブロックが正しく生成されない。

image

Actual Behavior

Biome が出力するコードブロックの最終行が空行ではない場合でも、Markdown コードブロックとして表示される。

image

mongolyy commented 5 months ago

@RShirohara

Issueの作成、並びにsedコマンドの修正提案までご丁寧にありがとうございます。

21 で修正し、v1.0.1としてgithub actionsをリリースしました。

v1やv1.0も同時に更新しています。 ご確認ください。 何かあれば、このissueにコメントいただき、issueを再オープンしてください。

引き続きよろしくお願いします。

RShirohara commented 5 months ago

@mongolyy

早速の対応ありがとうございます。 v1.0.1 を適用して再実行したところ、上記の問題が修正されていることは確認できました。

image

ただ、上記とは異なる出力の場合に同じ問題が発生していることも確認しました。
レポーターの出力を確認したところ、Biome コマンドブロックの直後に ~ more lines truncated が出力されているようです。

image

Biome 側の実装 crates/biome_diagnostics/src/display/diff.rs#L597 を確認したところ、差分が 150 行を超える場合に上記のメッセージが出力されるケースが存在するようです。 (Biome は今のところ実行するたびに出力がランダムに変わるケースがあるようで、提案した正規表現を作成したタイミングでは上記の挙動を確認できていませんでした……)

RShirohara commented 5 months ago

また、PR で Fixed としてマージされた issue は作成者から再オープンできないようでしたので、お手数でなければ reopen 等をお願いします。

image

mongolyy commented 5 months ago

@RShirohara

https://github.com/mongolyy/reviewdog-action-biome/pull/22 にて N more lines truncated のパターンの再現を確認しました そのうえで、│を含むブロックをコードブロックとして扱うようにawkコマンドで書き換えました (sedでも可能かもしれませんが、awkで書いた方がシンプルに書けそうでしたので)

v1.0.3としてリリースしているので、お手数をおかけしますが動作確認していただけますでしょうか?

また何かあればコメントいただくか、新しいIssueを作成していただけると幸いです

引き続いよろしくお願いします!

RShirohara commented 5 months ago

@mongolyy 対応いただきありがとうございます!

N more lines truncated のパターンで正常にコードブロックが生成されていることを確認できました。

image