16
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PythonでGitHubAPIを叩く(Django)

Posted at

DjangoでGitHubのOAuth認証を利用してのWebアプリケーションを利用した際にGitHubAPIを叩いたので備忘録も兼ねて、自分と同じようにPythonでGitHubAPIを叩きたい人向けに記事を書く。

前提条件

  • Djangoがある程度わかっている。
  • Python3の構文を理解している。

注意

今回の記事ではOAuth認証の実装の説明はしないのでこちらの記事を参考に実装してみてください

準備

GitHubAPIを利用するためにPyGithubというライブラリを使用します。

$ pip install PyGithubでライブラリをインストールしましょう。

ユーザ情報の取得

アクセストークンを利用する場合

OAuth認証を実装したWebアプリケーションでGitHubAPIを叩きたい場合はアクセストークンを利用します。

views.py
social = user.social_auth.get(provider='github')
access_token = social.extra_data['access_token']

上記のコードでアクセストークンを取得できます。
userの部分にはUserモデルを入れてあげてください。

ユーザ情報を取得するには以下のコードでOKです!

views.py
from github import Github

gh = Github(access_token)

これでghにはアクセストークンを元に取得したユーザの情報が入っています。

普通にPythonでGitHubAPIを叩きたい場合

DjangoとかWebアプリケーションではなく普通にスクリプトでGitHubAPIを叩きたい場合でもこのライブラリは使えます(有能)

github.py
from github import Github

gh = Github('ユーザー名', 'パスワード')

以上のようにしてユーザ情報を取得できます!

注意点

アクセストークンを元にユーザ情報を取得した場合Organizations(組織)関連の情報が取得できないので注意しましょう。

※ もしかしたら方法があるのかもしれませんが私は見つけられませんでした...

GitHubAPIを叩く!!

お待たせしました!ここまできたらAPI叩き放題です!(ゲス顔)
全部紹介するとキリがないので私が開発で実際に使ったものだけも紹介したいと思います。(甘え)

リポジトリ一覧の取得

github.py
gh.get_user().get_repos()

リポジトリの個別情報の取得

repository.py
repository.name # リポジトリ名

repository.html_url # GitHUbのリポジトリのページのURL(リンクに使える)

repository.stargazers_count # リポジトリのスター数

repository.updated_at # 最後にリポジトリを更新した時刻(日本時間基準ではないので+9時間してやると日本時間になる)

自己紹介(Bio)の取得

github.py
gh.get_user().bio

ウォッチリストの取得

github.py
gh.get_user().get_watched()

Issueの一覧の取得

github.py
gh_repo.get_issues()

Issueの個別情報の取得

issue.py
issue.title # タイトル

issue.html_url # リポジトリと同じ(リンク)

ブランチ一覧の取得

github.py
gh.get_repo(project.repository_id).get_branches()

ブランチの個別情報の取得

branch.py
branch.name # ブランチ名

以上!

最後に

全部取得系でしたが当然リポジトリの作成なども行えますので、それは公式のドキュメントを参考にして見てください(土下座)
ただ取得にしろ作成にしろ要領は同じなので困ることはあまりないと思います。私はPyCharmの補完機能を利用して勉強したので是非実践して見てください!

それでは皆さん良いPythonライフを送ってくださいね!

16
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?