GithubのPull Requestをローカルにフェッチ

ポケモンGO非公式APIを使ってみた - itayo’s blog で個体値チェックプログラムを作ったのですが、

最近ポケモンGOAPIが変わったらしく、

com.pokegoapi.exceptions.request.RequestFailedException: Failed to send request: SESSION_INVALIDATED

みたいなエラーがでて、PokeGOAPI-Javaでログインすらできなくなりました。

PokeGOAPI-JavaプロジェクトのWEBサイトを見てみると、最新版では対応済とのこと。

https://github.com/Grover-c13/PokeGOAPI-Java/issues/937

 

#938のPull Requestを適用すればいいらしいですが、Gitに詳しくなくて"マージされてないPull Requestを使う"というのがイマイチどうするものなのかわかりません。ググってみたところ、以下のやり方で一応動きました。

GithubのPull Requestをローカルにfetchする - 銀の人のメモ帳

Checkout github pull requests locally · GitHub

 

以下、git cloneした後の手順です。

 

gitのconfigファイル ( E:\p\.git\config )をテキストエディタで開き、以下の一行を追加します。

[remote "origin"]
url = https://github.com/Grover-c13/PokeGOAPI-Java
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

 

情報をサーバーから取得します。

 

E:\p>git fetch
remote: Counting objects: 12094, done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 12094 (delta 4988), reused 5012 (delta 4985), pack-reused 7072
Receiving objects: 100% (12094/12094), 4.79 MiB | 2.28 MiB/s, done.
Resolving deltas: 100% (6271/6271), completed with 1189 local objects.
From https://github.com/Grover-c13/PokeGOAPI-Java
* [new ref] refs/pull/10/head -> origin/pr/10
* [new ref] refs/pull/101/head -> origin/pr/101

* [new ref] refs/pull/936/head -> origin/pr/936
* [new ref] refs/pull/938/head -> origin/pr/938
* [new ref] refs/pull/94/head -> origin/pr/94
* [new ref] refs/pull/96/head -> origin/pr/96

 

#938のファイルをサーバーから取得します。

 

E:\p>git checkout pr/938
Switched to a new branch 'pr/938'
Branch pr/938 set up to track remote branch pr/938 from origin.

 

以降、Gitサブモジュールの初期化、ビルドと同様に行います。先にサブモジュールの初期化をしてから、#938を充てると、error: Server does not allow request for unadvertised object とか謎のエラーになったので、全部消してcloneからやり直しました。