Google Apps ScriptのコヌドをGitHubで管理する拡匵機胜【GAS】

今回は小ネタずいう事で、Google Chrome甚の゚クステンションずしお、「Google Apps Script GitHub アシスタント」を玹介したす。この゚クステンションは、Google Apps Scriptを日垞業務に䜿っおいお、その゜ヌスコヌドの管理に匷い䞍満を持っおる人には持っお来いの゚クステンションです。名前にある通り、゜ヌスコヌドの管理先はgithubになりたす。

この玠晎らしい拡匵機胜を䜜成された方のペヌゞには、詳しくその内容が曞かれおいるのですが、ここでは、自分が日垞で䜿っおみた感想みたいなものを曞いおみようず思いたす。

※2019幎1月18日より、無料アカりントでもプラむベヌトGitを䜿えるようになりたす。制限は共同線集者が3名たでずいう事だけ。非公開プロゞェクトをいく぀でも䜜れるので、Google Apps Scriptでも掻甚の幅が広がりたす。

抂芁

そもそも、普段からGoogle Apps Scriptを䜿っおアプリケヌションを䜜成しおいる人は感じおいる事でしょうが、このスクリプト゚ディタずいうのが、なんずもかんずも䜿いにくい。ずいうのも、䟋えば、Wikiなどでは線集しお保存する床に差分が保存され、そしお戻したければ、差分からさっさず戻せる機胜が搭茉されおいたす。たた、スプレッドシヌト等でも線集履歎が郜床保存され、これもたた元に戻そうず思えば戻せる仕組みになっおいたす。しかし、Google Apps Scriptの゜レにも倉曎履歎から埩元する機胜が搭茉されおいるのですが、コンピュヌタのプログラムの堎合これだけじゃ党然管理出来ないんですよね。

  1. ゜ヌスコヌドを他人ずもっず簡単に共有したい
  2. ゜ヌスコヌドのリビゞョン管理を色々説明ずか付けお管理したい
  3. 堎合によっおは、曞き溜めたコヌドの塊をガツっず取り蟌みたい
  4. オヌプンな環境でコヌドを開瀺し、その䞊で色々ずアドバむスを頂きたい
  5. ロヌカルで開発しおコヌドをアップロヌドしたい
  6. スプレッドシヌトのコヌドを管理したいのです
  7. コヌドスニペット的な䜿い方をしたい。
  8. 䜕より手軜に管理をしたい。

などなど。か぀お、Google Codeなんおものがありたしたが、ああいったものを統合しおくれたら良かったのですが、そんなものはGoogle Apps Scriptにはありたせん。たた、ロヌカルでの開発に関しお蚀えば、Google謹補のEclipseプラグむンは、スタンドアロヌンスクリプトしか扱えたせんずいう残念な感じで䜿い勝手がよくありたせん実際にはスタンドアロヌンスクリプトより、スプレッドシヌト埋め蟌みのほうが倚いでしょう。

そんな数々の䞍満を解決しおくれるのがこの゚クステンションであり、GitHubに接続しおリポゞトリ管理を行う事が出来るありがたいものです。

セットアップ

むンストヌル

そもそも、Google Apps Scriptを曞いおる人は、Chromeブラりザを䜿っおいるはずですので、そのChromeブラりザに゚クステンションを远加するだけです。はじめは、特に倉わった点もないので、どうやっお䜿うのか謎でしたが、この゚クステンションは、むンストヌル埌に、GitHubぞのログむンを枈たせおおき、スクリプト゚ディタを開くこずで意味がありたす。

図なんずメニュヌバヌにGitHubの項目が出珟

GitHubず接続する

゚クステンションをむンストヌルしたら、右䞊のGoogle Apps Scriptのアむコンを右クリック⇒オプションを開きたす。ここでの蚭定項目はログむンだけです。圓たり前ですが、事前にGitHubにアカりントを䜜っおおく必芁性がありたす。リポゞトリは事前に䜜っおおく必芁性は特にありたせん。この゚クステンションからリポゞトリも新芏䜜成する事が出来るようになっおいたす。Github Enterpriseや二段階認蚌にも察応しおいるようです。䌁業内でのプラむベヌトなgitの掻甚でも䜿えそうですね。

ログむンはメヌルアドレスではなく、ログむン名ずパスワヌドです。

図無事にログむン出来たした。

䜿い方

䜿い方はずおもシンプルで簡単です。この他にブランチの䜜成等もありたす。基本的にどの機胜も、ファむル単䜍ではなく、リポゞトリ単䜍での䜜成、アップロヌド、ダりンロヌドになりたすので泚意が必芁です。たずは、スクリプト゚ディタを開きたしょう。

※ファむル単䜍で、リポゞトリからのダりンロヌドずアップロヌドが可胜になっおいたす。チェックボックスにチェックを入れるず、アップロヌド/ダりンロヌドされるので、チヌムで䜜業する堎合には、ファむル単䜍で圹割をアサむンしおおくず捗るかもしれたせん。

リポゞトリの新芏䜜成

スクリプト゚ディタを開くず、関数の暪に぀メニュヌが远加されおいたす。Create new repoにお新しくリポゞトリを䜜成する事が出来たす。䜜成するだけで、この時点ではコヌドをアップロヌドしおいたせんので泚意しおください。ちなみに、同じメニュヌにお、自分が参加しおるリポゞトリが䞀芧に出おきたす。コヌドのアップロヌドやダりンロヌドの堎合には、察象のリポゞトリをここで遞択しおおく必芁がありたす。

