iRICソフトウェア version4にオリジナルソルバーを同梱・配布する　ーGitHubの利用環境設定ー

# 概要
iRIC version4からソルバーをgithub上で管理する方式を採用しました。そのおかげで、ソルバー開発者はgithub上のリポジトリを更新するだけで、iRICソフトウェアに同梱・配布されるソルバーを更新することができるようになりました。

そのため、ソルバー開発者は自身でGitHubの利用環境を設定する必要があります。ここでは以下について紹介します。

- １．Gitのダウンロード＆インストール（必須）
- ２．tortoise gitのダウンロード＆インストール（任意）
- ３．GitHubアカウントの取得（必須）
- ４．GitHub上にリポジトリを作成する方法（必須）
- ５．SSHを利用してGitHubにアクセスする方法

-----

# １．Gitのダウンロード＆インストール（必須）
Gitというバージョン管理のためのコマンド、ツールです。インストールがまだの方はインストールしてください。以下にアクセスし[Download]ボタンからインストーラーをダウンロードしてください。

https://gitforwindows.org/

特別な要望がなければデフォルトのままインストールしてください。詳細が気になる方は以下などが参考になるかと思います。

https://sukkiri.jp/technologies/devtools/git/git_win.html

# ２．tortoise gitのダウンロード＆インストール（任意）
"Tortoise Git"はGitを便利に利用するためのツールの一つです。使い慣れているツールがある方は、お好みのツールをご利用ください。ここでは"Tortoise Git"のインストール方法を紹介します。

以下のページからインストーラーをダウンロードします。
https://download.tortoisegit.org/tgit/2.13.0.0/TortoiseGit-2.13.0.1-64bit.msi

ソフトウェアの表記を日本語にしてくれるパックもダウンロードしておきます。
https://download.tortoisegit.org/tgit/2.13.0.0/TortoiseGit-LanguagePack-2.13.0.0-64bit-ja.msi

ダウンロードしたインストーラーをダブルクリックしてインストールしてください。

- 1 TortoiseGit-2.13.0.1-64bit.msi
- 2 TortoiseGit-LanguagePack-2.13.0.0-64bit-ja.msi

の順でインストールしてください。詳細が気になる方は以下などが参考になるかと思います。

https://sukkiri.jp/technologies/devtools/git/tortoisegit_win.html

インストール完了後、必要に応じて再起動しください。


# ３．GitHubアカウントの取得（必須）
GitHubのアカウント取得がまだの方は、以下のページにアクセスし「GitHubに登録する」からアカウントを取得してください。既にアカウント取得済の方はスキップしてください。

https://github.co.jp/

登録方法について詳細を確認したい方は以下のページなどを参照してください。

https://udemy.benesse.co.jp/development/system/what-is-github.html


# ４．GitHub上にリポジトリを作成する方法（必須）
GitHubにログインし、[New]ボタンをクリックすると以下の画面が表示されます。必要事項を記入、選択し、[Create repository]をクリックするとリポジトリを作成することができます。吹き出しに留意事項を記述しています。参考にしてください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/71bd1c93-3e02-4989-8863-5d99ca2e5bbb.png#center" width="75%">

# ５．SSHを利用してGitHubにアクセスする方法
次に作成したリポジトリを複製ダウンロードします。この操作を「クローンする」といいます。privateリポジトリのクローンには認証が必要です。GitHubはID/パスワード認証の方式を廃止しており、token認証またはSSHを利用した認証が基本です。ここではSSHを利用した認証でGitHubにアクセスする方法を紹介します。

## 秘密鍵/公開鍵を作る
秘密鍵は家の鍵、公開鍵は鍵穴のようなものです。鍵穴は秘密鍵でのみ開けることができます。ここでは、秘密鍵と公開鍵のペアを作成し、GitHubに鍵穴を設定し、自分だけが持っている秘密鍵で開けて利用するための設定を行います。

※以下Gitがインストールされていることが前提です
任意のフォルダ上で右クリックメニューから"Git Bash Here"をクリックします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/b9db1c56-fe30-2900-381f-0f9813a17db2.png" width="75%">

