【個人開発でGitLab】APIを利用するPythonのコードを実装してみる

GitLab
スポンサーリンク

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つ方法があります。

  1. 一度に取得するデータ個数の上限を上げる(最大100個まで)
  2. ページ送りを実装する

1の場合、100個よりも多いデータを取得できないので、もっと多くのデータを取得したい場合は、2の方法を実装しましょう。

コメント

タイトルとURLをコピーしました