Pygithub: Github.search_topics renvoyant la liste des dépôts qui génèrent une erreur lors de la tentative de récupération de données non définies

Créé le 12 oct. 2018  ·  6Commentaires  ·  Source: PyGithub/PyGithub

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

Commentaire le plus utile

RP bienvenue

Tous les 6 commentaires

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 :

  • Nom
  • Afficher un nom
  • brève description
  • la description
  • créé par
  • publié
  • créé à
  • mis à jour_à
  • En vedette
  • organisé
  • But

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

Cette page vous a été utile?
0 / 5 - 0 notes