[PYTHON] Obtenir des informations GitHub à l'aide de PyGithub

Bonjour, c'est @ yshr10ic.

Récemment, comme objectif de sortie, j'ai essayé de faire plus d'un commit par jour sur GitHub. (Bien sûr, je sais que s'engager ne devrait pas être l'objectif.)

Puisque je m'engage chaque jour, je voulais visualiser à quel point je m'engageais. Ainsi, lorsque j'étudiais comment obtenir le journal de validation de GitHub, j'ai découvert que PyGithub existe.

Dans cet article, je voudrais résumer brièvement comment utiliser PyGithub.

Qu'est-ce que PyGithub

PyGitHub is a Python library to access the GitHub API v3 and Github Enterprise API v3. This library enables you to manage GitHub resources such as repositories, user profiles, and organizations in your Python applications.

Une bibliothèque pour accéder à GitHub API v3 et Github Enterprise API v3. Vous pourrez gérer les ressources GitHub telles que les référentiels, les profils utilisateur et les organisations dans votre application Python.

Installez PyGithub

$ pip install PyGithub

Dans mon environnement, la version est "1.47".

Comment utiliser PyGithub

Extrait partiel de PyGithub --Examples.

Créer une instance GitHub

create_instance.py


from github import Github

#Génération d'instance par nom d'utilisateur et mot de passe
g = GitHub('username', 'password')

#Génération d'instance par jeton d'accès
g = Github('access_token')

#Instance GitHub Enterprise avec hôte personnalisé
g = Github(base_url='https://{hostname}/api/v3', login_or_token='access_token')

Obtenir la liste des référentiels

get_repos.py


for repo in g.get_user().get_repos():
    print(repo)

production

Repository(full_name="yshr10ic/deep-learning-from-scratch")
Repository(full_name="yshr10ic/deep-learning-from-scratch-2")
...

Obtenez le nombre d'étoiles

get_count_of_stars.py


repo = g.get_repo('yshr10ic/deep-learning-from-scratch-2')
print(repo.stargazers_count)

production

1

Obtenez une liste de succursales

get_branches.py


repo = g.get_repo('yshr10ic/deep-learning-from-scratch-2')
for branch in repo.get_branches():
    print(branch)

production

Branch(name="images")
Branch(name="master")

Obtenir une liste des fichiers validés

get_committed_files.py


repo = g.get_repo('yshr10ic/sample')
for commit in repo.get_commits():
    print(commit.files)

production

[File(sha="xxx", filename="django/djangorestframework/tutorial/tutorial/urls.py")]
[File(sha="yyy", filename="django/djangorestframework/tutorial/tutorial/quickstart/views.py")]
[File(sha="zzz", filename="django/djangorestframework/tutorial/tutorial/quickstart/serializers.py")]
...

Résumé

Cette fois, je n'ai obtenu que les informations du référentiel GitHub existant, mais en réalité, je peux également créer des fichiers, des pull requests, des problèmes, etc.

J'ai tout essayé, de la création d'une instance GitHub à l'obtention de diverses informations, et je suis heureux d'avoir pu obtenir les informations très facilement. Cependant, pour atteindre l'objectif initial de «Je veux visualiser combien j'ai engagé», je dois être capable de rechercher le journal des validations par heure. Il est peu probable que PyGithub puisse effectuer une recherche temporelle, je vais donc envisager d'autres moyens.

Recommended Posts

Obtenir des informations GitHub à l'aide de PyGithub
Obtenir des informations GitHub à l'aide de PyGithub
Obtenir des informations sur les notes à l'aide du SDK Evernote pour Python 3
[Linux] Obtenir des informations sur les ressources Linux
[google-oauth] Obtenir des informations sur l'utilisateur
[Rails] Comment obtenir des informations de localisation à l'aide de l'API de géolocalisation
Obtenir des publications similaires en utilisant Doc2Vec
J'ai essayé d'obtenir les informations du Web en utilisant "Requests" et "lxml"
Calculer le gain d'informations à l'aide de NLTK
Obtenez des informations sur l'alambic avec Python
Appelez l'API github en python pour obtenir des informations sur la demande d'extraction
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
Obtenez des informations sur les fichiers vidéo avec ffmpeg-python
Obtenir des données Salesforce à l'aide de l'API REST
Obtenez des données Amazon à l'aide de Keep API # 1 Obtenez des données
Essayez d'obtenir des statistiques en utilisant e-Stat
Obtenez des données de Twitter avec Tweepy
Backtrace en utilisant les informations DWARF et pyelftools
Obtenez le chemin du fichier à l'aide de Pathlib
Extraire les informations du code postal à l'aide de Spark
Obtenez des informations météorologiques avec Python et le grattage