8000 Feature Request: On using a public token on a private repo and getting a 404, fail informatively · Issue #367 · github-changelog-generator/github-changelog-generator · GitHub
[go: up one dir, main page]

Skip to content
Feature Request: On using a public token on a private repo and getting a 404, fail informatively #367
Open
@olleolleolle

Description

@olleolleolle

This feature is about adding a good failure message for when the tool quits on the user in this situation:

  • using a private repository
  • and a Personal Access Token, which lacks the repos permission

When having mis-configured github-changelog-generator, with a token with the wrong permissions (it needs repos to work), the error output is:

/Users/totoro/.rvm/gems/ruby-2.3.0/gems/github_api-0.13.1/lib/github_api/response/raise_error.rb:14:in `on_complete': GET https://api.github.com/repos/mysecret/private-repo/tags: 404 Not Found (Github::Error::NotFound)
    from /Users/totoro/.rvm/gems/ruby-2.3.0/gems/faraday-0.9.2/lib/faraday/response.rb:9:in `block in call'
    from /Users/totoro/.rvm/gems/ruby-2.3.0/gems/faraday-0.9.2/lib/faraday/response.rb:57:in `on_complete'
    from /Users/totoro/.rvm/gems/ruby-2.3.0/gems/faraday-0.9.2/lib/faraday/response.rb:8:in `call'
    from /Users/totoro/.rvm/gems/ruby-2.3.0/gems/faraday-0.9.2/lib/faraday/response.rb:8:in `call'
    from /Users/totoro/.rvm/gems/ruby-2.3.0/gems/faraday-0.9.2/lib/faraday/response.rb:8:in `call'
    from /Users/totoro/.rvm/gems/ruby-2.3.0/gems/faraday-0.9.2/lib/faraday/response.rb:8:in `call'
    from /Users/totoro/.rvm/gems/ruby-2.3.0/gems/faraday-0.9.2/lib/faraday/request/url_encoded.rb:15:in `call'

This 404 from the GitHub API is an error which stops execution, and we could present a more informative error message, which speculated on possible causes and showed a link to the docs on making a token with private repo permissions.

Update for OctoKit: New error output, still unfriendly.

/Users/olle/.gem/ruby/2.4.0/gems/octokit-4.7.0/lib/octokit/response/raise_error.rb:16:in `on_complete': GET https://api.github.com/repos/ecraft/ecraft-deploy/tags?per_page=100: 404 - Not Found // See: https://developer.github.com/v3/repos/#list-tags (Octokit::NotFound)
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-0.13.1/lib/faraday/response.rb:9:in `block in call'
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-0.13.1/lib/faraday/response.rb:61:in `on_complete'
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-0.13.1/lib/faraday/response.rb:8:in `call'
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-http-cache-2.0.0/lib/faraday/http_cache.rb:290:in `fetch'
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-http-cache-2.0.0/lib/faraday/http_cache.rb:195:in `process'
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-http-cache-2.0.0/lib/faraday/http_cache.rb:142:in `call!'
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-http-cache-2.0.0/lib/faraday/http_cache.rb:115:in `call'
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-0.13.1/lib/faraday/rack_builder.rb:141:in `build_response'
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-0.13.1/lib/faraday/connection.rb:387:in `run_request'
	from /Users/olle/.gem/ruby/2.4.0/gems/faraday-0.13.1/lib/faraday/connection.rb:137:in `get'
	from /Users/olle/.gem/ruby/2.4.0/gems/sawyer-0.8.1/lib/sawyer/agent.rb:94:in `call'
	from /Users/olle/.gem/ruby/2.4.0/gems/octokit-4.7.0/lib/octokit/connection.rb:156:in `request'
	from /Users/olle/.gem/ruby/2.4.0/gems/octokit-4.7.0/lib/octokit/connection.rb:84:in `paginate'
	from /Users/olle/.gem/ruby/2.4.0/gems/octokit-4.7.0/lib/octokit/client/repositories.rb:481:in `tags'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/octo_fetcher.rb:78:in `block in calculate_pages'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/octo_fetcher.rb:297:in `block in check_github_response'
	from /Users/olle/.gem/ruby/2.4.0/gems/retriable-2.1.0/lib/retriable.rb:54:in `block in retriable'
	from /Users/olle/.gem/ruby/2.4.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `times'
	from /Users/olle/.gem/ruby/2.4.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `retriable'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/octo_fetcher.rb:296:in `check_github_response'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/octo_fetcher.rb:77:in `calculate_pages'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/octo_fetcher.rb:96:in `github_fetch_tags'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/octo_fetcher.rb:69:in `block in get_all_tags'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/octo_fetcher.rb:297:in `block in check_github_response'
	from /Users/olle/.gem/ruby/2.4.0/gems/retriable-2.1.0/lib/retriable.rb:54:in `block in retriable'
	from /Users/olle/.gem/ruby/2.4.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `times'
	from /Users/olle/.gem/ruby/2.4.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `retriable'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/octo_fetcher.rb:296:in `check_github_response'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/octo_fetcher.rb:69:in `get_all_tags'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/generator/generator_tags.rb:9:in `fetch_and_filter_tags'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator/generator/generator_generation.rb:8:in `compound_changelog'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/lib/github_changelog_generator.rb:34:in `run'
	from /Users/olle/.gem/ruby/2.4.0/gems/github_changelog_generator-1.14.2/bin/github_changelog_generator:5:in `<top (required)>'
	from /Users/olle/.gem/ruby/2.4.0/bin/github_changelog_generator:23:in `load'
	from /Users/olle/.gem/ruby/2.4.0/bin/github_changelog_generator:23:in `<main>'
Error output backtrace

Example output that I'm thinking of would be usable by someone trying to get this to work:

The <username>/<project> repository was not found. Does it exist? If private, did your personal access token have the "repos" permission?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0