はじめに
みなさん、Dependabot は活用していますか?
脆弱なパッケージをこまめに検知してくれるので、とっても便利ですよね。
ただ、Dependabotが作ってくれるPRですが、さまざまな理由で放置したりする方も(私を筆頭に)そこそこいらっしゃるのではないでしょうか。
さて、話がコペルニクス的に変わりますが、みなさん FRUITS ZIPPER (ふるっぱー) というグループはご存じでしょうか。
私は大好きで、特に「NEW KAWAII」という曲を延々リピートしています。
歌詞がとにかくかわいくてですね。なかでもサビ前にある
さ、アップデートしよ?
というフレーズが耳から離れないです。
「あー、アップデートしねぇとなあ」っていう気持ちにさせてくれます。
ん?アップデート?
Dependabot が「さ、アップデートしよ?」って言ってくれたら、脆弱なパッケージをアップデートするべく放置PRが減るのでは?
...
「作るか」
私は会社の食堂で一人、硬い決意を固めました。
作るもの
Dependabot が開く PR に YouTubeリンクをランダムでコメントしてくれる GitHub Actions です。
汎用性を考え、とりあえずふるっぱーに限らない形としました。
また、同じコメントばっかりだと飽きてしまうかもしれないため、ランダムでコメントする動画を選べるようにしました。
開発
YouTube サムネイルの表示方法
GitHub MarkDownではYouTubeの埋め込みができないため、動画リンクをクリックで開けるように、サムネ入りの Markdown を使うことにしました。
以下のような記述です。
[![](https://img.youtube.com/vi/jNQXAC9IVRw/0.jpg)](https://www.youtube.com/watch?v=jNQXAC9IVRw)
<--------------サムネイルURL-------------------> | <--------実際のYouTube動画リンク---------->
これならサムネを一枚絵として表示しつつ、クリックすると動画に飛べます。
iframe埋め込みができない環境下では、意外と重宝します。
↓みたいな感じになります。
GitHub Action の作成
テンプレートとして、公式が提供している actions/typescript-action をForkしました。
あとは、YouTube の URL リストからランダムに一つ選んで、上記の Markdown 形式でコメントするコードを書くだけですね。
特に困ったことはないのですが、配列で引数を渡すときは
- uses: myaction
with:
multiline-param: |
line1
line2
line3
のように渡して
const myMultilineInput = core.getMultilineInput('multiline-param', { required: true });
のように受け取ります。
- uses: myaction
with:
list-param:
- item1
- item2
- item3
こんな感じで渡せたら楽そうなんですけどね…。
完成したアクション
完成したのがこちらです◎
使い方
使い方はとっても簡単で、以下のようなワークフローファイルを .github/workflows/
配下に配置するだけです。
name: Add YouTube Comment
on:
pull_request:
types: [opened]
permissions:
pull-requests: write
jobs:
comment:
runs-on: ubuntu-latest
if: ${{ github.actor == 'dependabot[bot]' }}
steps:
- uses: iisyos/youtube-linker-action@main
with:
youtube_urls: |
https://www.youtube.com/shorts/ThyyFk4tGa0
https://www.youtube.com/shorts/T6RFDdT4viQ
https://www.youtube.com/shorts/WUfHauv9cgo
https://www.youtube.com/shorts/qJMmVLXw1ak
https://www.youtube.com/shorts/Yc4hWFuiOt4
https://www.youtube.com/shorts/r7aMeLA4JDg
https://www.youtube.com/shorts/ifa_BSKB_Kg
github_token: ${{ secrets.GITHUB_TOKEN }}
-
pull_request
イベントでopened
のときに実行する -
github.actor == 'dependabot[bot]'
の条件が満たされたらコメントを投稿する
あとは youtube_urls に好きなYouTubeリンクを複数行で指定するだけです。
今回は メンバーがNEW KAWAII のサビ前で踊っているショートのリストを入れていますが、もちろん好きな動画を入れていただいて問題ありません。
すると、DependabotがPRを立ててくれたタイミングで、ランダムに1つがコメントされるようになります。
実際に動かしてみる
手動でdependabotを起動し動きを確認します。
おお!ノエルちゃーん!
あまねきー!
ま、ま、マナフィーー!(;ω;)
まとめ
ほんとくだらないGitHub Actionsですが、こういう楽しみって意外と大切だと思うんですよね。。
え?そうでもない?
いや、でもでも...
- 好きなアイドルやアーティストの動画
- ミーム動画
- 自分を奮い立たせてくれるようなモチベーション動画
など、いろんな使い方ができるかと思います。
ぜひ一度お試しください!
それでは最後に、もう一度だけ。
さ、アップデートしよ?