Bonjour,
J'essayais de récupérer une liste de référentiels avec un sujet spécifique, puis de jouer avec les attributs renvoyés, mais les objets Repository renvoyés dans PaginatedList génèrent une erreur lors de la tentative de récupération de données inconnues :
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'
Ci-dessous un exemple de code :
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
Il peut être testé ici : https://repl.it/repls/LawngreenPlushBetaversion
Environnement:
Linux ubuntu 4.15.0-36-générique x86_64 GNU/Linux
Python 3.6.6
PyGithub 1.43.2
Une aide avec ça ?
Et merci
Je corrigerai ça plus tard :p
Peut-être qu'un mauvais code est ici . @jacquerie
Peut-être qu'un mauvais code est ici . @jacquerie
Euh ? Je ne pense pas avoir contribué au code à tout ça...
Je regarde juste le code. Il semble que search_topics renvoie une liste paginée de référentiels GitHub, mais l'API semble renvoyer une liste de sujets, comprenant les propriétés suivantes :
Je pense que cela peut être la racine du problème.
Oui en effet, le point de terminaison de l'API /search/topics renvoie une liste de sujets liés au mot-clé fourni et non une liste de référentiels étiquetés avec ce sujet (ce qui est un peu déroutant, peut-être ?).
Dans mon code, j'ai utilisé les autres points de terminaison de l'API et cela a bien fonctionné.
Mais encore, la méthode dans PyGithub devrait être corrigée.
RP bienvenue
Commentaire le plus utile
RP bienvenue