---
# System prepended metadata

title: 初回リポジトリ作成方法

---

# 初回リポジトリ作成方法

## 最終的なファイル構造
```
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があると復元可能。
- 誰がどこのコードを書いたかわかる　
    - 下手なコードを書いても、触れた箇所がわかるため、レビューや修正を行いやすい
    - 責任の所在がわかる

## デメリット
- 初学者の場合は、かえって作業時間が増加してしまう
