remote: Repository not found.
イライラするほど誤解を招くようなエラーメッセージが表示される github書き込み権限がない HTTPSリモートにプッシュしようとしたとき。
同じリポジトリに対してSSHリモートを試行すると、異なる応答が表示されます。
% git remote add ssh git@github.com:our-organisation/some-repository.git
% git fetch ssh
From github.com:our-organisation/some-repository
* [new branch] MO_Adding_ECS_configs -> ssh/MO_Adding_ECS_configs
* [new branch] update_gems -> ssh/update_gems
% git push ssh
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
「正しいアクセス権は?」
さて、なぜあなたはそう言いませんでしたか?
このシナリオではSSH障害モードの方が少し優れていますが、GitHub がSSH経由のHTTPSを推奨しているため、SSH経由のHTTPSリモートを使用
していることに注目してください。
プライベートリポジトリの存在をうっかり暴露することを防ぐために、状況によっては「禁止」を意味する「見つかりません」がGitHubで使用されることを理解しています。
認証が必要なリクエストは404 Not Found
、の代わりに
を返し403 Forbidden
ます。これは、権限のないユーザーにプライベートリポジトリが誤って漏洩するのを防ぐためです。
- GitHubの
これはウェブ上ではかなり一般的な慣行であり、実際には次のように定義されています。
404(見つかりません)ステータスコードは、オリジンサーバーがターゲットリソースの現在の表現を見つけられなかったか、存在することを開示する意思がないことを示します。
- 6.5.4。404 Not Found、RFC 7231 HTTP / 1.1セマンティクスとコンテンツ(強調は私のもの)
どのような私には意味をなさないことは、私が使用してのGitHubで認証していたときである
資格のヘルパーを
し、 GitHubのがあろうと(クローニングに成功し、それをフェッチした)私は、そのリポジトリへのアクセス権を持って選択が見つからないため、書き込み権限の私からその存在を隠すために。
チェックhttps://github.com/our-organisation/some-repository/を、Webブラウザを使用していることが確認され、私はリポジトリへの書き込み権限を持っていませんでした。私たちのチームのGitHub管理者は私のチームに書き込みアクセスを短時間で許可することができ、ブランチを押し上げることができました。
git remote add origin git@github.com:account-name/repo-name.git
です。GitHubに存在し、プライベートリポジトリです。