スクリーンショット_2019-04-25_12

git commitするごとにGoogleカレンダーに自動で記録するようにした

こんにちは、@yutaro_elkです。プログラミングの勉強のためにとあるサービスを作っています。

個人開発の作業録をカレンダーに記録したい!!

今まで何をやったかを記録していなかったんですが、可視化すればモチベーション的にもいいんじゃないかなと。

普段ポモドーロ・テクニックを使って作業していて、そのためにFocus To Doというサービスを利用しています。UIもキレイでともて便利で、終わった作業も履歴として見れるようになってはいるんですが、いちいちその画面まで見に行かないといけない。せっかくならGoogleカレンダーに自分の足跡を残しておきたい…!

でも自分でいちいちカレンダーに書くのは面倒ということで、今回はGitのcommitをしたタイミングで自動でGoogleカレンダーに記録される仕組みを作りました。commitだと進捗としてもわかりやすいですしねー

使ったもの

・gcal-cli 
コマンドラインでGoogleカレンダーのイベントの管理ができる

・Git hook
gitコマンドのそれぞれのタイミングでスクリプトを起動できる

の2つを使いました。

gcal-cli

こちらを使わせていただきました。CLIでGoogle カレンダーのイベントを管理できます。JavaScriptで実装されていてnpmで簡単にインストールできたのが決め手。他にもPythonで作られたものもあったのですが、Pythonを新しくセットアップするのが面倒くさかった。

Git hook

gitのコマンドをフックにスクリプトを実行できる仕組みです。

こちらを参考にさせていただきました。特に「git hook はじめの一歩」では記事冒頭で一気に作業の流れが見れるのでとても助かりました。

1.gcal-cliのセットアップ

GoogleのOAuth2認証を設定します。Qiitaの記事でわかりやすくまとめ下さっているんで基本的にはそちらの通りなんですが、プロジェクトクレデンシャルを取得でプロジェクトの新規作成する方法が分からなかったのでそこだけ。

Developer Consoleのリンク先、画面左上のリンクから(画像の「gcal」の部分)

こちらが表示されるので、右上の「新しいプロジェクト」から作ります。

ちなみに

デフォルトのカレンダーを、記録のためのカレンダーに変更しようと設定の上書きをしようとしたのですが、いまいち反映しなかったので直接conf.jsを編集しました。

2.git hookにスクリプトを書く

git hookにはスクリプトを起動できるタイミングが何種類もあります。コミットと同時、前、後、チェックアウトしたらなどですね。

今回はコミットをした後にgcal-cliを実行したいので、post-commitにスクリプトを書きます。

#!/bin/bash

gcal insert 'Commit was 5minutes ago to now'
exit 0

3行目がgcal-cliの部分ですね。「Commit」が記録するイベントのタイトルで、毎回これで記録されます。今後commitメッセージを動的に挿入できるように改良したいところ。

時間指定には自然言語を使ってます。上の場合「『Commit』を5分前から現在までに追加」といった感じ。書いた英文の解釈にはSherlockが使用されているので、指定した英文がどのように処理されるかは下記のデモで色々試せます。

3.コミットすると

これで完成です。

コミットしてみるとcommitした5分前から現在までのイベントがカレンダーに記録されます。お手軽!

(23時に作業してる図)

むっちゃ便利

今までカレンダーには記録していなかったので、無駄になる過ごしてしまった感が強かったのですが、commitが記録されることで「俺ちゃんとやってる…!」ってのが可視化されてとてもいいです。そしてそれが自動ってのがなんともエンジニア的。

git hookは他にも便利な使い方があるようなのでもっと活用していきたいですねー。

今後コミットメッセージが記録されるように改良したいです。

この記事が気に入ったらサポートをしてみませんか?