lastversion icon indicating copy to clipboard operation
lastversion copied to clipboard

"TypeError: Parser must be a string or character stream, not NoneType" when using against a private enterprise repository

Open vdmkenny opened this issue 6 months ago • 0 comments

Project with incorrect version

Private enterprise repository

To Reproduce

➜  ~ lastversion privaterepo/privaterepo-api --verbose
lastversion.lastversion - INFO - Verbose 1 level output.
lastversion.repo_holders.base - INFO - Using cache directory: /Users/vdmkenny/Library/Caches/lastversion.
lastversion.repo_holders.base - INFO - Created instance of GitHubRepoSession
lastversion.repo_holders.github - INFO - Using API token GITHUB_API_TOKEN.
lastversion.repo_holders.github - INFO - Got HTTP status code 404 from https://github.com/privaterepo/privaterepo-api/releases.atom
lastversion.repo_holders.github - INFO - Got HTTP status code 200 from https://api.github.com/repos/privaterepo/privaterepo-api
lastversion.repo_holders.github - INFO - The releases.atom feed failed to be fetched!
lastversion.repo_holders.github - INFO - Feed contained none or only tags older than 1 year. Switching to API
lastversion.repo_holders.github - INFO - Got HTTP status code 200 from https://api.github.com/repos/privaterepo/privaterepo-api/releases
lastversion.repo_holders.base - INFO - Sanitizing string v18.1.5 as a satisfying version.
lastversion.repo_holders.base - INFO - Parsed as Version OK. String representation: 18.1.5.
Traceback (most recent call last):
  File "/usr/local/bin/lastversion", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/local/lib/python3.12/site-packages/lastversion/lastversion.py", line 851, in main
    res = latest(
          ^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/lastversion/lastversion.py", line 231, in latest
    release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 642, in get_latest
    ret = self.set_matching_formal_release(ret, release, version, pre_ok)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 689, in set_matching_formal_release
    formal_release["tag_date"] = parser.parse(formal_release["published_at"])
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/dateutil/parser/_parser.py", line 1368, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/dateutil/parser/_parser.py", line 640, in parse
    res, skipped_tokens = self._parse(timestr, **kwargs)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/dateutil/parser/_parser.py", line 719, in _parse
    l = _timelex.split(timestr)         # Splits the timestr into tokens
        ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/dateutil/parser/_parser.py", line 201, in split
    return list(cls(s))
                ^^^^^^
  File "/usr/local/lib/python3.12/site-packages/dateutil/parser/_parser.py", line 69, in __init__
    raise TypeError('Parser must be a string or character stream, not '
TypeError: Parser must be a string or character stream, not NoneType
➜  ~ lastversion --version
pytlastversion 3.5.4, up to date
➜  ~ python3 --version
Python 3.12.5

Created a github token with full permissions just to verify it was not a permission issue. Running on MacOS.

vdmkenny avatar Aug 20 '24 08:08 vdmkenny