GitLabのAPIを使う準備
まずGitLabのAPIを使うには、事前にPersonal Access Token(アクセストークン)を取得しておく必要があります。
Access Tokenの取得方法については下記の記事を参考にしてみてください。
APIを使ってプロジェクトのデータを取得する
Access Tokenを取得すれば、次にAPIを使うPythonのコードを実装してみましょう。
ここで紹介するコードはプロジェクトの情報を取得するコードです。
Pythonコード
import requests
import json
url = "https://gitlab.com/api/v4/projects"
token = {"PRIVATE-TOKEN":"**********"}
params = {"visibility":"private"}
res = requests.get(url, headers=token, params=params)
res_json = res.json()
print(res_json)
解説
PythonでGitLabのAPIを利用するには、『requests』のモジュールを使うと簡単です。
『requests』は標準ではインストールされていないので、pipやcondaを利用して、インストールしておきましょう。
GitLAb.com上の情報を取得するので、URLは
“https://gitlab.com/api/v4/”
となり、今回は、プロジェクトの情報を取得するので、上のURLに”/projects”を付けて、
“https://gitlab.com/api/v4/projects”
となります。
もし、グループの情報を取得したい場合は、
“https://gitlab.com/api/v4/groups”
といった感じにURLを設定します。
URLの設定は、GitLabの公式ドキュメント(https://docs.gitlab.com/ee/api/api_resources.html)を参照してください。
次に、APIを利用するために必要な Access Tokenを変数に設定しておきます。
紹介している実装コードでは、******と表記していますが、ここに取得した Access Tokenを入力してください。
APIのデータリクエスト時にパラメーターを設定することで、取得するデータのフィルタリングをかけたりすることができます。
今回は、プロジェクトのvisibility levelをprivateにパラメーター設定してデータを取得しています。
この設定が無いと、publicなプロジェクトのデータも取得し、自分が作成したプロジェクト以外のデータも取得してしまいます。
自分が作成したプロジェクト以外のデータが不必要であれば、visibility levelをprivateに設定しましょう。
実装コードの9行目で、GitLab.comにデータリクエストして、そのレスポンスを取得します。
Access Tokenの設定が間違っていたり、URLが間違っていたりすると、実行したときにエラーが発生します。
GitLab.comからのレスポンスはJSON形式になっているので、変換してPythonコードで扱えるようにします。
この変換でPythonで扱いが簡単になり、print文で取得したデータを表示することができるようになります。
GitLabのAPIはPaginationに関する処理が必要になる
これまでの説明でGitLabのAPIを利用してデータを取得することができるようになりました。
ただこのままだとすべてのデータを取得することができません。
GitLabのAPIにはPaginationというページ分けの概念があり、一度に大量のデータを取得できないような仕組みになっています。
デフォルト設定だと、一度に20個分のデータまでしか取得できないようになっています。
20個以上のデータを取得したい場合は、下記の2つ方法があります。
- 一度に取得するデータ個数の上限を上げる(最大100個まで)
- ページ送りを実装する
1の場合、100個よりも多いデータを取得できないので、もっと多くのデータを取得したい場合は、2の方法を実装しましょう。
コメント