# 初回リポジトリ作成方法 ## 最終的なファイル構造 ``` Repository │ ├── .github │ └── workflows │ └── deploy.yml ├── src │ ├── appsscript.json │ ├── *.js │ └── *.js ├── .clasp.json └── README.md ``` ## 利用ツールインストール方法 ### gitをインストール windows ([ダウンロード](https://gitforwindows.org/)) mac `/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"` ### claspをインストール `npm install -g @google/clasp` ``` clasp -v [インストールの確認] clasp login [※必須 googleアカウント(自分のアカウントで可)の紐付けを行う] ``` > 詳しくは、 ([公式](https://github.com/google/clasp))を見てください。 > > 一応、npmのインストール方法も > node.jsインストール ([ダウンロード](https://nodejs.org/ja/)) > npmインストール (`sudo npm install -g npm`) ## 初回リポジトリ作成手順 1. `git clone https://github.com/system-team-orgiast/directory-frame.git` 2. `clasp clone <scriptURL>` 3. `mv *.js appsscript.json src/` 4. .clasp.json のrootDirでルートディレクトリを "./src" に変更 例:`{ "scriptId": "スクリプトID", "rootDir": "./src" }` 6. README.mdを書く(テンプレートはgit clone済) 7. 新しいリポジトリを作成してgithubにpushする ``` git add . git commit -m "first commit" git remote set-url origin <リポジトリURL> git push origin main ``` 9. Action Secretの設定 ``` mac: open ~/.clasprc.json windows: start ~/.clasprc.json ``` 上記コマンドでjsonファイルを確認して、 [ACCESS_TOKEN, ID_TOKEN, REFRESH_TOKEN, CLIENT_ID, CLIENT_SECRET] をgithubのリポジトリ上のAction Secretで設定する 7. 完成(mainブランチにpushもしくはマージを行うと自動デプロイされます) --- ## 余談(GAS開発のススメ) 1. Code formatter(Prettier) を利用してコードを整形する(下記参考) 2. スプレッドシートやフォームにapiを叩くのは、入出力でなるべく1回ずつにする(X:setValue() → ○: setValues() ) 3. varを使わない。大半をconstにして一部編集する必要があるものは、letを使う 4. map(), filter(), reduce()を使って、forEachやforを使わない([参考URL](https://qiita.com/diescake/items/70d9b0cbd4e3d5cc6fce)) ``` GAS用Prettierのおすすめオブション ※個人的 # .prettierrc { "printWidth": 140, "tabWidth": 2, "useTabs": true, "singleQuote": true, "quoteProps": "as-needed", "jsxSingleQuote": true, "trailingComma": "es5", "bracketSpacing": true, "arrowParens": "avoid", "proseWrap": "preserve", "endOfLine": "auto" } ``` # github導入 ## メリット - 修正後のエラーに強い。以前のバージョンにすぐに戻せる - googleスプレッドシートのファイルは誰でも編集でき、エラーが出てしまったら、再度作り直しになる可能性がある。githubがあると復元可能。 - 誰がどこのコードを書いたかわかる  - 下手なコードを書いても、触れた箇所がわかるため、レビューや修正を行いやすい - 責任の所在がわかる ## デメリット - 初学者の場合は、かえって作業時間が増加してしまう