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を扱っているとかなり通知がうるさくなります。

Mail Screenshot

そのため、この通知メールをまとめたメールを作るgmail-npm-publish-digestというGoogle Apps Script(GAS)を書きました。

gmail-npm-publish-digest

gmail-npm-publish-digestは、指定時間以内に自分のGmailにきた”Successfully published”メールをまとめたダイジェストメールを作成して、自分自身に送信します。

gmail-npm-publish-digestのメール

npmからくるfrom:[email protected] Successfully publishedなメールは自動で既読するフィルターを作成しておけば、 gmail-npm-publish-digestのダイジェストだけを受け取れます。

使い方

gmail-npm-publish-digestclaspを使って書いています。

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から通知メールを検索して、ダイジェストメールを送信します。

  1. open script editor: clasp open
  2. Run main function on script editor

Set Trigger

デフォルトでは、自動的にダイジェストメールは送ってくれないので、Triggerを設定します。 createTimeTrigger 関数を実行するとトリガーを設定できます。 デフォルトは6時間ごとになっています。

  1. open script editor: clasp open
  2. Run createTimeTrigger function on script editor

細かい設定とかはリポジトリ見てください。 設定の外部ファイル化とかはよく割ってないので、Pull Requestをまっています。