🥟

bun.lockb の変更差分を Pull Request 上で表示する「Bun Diff Action」の紹介

2024/08/19に公開

bun.lockb の変更差分を Pull Request 上で表示することができる Bun Diff Action を作りました。

https://github.com/koki-develop/bun-diff-action


こういうの

https://github.com/koki-develop/bun-diff-action-example/pull/2/files#diff-911db038a89e27a7702a07805a21da08e4b2b4f7772913eefceaf824c3c516b9

この記事では Bun Diff Action とその使い方についてご紹介します。

bun.lockb について

Bun は Oven 社が開発している JavaScript のオールインワンランタイムです。

https://bun.sh

Bun をパッケージマネージャとして使用する場合、 bun install コマンドを実行したときに bun.lockb というロックファイルが作成されます。
このロックファイルにはインストールされたパッケージのバージョンやその依存関係、その他様々なメタデータが含まれます。

https://bun.sh/docs/install/lockfile

そして、この bun.lockbバイナリ形式のファイルです。そのため、もし変更があっても通常は GitHub の Pull Request 上で差分を確認することはできません。


Binary file not shown. と表示される

Bun Diff Action について

https://github.com/koki-develop/bun-diff-action

Bun Diff Action は、 Pull Request で bun.lockb に変更がある場合、その内容をコメントします。
コメントは bun.lockb に対してファイルレベルで作成されるため、 Files changed タブで他ファイルの差分と同一画面で確認することができます


Files changed タブで差分が見れる

もちろん、その後さらに同一 Pull Request で bun.lockb に対して変更があった場合も、それに応じてコメントの内容が更新されます。

実際の Pull Request の例はこちらから確認できます。

https://github.com/koki-develop/bun-diff-action-example/pull/2/files#diff-911db038a89e27a7702a07805a21da08e4b2b4f7772913eefceaf824c3c516b9

Bun Diff Action の使い方

Bun Diff Action は GitHub Action なので、以下のようなワークフローファイルを作成するだけで使用できます。

.github/workflows/example.yml
on:
  pull_request:

jobs:
  bun-diff:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: koki-develop/bun-diff-action@v1

おまけ

ちなみに Bun Diff Action は Pull Request 以外のイベントでも実行することができます。

.github/workflows/example.yml
 on:
   pull_request:
+  push:

 jobs:
   bun-diff:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v4
       - uses: koki-develop/bun-diff-action@v1

その場合はコミットに対してコメントが追加されます。


コミットコメント

https://github.com/koki-develop/bun-diff-action-example/commit/a52a2cd23273770c3c2a158af3a809060a9c442a#commitcomment-145452835

まとめ

さくっと使えて便利です。

参考

https://zenn.dev/da1chi/articles/1d39e61b1b28f4
https://bun.sh/guides/install/yarnlock

Discussion