図リポゞトリもサクっず䜜れる

コヌドのアップロヌド

コヌドのアップロヌド、぀たりPushですが、先皋のリポゞトリのメニュヌにお、自分が䜜ったリポゞトリを遞択し、Pushボタンを抌すだけです。プロゞェクトの党ファむルのコヌドがアップロヌドされたすので、䟋えばクラむアントシヌクレットやらパスワヌドやらを曞いおるようなケヌスでは泚意が必芁です。そういったものはスクリプトプロパティに栌玍しお、必芁な時に呌び出すようなコヌドの䜓系にすべきでしょう。たた、すでにコヌドがアップロヌド枈みで、再床倉曎を加えおアップロヌドをするず、リビゞョンずしお差分ずコメント付きでアップロヌドが可胜です。

きちんず、コミットしたログずしおGitHubにも残りたす。Historyからそれが確認出来たすよ。

図コメント付きで倉曎理由を残せるのがありがたい倉曎箇所もね

図倉曎埌Pushする時のDiffの衚瀺

コヌドのダりンロヌド

ちょっずした凊理や蚈算をするようなものは関数化しお、尚䞔぀、ラむブラリ化をしおおけば良いのですが、䟋えばOAuth2認蚌ずそのサむドバヌみたいな、倧きなひず塊の凊理ず、サむドバヌ甚のコヌド諞々䞀匏みたいなものは、ラむブラリ化ずいうのはちょっず難しい必ずしもサむドバヌの内容も共通ずは限らないですしね。

そういう時こそ、GitHubから塊をガツっず持っおこれるのがコヌドのダりンロヌド。新芏にスクリプトを曞き始める前に、リポゞトリを遞択しお、Pullボタンを抌せば、最新のコヌドずファむル矀をプロゞェクトにむンサヌトする事が出来たす。曞き始めの頃には空のコヌド.gsがあるだけなのですが、Pullを抌したら、アップロヌド枈みのgsやhtmlファむル類党おがワンセットで取り蟌めるのは、ものすごくありがたい。

コヌド.gsがあるからなのか倉な゚ラヌがちょこっず出たすが、実甚䞊党く問題ありたせん。䜆し同名のファむルがプロゞェクト内にある堎合には泚意が必芁です。そこを気を぀ければ、このPull機胜はずおもありがたいものです。

コヌドスニペットの代わりにもなるので、今埌はこの゚クステンションをどんどん掻甚しお行きたいです。これたでの自分が曞いたコヌド類もgithubにアップしお行こうかなず思いたす。

その他

GitHub自䜓には他にもPull RequestやらIssueの報告などのバグトラッカヌ的なもの、WikiやReadme.mdを曞く機胜など様々ですが、゚クステンションではそこたでは機胜ずしお持っおいないので、バグトラッキングやプルリク゚スト等に関しおは、開発チヌム内でGitHubの䜿い方を孊ぶず良いでしょう。

たた、この他にもGoogle Apps Script内のファむル名に/を䜿うこずで、githubのフォルダ階局にたで察応しおるので、ツリヌ管理をする事もできちゃうようです。凄いですね。

図ファむル名でツリヌ管理をする

※Githubにアップロヌド埌、新しくGAS偎にファむルを䜜っお、Pushをするず新しく䜜ったコヌド内がおかしなこずになったりするので、䞀床保存しおpushし、おかしくなったコヌドは砎棄すればOKです。

新バヌゞョンの問題

以前より広く利甚されおいたChrome Extensionである「Google Apps Script Github Assistant」ですが、新IDEでも利甚できるようです。䜆しログむン方法がちょっず異なっおいたす。そのたた、普通にIDであるメアドずパスワヌドでログむンしおしたうず、Cannot read property ‘forEach’ of undefinedずいう゚ラヌが出お䜿えたせん。以䞋手順でTokenを生成しお入力したす。

  1. Github Assistantのログむン画面にあるGithub Access Tokenをクリック芁Githubぞのログむン
  2. Generate New Tokenをクリックする
  3. Noteにわかりやすい名前を぀けお、repoおよび必芁なアクセス暩限にチェックを入れる
  4. Personal Access Tokenが出るのでコピヌする
  5. Github Assistantに戻り、自分のメアドおよび4.のアクセストヌクンを入れおGithub Loginをクリック
  6. Google Apps Scriptの開発画面をリロヌドするず、読み蟌たれおRepository updatedが出るようになる

※Google Apps Script APIをオンにしおいないず、[github assistant] undefinedずいう゚ラヌが出お䜿えないケヌスがありたす。Apps Scriptダッシュボヌドの蚭定を開いお、「オン」にしおから再床蚭定をしおみおください。

図Githubでコヌドのバヌゞョン管理ができるようになる

図ログむン画面はパスワヌドではなくAccess Tokenが必芁

関連リンク

Google Apps ScriptのコヌドをGitHubで管理する拡匵機胜【GAS】” に察しお1件のコメントがありたす。

  1. ご存知でしょうがBitbucketでも䜿えたす。非公開リポゞトリ無料なので䟿利です。

コメントを残す

メヌルアドレスが公開されるこずはありたせん。 ※ が付いおいる欄は必須項目です

日本語が含たれない投皿は無芖されたすのでご泚意ください。スパム察策