普段は気にしないかもしれないが、ゼロからGitHubの対象リポジトリ(organization)のCircleCI設定を行おうとした際、その対象リポジトリ(organization)が一覧に表示されなくて焦った事がある。
GitHubのorganizationオーナーは、私にOWNER権限を振ったと言うのでCircleCI関連の設定をしようとするが表示されない。
↓
CircleCIに問い合わせると、未設定の場合は、オーナーが一度CircleCIにGitHubログインしないといけない、と言われる。
↓
GitHubのorganizationオーナーには、自分と同じOWNER権限を私にも振ったと言われる。
という負のループ状態に陥った事がある。
この時、たまたま、AWS CodeDeployの設定をしていて解決方法に気づいたので、備忘のためメモしておく。
■原因
GitHubとCircleCIの連携のAuthorize設定が過去に完了しているため、対象リポジトリ(organization)との連携がGrantができない状態になっている。
■解決方法
- 自分のGitHubアカウントに行き、画面右上のメニュー一覧から
Settings
を選択する。 - 画面左側のメニュー一覧から
Applications
を選択し、表示された画面のAuthorized OAuth Apps
を選択してください。そして、CircleCIのアイコン右側にある・・・
を押下し、Revoke
を押下してください。 - CircleCIのログイン画面( https://circleci.jp/vcs-authorize/ )に行き、 「GitHubでログイン」ボタン右側のプルダウンから、
全てのリポジトリと連携
を押下してください。 - GitHubとCircleCIの連携に関するAuthorize画面が表示される。以下の画像はAWS CodeDeployの例になるが、未連携のリポジトリ(organization)で、かつ、権限があれば
Grant
と表示されるので、こちらを押下して緑色のチェックが該当のリポジトリ(organization)に付いたのを確認したら、「Authorize aws-codesuite」ボタンを押下する。 - すると、CircleCIのリポジトリ(organization)一覧に、対象のものが表示されるようになる。
まとめ
意外と盲点になりがちな問題なので、これまで誰かが設定していたCircleCIを使ってて、初めて自分で設定する事になったという人は自分と同じ問題に直面しない事を祈っている。