Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bulk_create fails with 404 #496

Open
captn3m0 opened this issue Jun 3, 2019 · 3 comments

Comments

Projects
None yet
2 participants
@captn3m0
Copy link

commented Jun 3, 2019

On trying to add a lot of repos (100+), Dependabot bulk_create API returns "repo not found" for all repos. The response does have a few valid errors ("Gemfile missing" etc, but the valid repos are ignored as well.

{"errors":[{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":404,"title":"Not Found","detail":"Repo not found","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain a go.mod.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain a package.json.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain a go.mod.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain a Terraform configuration file.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain a go.mod.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain either a Gemfile, a gemspec, or a gems.rb.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain a go.mod.","meta":{"repo-id":"XXXXXX"}},{"status":400,"title":"Bad Request","detail":"Repo must contain a go.mod.","meta":{"repo-id":"XXXXXX"}}]}
@greysteil

This comment has been minimized.

Copy link
Member

commented Jun 3, 2019

Was the request made from within the Dependabot dashboard, or were you hitting the endpoint directly? Dependabot checks that the token that was used in that API request has access to the repos you're attempting to create update configs for. It gets those repos by making a GraphQL request to GitHub using the token that it has been provided with.

@captn3m0

This comment has been minimized.

Copy link
Author

commented Jun 4, 2019

@greysteil

This comment has been minimized.

Copy link
Member

commented Jun 4, 2019

That's really weird - I wonder if this is a bug on the GitHub side. We have some logic on our backend to make multiple requests to GitHub in the case where there are over 100 repos being added, but that logic looks perfectly sound to me...

I've tried digging into this and can't reproduce it, and I can't justify spending much more time on it since the dashboard is slated for removal once Dependabot is fully integrated within GitHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.