npmのSuccessfully publishedのメール通知をまとめるGoogle Apps Scriptを書いた
npmにパッケージをpublishすると、次のような”Successfully published”の通知メールが来ます。
Subject: Successfully published [email protected]
Hi azu!
A new version of the package honkit (3.4.0) was published at 2020-06-27T08:30:56.245Z from
xxx.xxx.xx.xxx. The shasum of this package was XXXXXXXXXX.
If you have questions or security concerns, you can reply to this message or
email [email protected].
npm loves you.
一つのパッケージなら問題ないのですが、パッケージをまとめてpublishするようなmonorepoを扱っているとかなり通知がうるさくなります。
npmのメール通知 monorepo的な一括publishをまとめて欲しい pic.twitter.com/hCHomAV0oV
— azu (@azu_re) January 3, 2019
そのため、この通知メールをまとめたメールを作るgmail-npm-publish-digestというGoogle Apps Script(GAS)を書きました。
gmail-npm-publish-digest
gmail-npm-publish-digestは、指定時間以内に自分のGmailにきた”Successfully published”メールをまとめたダイジェストメールを作成して、自分自身に送信します。
npmからくるfrom:[email protected] Successfully published
なメールは自動で既読するフィルターを作成しておけば、
gmail-npm-publish-digestのダイジェストだけを受け取れます。
使い方
gmail-npm-publish-digestはclaspを使って書いています。
claspを使ったGASの配布方法がいまいちわかってないですが、次のように自分でGASをデプロイすれば使えると思います。
claspをインストールして、ログイン。
npm install --global clasp
clasp login
Google App Scriptをデプロイして、エディタ画面を開く
git clone https://github.com/azu/gmail-npm-publish-digest
cd gmail-npm-publish-digest
# create .clasp.json
clasp create --type standalone --title "gmail-npm-publish-digest"
# Install Dependencies
yarn install
# Update script
clasp push
# Open script editor
clasp open
デプロイすると2つの関数が利用できます。(実際には3つありますが)
Send Digest mail
実際にGmailから通知メールを検索して、ダイジェストメールを送信します。
- open script editor:
clasp open
- Run
main
function on script editor
Set Trigger
デフォルトでは、自動的にダイジェストメールは送ってくれないので、Triggerを設定します。
createTimeTrigger
関数を実行するとトリガーを設定できます。
デフォルトは6時間ごとになっています。
- open script editor:
clasp open
- Run
createTimeTrigger
function on script editor
細かい設定とかはリポジトリ見てください。 設定の外部ファイル化とかはよく割ってないので、Pull Requestをまっています。
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。