2016-08-02 3 views
0

Ich schreibe ein Update-Skript für das Projekt, wo Remote-Code bestimmte Dateien entsprechend der bereitgestellten Versionsnummer aktualisieren sollte.
Zu diesem Zweck werden Tags (Releases) in GitHub erstellt.
Jetzt möchte ich diese Dateien wie beim Commit eines Tags herunterladen, das den Namen einer Version trug.So erhalten Sie den Inhalt einer Datei von bestimmten Tag

>>> repo = github3.repository('Piletilevi', 'printsrv') 
>>> for tag in repo.tags(): 
     print(tag) 

0.2.0 
>>> for tag in repo.refs(): 
     print(tag) 

<Reference [refs/heads/master]> 
<Reference [refs/heads/support-0.1]> 
<Reference [refs/heads/1.0.0]> 
<Reference [refs/tags/0.2.0]> 

>>> for tag in repo.tags(): 
    print(tag.as_dict()['commit']['sha']) 

3322aa270ac921cd0d90cb7f543e8dd917fa3637 

Antwort

1

Ich war nur wenige Schritte von der Lösung:

>>> for tag in repo.tags(): 
     if(tag.as_dict()['name'] == '0.2.0'): 
      sha = tag.as_dict()['commit']['sha'] 
      print(repo.file_contents('package.json', sha).decoded) 
+0

By the way, können Sie einfacher machen 'tag.name' statt' tag.as_dict() [ 'name'] ' und 'tag.commit ['sha']' anstelle von 'tag.as_dict() ['commit'] ['sha']'. –