lastversion
lastversion copied to clipboard
"TypeError: Parser must be a string or character stream, not NoneType" when using against a private enterprise repository
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.