dvershinin / lastversion

Find the latest release version of an arbitrary project
https://lastversion.getpagespeed.com
BSD 2-Clause "Simplified" License
376 stars 33 forks source link

CRITICAL: API request was denied despite using an API token. Missing scopes? #130

Closed jefebromden closed 11 months ago

jefebromden commented 11 months ago

Project with incorrect version

Initialy, I found the error just by looking for the last version of Pip, but...

To Reproduce

lastversion --verbose --version

Expected behavior

The version of Lastversion

Program output

The first time:

I was on a Python environment, I check for the version of Pip and get:

CRITICAL: API request was denied despite using an API token. Missing scopes?

Immediately, I deactivate the environment, run the command without arguments and get the usual:

lastversion: error: the following arguments are required: <repo URL or string>

The second time:

After running the command without arguments, I tried to get the last version of Lastversion and I get:

Traceback (most recent call last):
  File "/home/admin/.local/bin/lastversion", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/admin/.local/share/pipx/venvs/lastversion/lib64/python3.12/site-packages/lastversion/lastversion.py", line 723, in main
    args = parser.parse_args(argv)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/argparse.py", line 1891, in parse_args
    args, argv = self.parse_known_args(args, namespace)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/argparse.py", line 1924, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/argparse.py", line 2136, in _parse_known_args
    start_index = consume_optional(start_index)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/argparse.py", line 2076, in consume_optional
    take_action(action, args, option_string)
  File "/usr/lib64/python3.12/argparse.py", line 2000, in take_action
    action(self, namespace, argument_values, option_string)
  File "/home/admin/.local/share/pipx/venvs/lastversion/lib64/python3.12/site-packages/lastversion/argparse_version.py", line 32, in __call__
    last_version = lastversion.latest(lastversion.__self__)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.local/share/pipx/venvs/lastversion/lib64/python3.12/site-packages/lastversion/lastversion.py", line 230, in latest
    release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.local/share/pipx/venvs/lastversion/lib64/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 585, in get_latest
    formal_release = self.get_formal_release_for_tag(tag_name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.local/share/pipx/venvs/lastversion/lib64/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 404, in get_formal_release_for_tag
    self.ensure_formal_releases_fetched()
  File "/home/admin/.local/share/pipx/venvs/lastversion/lib64/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 397, in ensure_formal_releases_fetched
    r = self.repo_query("/releases")
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.local/share/pipx/venvs/lastversion/lib64/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 242, in repo_query
    return self.get(url)
           ^^^^^^^^^^^^^
  File "/home/admin/.local/share/pipx/venvs/lastversion/lib64/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 183, in get
    raise ApiCredentialsError(
lastversion.exceptions.ApiCredentialsError: API request was denied despite using an API token. Missing scopes?

After that, I remembered having installed lastversion with Pipx, so I created a new environment, and after installing lastversion I get pretty much the same I think

Traceback (most recent call last):
  File "/home/admin/.local/bin/lastversion", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/admin/.local/lib/python3.12/site-packages/lastversion/lastversion.py", line 735, in main
    args = parser.parse_args(argv)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/argparse.py", line 1891, in parse_args
    args, argv = self.parse_known_args(args, namespace)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/argparse.py", line 1924, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/argparse.py", line 2136, in _parse_known_args
    start_index = consume_optional(start_index)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/argparse.py", line 2076, in consume_optional
    take_action(action, args, option_string)
  File "/usr/lib64/python3.12/argparse.py", line 2000, in take_action
    action(self, namespace, argument_values, option_string)
  File "/home/admin/.local/lib/python3.12/site-packages/lastversion/argparse_version.py", line 32, in __call__
    last_version = lastversion.latest(lastversion.__self__)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.local/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest
    release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.local/lib/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 611, in get_latest
    ret = self.get_release_from_feed(pre_ok, major)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.local/lib/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 572, in get_release_from_feed
    formal_release = self.get_formal_release_for_tag(tag_name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.local/lib/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 404, in get_formal_release_for_tag
    self.ensure_formal_releases_fetched()
  File "/home/admin/.local/lib/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 397, in ensure_formal_releases_fetched
    r = self.repo_query("/releases")
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.local/lib/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 242, in repo_query
    return self.get(url)
           ^^^^^^^^^^^^^
  File "/home/admin/.local/lib/python3.12/site-packages/lastversion/GitHubRepoSession.py", line 183, in get
    raise ApiCredentialsError(
lastversion.exceptions.ApiCredentialsError: API request was denied despite using an API token. Missing scopes?

Now, lastversion gives me only the long output.

OS: Linux fedora 6.6.4-200.fc39.x86_64 Bash version: 5.2.21(1)-release Python version: Python 3.12.0

Remarks

That's all I can give you for now guys, if there is some info missing sorry but I'm kinda of newbie on reporting issues on GitHub, just let me know. I will try not to update my system until I get feedback from you.

dvershinin commented 11 months ago

@jefebromden most likely your Github API key has expired or is incorrect. Check environment variables like GITHUB_API_TOKEN (in your ~/.bashrc for example)

jefebromden commented 11 months ago

You're right, both are true:

Anyway, it's funny because I had been using lastversion last week, when I first installed it, without problems with the old token.

dvershinin commented 11 months ago

@jefebromden you must live a happy life if you can afford to not use GitHub, or tech in general, for a while :-)

jefebromden commented 11 months ago

Hahaha I wish. Actually I was out due to personal problems. Don't get me wrong, I'm not a programmer or anything, coding is a growing interest since the pandemic, I'm still looking for my place on the FOSS ecosystem, I know a little about this and that. I think I prefer having an holistic view before committing to anything.

dvershinin commented 11 months ago

In lastversion 3.4.4 I've included more reasons as to this failure so it's less confusing for future users. Thank you!