Issue作成業をGASで自動化する毎週のミーティング準備が面倒うちのチームでは毎週水曜日に定例ミーティングがありまして。定例ミーティングが行われる度にGitHubでIssueを一つ作成し、そこに各チームメンバーがトピックや進捗を書き込んでおくスタイルでやってます。眼鏡の教師みたいなのが私です(イメージです)上の図のように、ミーティング前日にIssueを作成しチームメンバーに共有(図の1.2部分)というのを、毎回温かみのある手作業で行ってたんですね。手を付ければ5分もかからないのに、面倒でつい後回しにしてしまう...後回しにしてしまうとチームメンバーがIssueを更新する時間が減ってしまうので、「よし自動化だ!」という流れに。作成したIssueにコメントSlackに通知という流れで実装していくことにしたので、やっていきましょう。ちなみに作成するIssueの雛形となる情報(Issueのタイトルや投稿する定型コメント)は、内容を定義したスプレッドシートから取得してます。GAS内に直接記述してもよかったのだけど、実際に作成するIssueの内容には画像や表を使ってたりするので、管理しやすさを優先してスプレッドシートで管理することにしました(スプレッドシートのサンプルは後ほど紹介)。自動化に成功すると、このような通知が指定したSlackのチャンネルに届きます。GASを書く...前に準備しておくものがあるので、まずはそこからやっていきましょう。事前準備(スプレッドシート、GitHub、Slack)【Googleスプレッドシート】Issueの雛形となるシートの準備Issueに投稿する内容やTokenの設定はスプレッドシートで管理しますIssueに投稿する内容などはスプレッドシートに設定しています。スプレッドシートには3つのシートがあり、以下のような構成です。以下にサンプルのスプレッドシートを用意したので、これをコピーして、色付きのセル部分を書き換えて使ってください。>>【GitHub】tokenの設定GiHubのIssueを作るために必要なtokenを発行しておきます。チェックを入れました。発行したtokenやissueを作るリポジトリの情報などを、先程のスプレッドシートの[conf]シートに書き込んでおきます。webhooksを設定しときましょう。URLを取得したらメモっておきます。これで下準備は完了です。いざGASスクリプトエディタを開き、以下のコードをコピペして、一部を書き換えます。webhooksのURLを設定するところです。Enterpriseを利用している場合は、githubのAPIのURLを適宜書き換えてください。試しに実行してみるここまでやったら試しにIssueが作成できるか確認してみましょう。myFunctionを実行してみます。うまくいきましたか?うまくいかない場合はスクリプトにLogger.log()を仕込んで、どこで躓いているか調べてみてください。毎回スクリプトを手動で実行してては本末面倒なので、定期実行されるようにします。今回はGASのトリガーを使って、ミーティング前日の11〜12時に実行するようにセットしてみました。これで後はIssueが作られてSlackの通知を待つのみです、やったねーGASブームが到来GAS、何が良いってブラウザですぐに書けるから開発環境を用意したりメンテナンスをしなくていいのが楽で良いですね。おかげで書いたスクリプトを非エンジニアにも共有しやすい。そんなお手軽さが気に入って、マイブーム到来中。コメントデータの処理方法の詳細はこちらをご覧ください。