VScodeをGitLabと連携する

駆け出しのエンジニアが学んだことや苦労したことをつらつらと書いていきます。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。  
環境：Windows10
VScodeターミナル：Powershell


基本的にこちらの記事を参考に進めていきます。
[Visual Studio Code（VS Code）とGitLabを連携させる](https://tenshoku-miti.com/takeshi/visual-studio-code-gitlab-introduction/#toc5)
***
#1. 事前準備
##Gitの準備  
 [Git for Windows](https://gitforwindows.org/)からGitをダウンロードし、手順に従ってインストールします。
インストール完了後、Git bashを起動し、GitLabに登録しているアカウントと、エディタ(VScode)を設定します。

```
git config --global user.name "[your_name]"
git config --global user.email "[your_mail_address]@[your_mail_domain]"
git config --global core.editor "code --wait"
git config --global merge.tool 'code --wait "$MERGED"'
```
※コーテーションが混在していますが、問題ありません。
※実際は[ ]不要で、自分のユーザーIDとメールアドレスを入力します。

また、Gitでの日本語ファイルの文字化けの防止、docker 環境でのエラー防止のために、以下のコマンドを入力します。

```
git config --global core.quotepath false
git config --global core.autocrlf false
```
<br>
##OpneSSHのダウンロードと有効化  
今回はSSH鍵での接続を行うため、[OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/releases)からZipファイルをダウンロードします。ダウンロード後解凍して、自身のわかりやすい場所に保管します。(今回は ```C:\Program Files\OpenSSH``` としています。)
次に、OpenSSHへのパスを通します。コントロールパネルから、「システムとセキュリティ」→「システム」→「システムの詳細設定」→「環境変数」を選択します。
![環境変数設定⓪.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/3c687c66-5be9-4c65-5791-08c57528f2b8.png)  
システム環境変数の「Path」を開き、先ほどOpenSSHを保存したディレクトリを参照します。
![環境変数設定①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/35d6dfe1-46a6-0f75-fab1-4c5d7aad6ce3.png)  

![環境変数設定②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/7d467d2b-6967-2b90-feae-f29ef4fcbaee.png)


システム環境変数の新規を選択し、変数名「GIT_SSH」、変数値はファイルの参照を選択し、先ほど保存したファイル内にある「ssh.exe」を選択します。
![環境変数設定④.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/70afc3e6-c093-a575-0f08-35bb2e31865d.png)


次に、検索ボックスからサービスを開きます。OpenSSHが実行されていない場合は、右クリックメニュー「プロパティ」を選択します。(画像では実行されています。)
![openSSH有効化①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/b989803c-70c2-dbe4-8224-cf1896f738b7.png)

スタートアップの種類を「自動」に設定します。
![openSSH有効化②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/5c3b0854-7f25-3d41-c4cb-4103ec473dcc.png)

OpenSSHを選択し、右クリックメニューから「開始」を選択してください。
![openSSH有効化③.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/84414bf4-9ada-6f3e-c7be-4a7c6f2fc9f2.png)




#2. SSH鍵の生成
以下VScode内ターミナルにて作業していきます。
ユーザーアカウントディレクトリで「.ssh」フォルダを作成し、ディレクトリを移動します。

```
cd C:\Users\[User Name]\
mkdir .ssh
cd .ssh
```

.ssh内でキーペアを生成するため、以下のコマンドを実行します。

```
ssh-keygen -t rsa -f id_rsa_for_gitlab -b 4096 -C 
"[your_mail_address]@[your_mail_domain]"
```
※オプション
-t ：鍵の暗号化形式指定（今回はrsa）
-f：鍵を生成するファイルの保存場所（今回はid以下）
-b：鍵のビット数指定（デフォルトは2048bit 今回は4096bitに指定）
-C：実行の際のコメント指定（今回はGitのメールアドレス）

コマンドを実行後、パスワードの設定をする。何も入力せず Enter を押すとパスワードなしとなる。（今回はパスワードなし）

```
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
```
すると、以下のメッセージが表示されSSHキーペアの生成が完了します。

```
Your identification has been saved in id_rsa_for_gitlab
Your public key has been saved in id_rsa_for_gitlab.pub
The key fingerprint is:
[Key Number] [your_mail_address]@[your_mail_domain]
The key's randomart image is:
+---[RSA 4096]----+
|     . ++==X.o   |
|      + B.+oX    |
|       *.*+o o   |
|      . ooo X .  |
|        So @ = . |
|       .o E o o  |
|       ..o.. +   |
|         . .. .  |
|          ..     |
+----[SHA256]-----+
```

#3. SSH鍵を登録
以下のコマンドでssh-agentを起動して、ssh秘密鍵を登録します。

```
ssh-agent bash
ssh-add [秘密鍵へのパス]
```
※今回の秘密鍵パスは ~/.ssh/id_rsa_for_gitlab 

次に、空ファイル「config」を作成し、設定内容を記載します。(冒頭の記事に倣って、configファイルの生成及び書き込みのみ、コマンドプロンプトで行います。)

```
cd C:\Users\[User Name]\.ssh
type nul > config

echo Host gitlab.com >> config
echo  User git >> config
echo  Hostname gitlab.com >> config
echo  IdentityFile ~/.ssh/id_rsa_for_gitlab >> config
echo  IdentitiesOnly yes >> config
```

次に、SSH公開鍵をGitLab.comに登録します。
[GitLab.com](https://gitlab.com/)にログインし、右上のアイコンをクリック→Edit profileを選択します。
![SSH鍵登録①.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/a678478f-47fc-3560-448f-75dd913e2669.png)

サイドメニューからSSH鍵を選択します。
![SSH鍵登録②.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/8459a685-fa40-40bd-367d-078af0d4227f.png)

表示された画面の「キー」に公開鍵を入力します。
![SSH鍵登録③.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1762440/6d26c312-d23e-2172-3cfe-42a41d75a4a1.png)

公開鍵は、以下のコマンドで確認できます。

```
type [公開鍵ファイル]
```
※今回の公開鍵ファイルは id_rsa_for_gitlab.pub
表示された「ssh-rsa」から始まる番号をコピペします。

「タイトル」は自由に入力してください。「Expires at」はSSH鍵の有効期限です。特に期限を設ける必要がなければ空欄のままにしておいてください。
入力ができたら、「キーを追加」をクリックすると追加されます。

最後に、以下のコマンドを入力します。

```
ssh -T git@gitlab.com
```

何かメッセージが表示される場合は yes を入力します。
その後もう一度上記のコマンドを入力すると、以下のメッセージが表示されます。

```
Welcome to GitLab, (ログインユーザー名)!
```

以上でGitLabと連携できました。

---

ターミナルから git clone するとユーザーディレクトリにプロジェクトがクローンされます。ファイルを編集したい場合は、「ファイル」からクローンしたディレクトリを選択すれば VScode で編集できます。

情報が点々としていて中々すんなりと設定できなかったため、自分なりにまとめてみました。Linuxだとまた違った設定になりそうなので、追々調べてみたいと思います。
誤りや別の方法等があればご指摘いただけると幸いです。