CP4DのWatson StudioとGitを統合してJupyterLabを使う

Cloud Pak for DataのWatson Studioは標準ではJupyter NotebookでPythonプログラミングを行います。しかし、Gitと統合することによってJupyterLabを使うことができます。(2021/4時点ではCP4DaaSではGitと統合はできますが、JupyterLabは使えません。)


JupyterLabを使うと

* .pyのプログラムも作れる
* テキストエディタがある
* 階層構造でファイル保存ができる

といったメリットがあります。

また、Gitと統合することで

* バージョン管理ができる
* Watson Studio外の開発者ともプログラムを共同開発できる
* Watson Studioの外の実行環境でプログラムを使うことができる

というメリットもあります。

以下のGitをサポートしていると[マニュアル](https://www.ibm.com/docs/ja/cloud-paks/cp-data/3.5.0?topic=projects-git-integration)に書いてあります。

* GitHub
* GitHub Enterprise
* GitLab
* GitLab Self-Managed
* Bitbucket
* Bitbucket Enterprise

ここではIBM CloudのContinous Deliveryサービス内のGitLabを使います。
IBM CloudのContinous Deliveryサービス内のGitLabの準備方法は以下になります。

https://qiita.com/kawada2017/items/1f7063c60dd13021ea99

全体像は以下のようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/31e32d1f-d0b0-7ba8-63c3-1ae29b813a9a.png)


■テスト環境
CP4D 3.5

#1 GitLabのパーソナル・アクセス・トークンを生成する。
まず、GitLabのユーザーでGitLabのパーソナル・アクセス・トークンを生成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/18eee276-5389-f020-de2b-f859ff037536.png)

GitLabにアクセスします。アクセス方法がわからなくなった場合は[こちら](https://qiita.com/kawada2017/items/1f7063c60dd13021ea99#%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9Fgitlab%E3%81%B8%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9)を見てください。

ユーザーアイコンのSettingを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/17defba7-b384-506c-b3b5-7f0a0923919e.png)

左のメニューからAceess Tokensを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f4366ec1-a2eb-309e-6464-bebdfde5a8c6.png)

任意の名前をつけて、read_api,read_repository,write_repositoryの権限でパーソナル・アクセス・トークンを作ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/179b0f23-f720-7339-2f8a-55b3009f55d1.png)



生成されたパーソナル・アクセス・トークンをコピーしてどこかにメモしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/c3b61138-360b-8d3a-4618-bf53db45b1be.png)

Profileページを開いて、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/a8ffcfac-7909-907b-4d6e-d99e884a2201.png)

統合するGitLabのユーザー名とドメインURLを確認しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/3031b9b1-0c59-f7f0-eb1f-c91fb85f111f.png)

この例では以下です。
ドメインURL: https://au-syd.git.cloud.ibm.com
ユーザー名: HKWD



#2 GitLabのアクセストークンをWatson Studioのユーザーに登録する。
GitLabのアクセストークンをWatson Studioのユーザーに登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/53473b60-732e-8bdf-35c2-e0985e0bbee8.png)

以下のマニュアルを参考にします。

https://www.ibm.com/docs/ja/cloud-paks/cp-data/3.5.0?topic=integration-creating-personal-access-tokens-git-repositories

CP4Dにログインして、ユーザーアイコンをクリックして、プロファイルと設定を選びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/1d89a84f-a5b9-3791-5f89-0331b063a4d1.png)

Git統合のタブを選び、新規トークンを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/65133f81-6c07-35d1-c7d8-23b7b4901da0.png)


まず、以下を入力します。

プラットフォーム：Gitlab Self-Managed
アクセス・トークン：１で生成したトークンを入力します。
ドメインURL：１で確認した連携したいGitLabのドメインを入れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/8b67b10d-d561-496d-51b2-cee1891a8ff0.png)

引き続き、１で確認したユーザー名を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/d7ce1ffe-688e-7395-fb16-cbd21037af1e.png)



任意の名前を入れて続行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/353d8620-f844-7336-f45a-209e5b74ae92.png)

これでこのds01というユーザーで、IBM CloudのシドニーのGitLabをhkwdの権限で操作できるアクセス・トークンが使えるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f5d6247c-c6f6-7102-1619-7f5d208903f9.png)

#3.プロジェクトの作成

Git統合したWatson Studioのプロジェクトを作ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/8f8dc805-3acd-6ff5-e175-3a752bff7ffa.png)

以下のマニュアルを参考にします。

https://www.ibm.com/docs/ja/cloud-paks/cp-data/3.5.0?topic=projects-git-integration

全てのプロジェクトに移ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/d7093417-162d-5512-ccf7-d900592caaa0.png)

新しい分析プロジェクトを空のプロジェクトでつくります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/e8e93331-d43e-912e-d5c3-5734d896e152.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/002277d5-4d46-5b11-7f42-38c00f95eee7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/9e79156e-dfab-58be-dbeb-120a5d723e94.png)

別ブラウザで今回GitLabで連携するプロジェクトのURLを確認しておきます。。
プロジェクトのURLをコピーしておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f5ab4f00-a41c-9de5-b17b-849d820767da.png)

ここでは
https://au-syd.git.cloud.ibm.com/HKWD/cp4d35gittest.git
になります。

CP4Dに戻りプロジェクト作成に必要な情報を入力します。

名前は任意の名前を付けます。
「このプロジェクトをGitと統合する」にチェックを入れます。これでGitと連携できるようになります。
で作ったトークンを選びます。
リポジトリ―URLに、今調べたGitLabで連携するプロジェクトのURLを入れます。
ブランチは好きなものを選びます。新規作成したレポジトリーならmasterになります。
「juypterLab IDEを使用してノートブックおよびPythonスクリプトを編集する」にチェックを入れます。これでJupyterLabが使えるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f4e0cf67-a74c-adfe-e313-e2816d0dd313.png)

正常に作成されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/93c3ca95-5455-648a-2068-4e9676f1dcee.png)

別ブラウザのGitLabをみると .project-lock.jsonというファイルが登録されています。多分Watson Studioの複数のプロジェクトから統合されないためのロックファイルだと思われます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/510b1b43-4dd4-2a99-4f28-80e86b9c8871.png)

#4. JupyterLabの起動
CP4Dに戻り、IDEの起動でJupyterLabを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/9110e504-ee18-b399-0d37-17f2aa852085.png)

以下のマニュアルを参考にします。

https://www.ibm.com/docs/ja/cloud-paks/cp-data/3.5.0?topic=models-jupyterlab

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/3db6fa58-a4ed-6b00-138b-fc7c542aad18.png)


Gitトークンを選択するようになっていますので、２でつくったトークンを選びます。JupyterLabの中でもこのトークンでGitLabに対してアクセスすることになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/0281a5e5-c78e-85bf-1bb4-84fdf4d699a4.png)


以下のようにWatson Studio内でJupyterLabが使えるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/9b94864a-24c4-a81b-0c68-4659860c2157.png)

#5.参考
https://www.ibm.com/docs/ja/cloud-paks/cp-data/3.5.0?topic=integration-creating-personal-access-tokens-git-repositories

https://www.ibm.com/docs/ja/cloud-paks/cp-data/3.5.0?topic=projects-git-integration

https://www.ibm.com/docs/ja/cloud-paks/cp-data/3.5.0?topic=models-jupyterlab