6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FRUITS ZIPPERの力を借りて、Dependabotに「さ、アップデートしよ?」って言わせてみた

Posted at

はじめに

みなさん、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 Marketplace

使い方

使い方はとっても簡単で、以下のようなワークフローファイルを .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ですが、こういう楽しみって意外と大切だと思うんですよね。。
え?そうでもない?
いや、でもでも...

  • 好きなアイドルやアーティストの動画
  • ミーム動画
  • 自分を奮い立たせてくれるようなモチベーション動画

など、いろんな使い方ができるかと思います。
ぜひ一度お試しください!

それでは最後に、もう一度だけ。

さ、アップデートしよ?

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?