zapier で Gmail から GitHub Issue を自動起票する設定手順

2019.08.02

子どもからもらった風邪がなかなか治らず、年齢を重ねたことを噛み締めているかめです。

私のチームでは、 GitHub の Issue と ZenHub を活用してタスク管理をしています。

Issue 起票対象の中には、お客様からの問い合わせメールなどもあったので、 zapier を活用して、メールでの問い合わせについては、 Issue を自動起票するような設定を試してみました。

今回は、その設定手順をご紹介します。

zapier とは

zapier

画面でぽちぽち設定するだけで、 Gmail や Githubなどのサービスについて、なんらかの操作を簡単に自動化できるツールです。

参考 : 自動化設定できるサービスの一例

弊社ブログでも、いくつか zapier を活用した自動化処理などが紹介されています。

https://dev.classmethod.jp/?s=zapier

設定をするとできること

zapier が定期的に Gmail に Issue 起票対象のメールがないかを確認し、起票対象があった場合は、 Issue を自動起票してくれます。

設定手順

用意するもの

  • Google アカウント
    • zapier アカウントは、 Google アカウントと連携可
  • GitHub アカウント
  • Issue を起票する GitHub リポジトリ

設定1 : Gmail のフィルタ設定

  1. Gmail の [設定] - [フィルタとブロック中のアドレス] - [新しいフィルタを作成] から、 Issue 起票対象のメールにラベルがつくように設定します

↑の例では、メールの件名に「 Issue 起票」という単語を含む場合に「 Issue 起票」というラベルをつけるように設定しています。

設定2 : zapier の設定

  1. zapier の Dashboard から以下の設定をし、 [ Use zap ] をクリックします
    設定項目 設定値
    Connect this app... Gmail
    with this one! GitHub
    When this happens... New Email
    then do this! Create Issue

  2. 表示された画面で Google アカウントや GitHub アカウントの連携を行い、 Issue 起票先のリポジトリを設定の上、 [Turn on Zap] ボタンをクリックします

  3. 設定後に遷移した画面で [View your Zaps] ボタンをクリックします

  4. My Zaps 画面へ移行するので、 Home に表示されている作成した Zap をクリックします

  5. 左ペインで [ New Email ] - [ Edit Options ] をクリックします

  6. プルダウンから Issue 起票対象のメールを判別するラベルを設定します

  7. [ Continue ] ボタンをクリックします

  8. 左ペインで [ Create Issue ] - [ Edit Template ] をクリックし、必要に応じて設定を行います

    • このブログでは、デフォルトの設定のままとしています
    • Assignee は 1 名のみ設定可能なようです

  9. 画面左上の [ My Zaps ] をクリックします

  10. Home から OFF になっている部分をクリックし、 ON に変更します

    • デフォルトの Zap 名だとどれが何をするものなのかわかりにくくなるので、適宜、名称を変更することをオススメします
    • 名称変更は [ ON/OFF ] ボタン横のプルダウンから設定できます

動作確認

  1. Issue 起票対象のラベルがつくテストメールを対象の Gmail に送信します

    • zapier で既存メールの内容からテストを行うこともできますが、今回はメール送信から確認する手順とします
  2. 15 分ほど待ちます
    • zapier のプランにもよりますが、処理は 5 〜 15 分間隔くらいで実行されているようです
  3. Issue 起票対象のリポジトリを参照します
    • Issue が起票されていれば設定完了です

おまけ

メールがくれば Issue が起票できるということで、なんらかのメール連携ができるシステムの内容を基に Issue を起票したい場合などにも活用できそうですね。
また、 Issue 起票を GitHub アプリなどで Slack に通知するといったこともできるかと思います。