Pygithub: Github.search_topics gibt eine Liste von Repos zurück, die beim Versuch, undefinierte Daten abzurufen, einen Fehler auslösen

Erstellt am 12. Okt. 2018  ·  6Kommentare  ·  Quelle: PyGithub/PyGithub

Hallo,

Ich habe versucht, eine Liste von Repositorys mit einem bestimmten Thema abzurufen und dann mit den zurückgegebenen Attributen zu spielen, aber die in der PaginatedList zurückgegebenen Repository-Objekte geben beim Versuch, unbekannte Daten abzurufen, einen Fehler aus:

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'

Unten ist ein Beispiel für den 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

Es kann hier getestet werden: https://repl.it/repls/LawngreenPlushBetaversion

Umfeld:
Linux Ubuntu 4.15.0-36-generisch x86_64 GNU/Linux
Python 3.6.6
PyGithub 1.43.2

Irgendeine Hilfe dabei?
Und danke

Hilfreichster Kommentar

PR willkommen

Alle 6 Kommentare

Ich werde es später reparieren :p

Vielleicht ist hier falscher Code. @jacquerie

Vielleicht ist hier falscher Code. @jacquerie

Ähm? Ich glaube nicht, dass ich dazu Code beigetragen habe...

Ein Blick auf den Code genügt. Es scheint, dass search_topics eine paginierte Liste von GitHub-Repositorys zurückgibt, aber die API scheint eine Liste von Themen zurückzugeben, einschließlich der folgenden Eigenschaften:

  • Name
  • Anzeigename
  • kurze Beschreibung
  • Bezeichnung
  • erstellt von
  • freigegeben
  • hergestellt in
  • aktualisiert am
  • vorgestellt
  • kuratiert
  • Spielstand

Ich denke, das könnte das Wurzelproblem sein.

Ja, der API-Endpunkt /search/topics gibt eine Liste von Themen zurück, die sich auf das angegebene Schlüsselwort beziehen, und keine Liste von Repositorys, die mit diesem Thema markiert sind (was vielleicht ein wenig verwirrend ist?).
In meinem Code habe ich die anderen API-Endpunkte verwendet und es hat gut funktioniert.

Trotzdem sollte die Methode in PyGithub behoben sein.

PR willkommen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen