こんにちは、
特定のトピックを持つリポジトリのリストをフェッチしてから、返された属性で遊んでみましたが、PaginatedListで返されたリポジトリオブジェクトは、不明なデータをフェッチしようとするとエラーをスローします。
Traceback (most recent call last):
File "github-crawler.py", line 6, in <module>
print(i, repo.archive_url)
File "/home/user/.local/lib/python3.6/site-packages/github/Repository.py", line 2407, in get_topics
self.url + "/topics",
File "/home/user/.local/lib/python3.6/site-packages/github/Repository.py", line 745, in url
self._completeIfNotSet(self._url)
File "/home/user/.local/lib/python3.6/site-packages/github/GithubObject.py", line 259, in _completeIfNotSet
self._completeIfNeeded()
File "/home/user/.local/lib/python3.6/site-packages/github/GithubObject.py", line 263, in _completeIfNeeded
self.__complete()
File "/home/user/.local/lib/python3.6/site-packages/github/GithubObject.py", line 268, in __complete
self._url.value
File "/home/user/.local/lib/python3.6/site-packages/github/Requester.py", line 262, in requestJsonAndCheck
return self.__check(*self.requestJson(verb, url, parameters, headers, input, self.__customConnection(url)))
File "/home/user/.local/lib/python3.6/site-packages/github/Requester.py", line 278, in __customConnection
if not url.startswith("/"):
AttributeError: 'NoneType' object has no attribute 'startswith'
以下はコードの例です。
from github import Github
g = Github(per_page=300)
i = 1
for repo in g.search_topics('security'):
print(i, repo.archive_url)
i += 1
ここでテストできます: https :
環境:
Linux ubuntu 4.15.0-36-generic x86_64 GNU / Linux
Python 3.6.6
PyGithub 1.43.2
それで何か助けはありますか?
ありがとう
後で修正します:p
たぶん、間違ったコードがここにあり@jacquerie
たぶん、間違ったコードがここにあり
うーん? 私はこれにコードを提供したとは思わない...
コードをちらっと見ただけです。 search_topicsがGitHubリポジトリのページ付けされたリストを返しているようですが、APIは次のプロパティを含むトピックのリストを返しているようです。
これが根本的な問題かもしれないと思います。
はい、確かに、APIエンドポイント/ search / topicsは、提供されたキーワードに関連するトピックのリストを返しますが、そのトピックでタグ付けされたリポジトリのリストは返しません(少し混乱するかもしれませんが?)。
私のコードでは、他のAPIエンドポイントを使用しましたが、正常に機能しました。
それでも、PyGithubのメソッドは修正する必要があります。
PR歓迎
最も参考になるコメント
PR歓迎