Posit Cloud(旧RStudio cloud)とGitHubの連携で色々とハマったけど、最終的にうまく連携できるようになったので、連携方法をメモ書き。
参考にしたのはこのYouTube動画
まずはGitHubでRepositoryを作成
既にRepositoryがあるならこれは飛ばしてよい
作成出来たらhttps://github.com/<username>/<Repository_Name>
をコピー
Posit CloudでNew Projectを作成
「New Project from Git Repository」を選択
「URL of your Git Repository」に先ほどコピーしたURLを貼り付けて「OK」をクリック。
暫くすると(ちょっと時間がかかって、画面が白くなったりして焦るが気長に待つ!)、Repositoryからファイル一式がクローンされる。
とりあえずCommitしてPush(弾かれる)
最初のPushについてはアカウントの入力がもとめられる。まずは普通に<username>
を入れればよい。
ついで「パスワードの入力」が求められる。この「パスワード」という文言が落し穴なのだが、普通にGitHubのパスワードを入力しても以下のような表示がでて弾かれてしまう。
2行目のURLが長すぎて読みにくいのだが、この表示の中のエラーメッセージには、「2021年8月13日でパスワードでの認証はサポートされなくなった。現在の推奨の認証方法についての情報はhttps://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls
を見てくれ」と書いてある。
ということでアクセスしてみると、Pesonal Access Token を作って、そのTokenをパスワードとして書き込めとのこである。
Personal Access Tokenの作成
ということでTokenの作成である。
GitHubの自分のページの右上にある自分のアカウントのアイコンをクリック
↓
「Settings」をクリック
↓
左のメニューの一番下にある「<> Developer Settings」をクリック
↓
左のメニューの一番下にある「Personal Access Token」をクリック
↓
「Fine-grained tokens」と「Tokens (classic)」とがあるが、Fine云々の方はよくわからなかったので、とりあえずToken (Classic)を選択。
↓
「Generate new Token」を選択して、さらに「Generate new Token (Classic)」を選択
↓
NoteにTokenの識別名を入力し、Expiration(有効期限)と、Tokenでアクセスできる範囲(Scope)の設定をする。
とりあえずScopeは「repo」にチェックをつけた
↓
「Generate token」をクリックすると、画面にトークンが表示されるので、長ったらしいTokenをコピー。
改めてPush
改めてPushすると、さっきと同じように、とパスワードを聞かれるので、パスワードに先ほどコピーしたトークンを貼り付けて「OK」。
これでGitHub上のRepositoryに変更内容がPushされるようになる。
今後
一度これを通すと、とりあえず当面は改めてパスワードが求められなくなる。
ただ、Tokenに有効期限があるので、有効期限が切れるとパスワードが通らんくなるのではないかと思われる。
実際にはSessionが切れると、またTokenの入力が求められた。どうやらユーザ名とTokenはSession単位でしか保持されないようだ。
入力を求められるたびに毎回Tokenを作るというわけにはいかないので、一度作ったTokenをPositCloud上にPAT.txtとか名前のファイルを作って保存した上で、そのファイルは.gitignoreに入ることにした。