2019年1月12日土曜日

Expoでアプリをpublishしたときに、プルリクのコメントに書いてくれたり、slackに通知してくれるようなnpmパッケージを作った的なお話

  • このエントリーをはてなブックマークに追加

Expoで作ってるアプリのリポジトリにPRを出したときに、その変更をExpoクライアントで確認するためのQRをPRのコメントに出すための方法的なお話
これの続編というかパッケージにしたよ的な。
circleciのconfig.ymlにスクリプトを走らせるとかちょっと面倒なことがあったりしたんだけど、expo publish時に自動的にやってくれるからより便利になりました的なnpmパッケージ。

ということで今日はこれがどういうnpmパッケージなのか的な解説をば。

■作ったもの

作ったものはこちらから(expo-qr-notify)

前回書いたけどapprっていうものと、react-navigationのプルリクでのQR発行からインスパイアされたんだけど、さらにexpoが公式にリポジトリとして出してるexpo-postpublish-slack-notifyっていうのにインスパイアされた的なみたいな。
このリポジトリ内でapp.jsonのhookというところにpostpublishという項目があるからそこをうまく使えばできるんだぁとわかったっていう。

これにPRを投げようかなと考えたんだけど、リポジトリ名がslackってなってるし…みたいな感じだからとりあえず自分のリポジトリでOSS的に公開して、expoの本家リポジトリでissueを立てるなり、forumでお知らせするなりして、もしよかったらそっちのリポジトリに入れない?みたいなアプローチするのもありかなぁと。

で、そのまんま4月にポーランドで行われるApp.js confにも出してよみたいな露骨なアピールをしてみようかなと思ってたり思ってなかったり。

とまぁそんな経緯で開発しましたよ的な感じなんだけど、肝心の解説的なところというか使い方的なところをば。


■使い方

"hooks": {
  "postPublish": [
    {
      "file": "expo-qr-notify",
      "config": {
        "slack_webhook": "enter_your_slack_incoming_webhook_url",
        "slack_channel": "#general",
        "git_service_token": "enter_your_github_token"
      }
    }
  ]
}

こんな感じでapp.jsonに書いてあげるだけ。
slack_webhookはslackのincoming webhook。
slack_channelは通知したいslackのチャンネル。
git_service_tokenはgithubのアカウントトークン。

circleciで環境変数として埋め込みたい場合は、それぞれを大文字にしてキーを作ってあげればいいだけ。
これでプルリクが送られたらコメントにQR送るし、slackにQR貼るしみたいな。
ついでにプルリクのタイトルも記入してslackに連絡してくれますよみたいな。

ここに書いてあるexampleを見てもらえればなんとなくわかるんじゃないかなと。

ってな感じで我ながらなかなか便利なツールができたなぁと。
チーム共有するときとかかなり便利だよね。
ちなみにhooksは今の所postpublishしか用意されていないみたいなんだけど、他にもあったらもっと便利になりそうだよなぁ。
ってな感じでこれとか他のものをもとにApp.js confに売り込んで出させてほしいなぁ的なみたいな。

0 件のコメント:

コメントを投稿

Adsense