github enterprise に入った環境で、gh コマンドを実行するとこのようなエラーになることがあります。
❯ gh pr view could not determine base repo: GraphQL: Resource protected by organization SAML enforcement. You must grant your OAuth token access to an organization within this business. (repo_000) Authorize in your web browser: https://github.com/enterprises/xxx/sso?authorization_request=XXXXX
URLにアクセスしても状況が改善しないのですが、この場合は以下をすると直ります。
❯ gh auth login ? What account do you want to log into? GitHub.com ? You're already logged into github.com. Do you want to re-authenticate? Yes ? What is your preferred protocol for Git operations? SSH ? Upload your SSH public key to your GitHub account? xxxxx ? Title for your SSH key: GitHub CLI ? How would you like to authenticate GitHub CLI? Login with a web browser ! First copy your one-time code: XXX-XXXX Press Enter to open github.com in your browser... ✓ Authentication complete. - gh config set -h github.com git_protocol ssh ✓ Configured git protocol HTTP 422: Validation Failed (https://api.github.com/user/keys) key is already in use
理由について
GitHub Enterprise になった時から、元々持っていたトークンだけではリポジトリにアクセスできなくなり、自社・自分の組織が用意している IdP での認証を経由した場合でのみリポジトリにアクセスできるようになります。
この時事前に IdP を経由してブラウザで GitHub にログインしておけば、gh auth login
でこのアカウントにアクセス可能なトークンをローカルに生成することができるようです。