以下のような画面が表示されます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/182c14e0-c177-a035-993e-b6fdf2cfe2c4.png" width="75%">

Git Bashで"ssh-keygen -t rsa"を実行すると、デフォルトではWindowsのホームディレクトリの.sshファルダ（C:\Users\***\.ssh）に秘密鍵と公開鍵が作成されます。

- 秘密鍵：id_rsa"
- 公開鍵："id_rsa.pub"


作成場所やファイル名は特別な理由がない限りデフォルトのまま作成してください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/b75fe28d-d44f-b5b0-d37d-055c8360033f.png" width="75%">

## 公開鍵をGitHubに設定する
次にGitHub上に公開鍵を設定します。

上記で作成した公開鍵："id_rsa.pub"をテキストエディタで開き、すべて選択しコピーしてください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/c562944b-0332-1c83-92ca-2a2ea4a30518.png" width="75%">


GitHubにアクセスし、「右上端の自分のアイコン>Settings」をクリックし、表示された画面の左ナビの"SSH and GPG keys"をクリックします。表示された画面の右上にある"New SSH key"をクリックし、Titleにコンピュータ名など適当な名前をつけ、Keyに先程コピーした文字列をペーストします。"Add SSH key"をクリックして追加します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/2748185b-4be9-fe1c-3985-8c9ecb0f7874.png" width="75%">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/42be77da-10a4-bf2d-44ba-c77255fcba86.png" width="75%">

## 秘密鍵を使う準備をする
GitでSSHの秘密鍵を利用するためには、SSH形式の鍵："id_rsa"をPuTTY形式に変換する必要があります。つまり、秘密鍵を使う準備＝変換作業です。変換作業はGitのインストール時にインストールされた"PuTTYgen.exe"を利用して変換します。

Windows　画面下などにある「ここに入力して検索」に"PuTTYgen"と入力し、"PuTTYgen.ex"を起動してください。"File>Load private key"から"id_rsa"を開きます。拡張子フィルタが"ppk"形式がデフォルになっているため"All Files"に変更すると"C:\users\****\.ssh\id_rsa"が表示されます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/189abb2e-720e-337a-2aa6-9e720f8c80d9.png" width="75%">

"Save private key"から"github.ppk"など任意の名前をつけて保存します。以上で変換は完了です。”PuTTYgen"を閉じてください。

以上で秘密鍵を使う準備は完了です。

## SSHを利用してGitHubのリポジトリをクローンする

上で作成したプライベートリポジトリにアクセスし、"Code> SSH"からリンクをコピーしてください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/516efe8e-2628-8056-2870-2cd792c2b93d.png#center" width="75%">

自身のPCの任意のフォルダで右クリックし、"Gitクローン（複製）"をクリックし、Putty鍵のロードで先程作成したppkファイルを指定します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/2a84dd95-b3e0-5de6-b965-1e513bac8b0d.png" width="75%">

"OK"ボタンをクリックして、リポジトリをローンできればOKです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/d654726d-e1ed-6d00-0563-df3f4f38dfee.png#center" width="75%">

リポジトリ作成直後は、以下のファイルが格納されています。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/31bbc79b-17db-4e83-060b-a678d584b7e7.png#center" width="75%">


| ファイル・フォルダ名       |      内容 |    補足    |
|:-----------------|:------------------|:------------------|
| .git             | githubのリポジトリ情報やクローン時の状態情報など重要情報 | 独自に削除編集などすると壊れるので基本触らない   |
| .gitignore           | Git登録時に無視するファイルの拡張子リストなどを記録している |  リポジトリ作成時に指定している場合のみ作成される |
| LICENSE           |  本プログラムのライセンスファイル |  リポジトリ作成時に指定している場合のみ作成される |
| README.md           | 本プログラムのreadmeファイル |  リポジトリ作成時に指定している場合のみ作成される       |


以上が確認できれば、GiHubの利用環境設定は完了です。

# おわりに
GitHubの認証にはtokenで認証する方法もありますが、有効期限があるため更新時に「あれっ、どうやるんだっけ？」となってしまいがちです。広く認証に利用されているSSHを利用した認証を利用することを推奨します。