python-gitlab使うとAPI経由でアカウント作成が簡単にできるよ

皆さま, こんにちわ(^^)

最近私の周りでは既にインフルエンザが流行り始めてます. 今年は流行るのが早いですねぇ...

インフル流行って, 毎回gitlabにログインして画面からアカウント作成するのが面倒になって来た今日この頃, いい加減API使って楽しようということでやってみました.

やりたいこと

f:id:namio6243:20181012033954p:plain

検証環境

クライアント

サーバ

  • OS: CentOS 6.7
  • GitLab(omnibus): v11.0.3

手順

まずはgitlabにログインして, APIに設定するための Access Token を生成する.

画面右上のアイコン > settings > access token

f:id:namio6243:20181014133000p:plain

f:id:namio6243:20181014133227p:plain

選択できる権限の範囲が4つあるが, 今回は①を選択してみる.

api Access the authenticated user's API

  • すべてのグループとプロジェクトの読み書きを含む、ユーザとしてのGitLabへのフルアクセス

②read_user Read the authenticated user's personal information

  • ユーザー名、一般のメールアドレス、フルネームなど、ユーザーのプロフィール情報への読み取り専用アクセス

③sudo Perform API actions as any user in the system (if the authenticated user is an admin)

  • Sudo機能へのアクセス、システム内の任意のユーザーとしてAPIアクションを実行する(管理者のみ利用可能)

④read_repository Read Repository

f:id:namio6243:20181014134301p:plain

f:id:namio6243:20181014134840p:plain

ここからはクライアント側Macでの作業.

ターミナルからpython-gitlabをinstallする.

$ sudo pip install python-gitlab

installされたことを確認する.

$ gitlab --version
1.6.0

公式サイトも参考にしつつ,

https://python-gitlab.readthedocs.io/en/stable/cli.html#configuration

Mac上に生成したAccess Tokenを元にconfigを作成.

$ vim ~/.python-gitlab.cfg

[global]
default = gitlab
ssl_verify = false
timeout = 30

[gitlab]
url = http://sample.com    ※gitlabのURLを設定する
private_token = Fia7Periue6qj_Lipvtd

設定したら, 試しに下記コマンド叩いてみてgroup情報を取得できればOK(あとでuserをgroup登録する時に必要なのでmemoしておく)

$ gitlab group list

gitlabアカウントを作成してみる(アカウントが作成されるとメールが飛ぶ. もし送られてない場合は, postfixが起動していないか宛先がおかしいか疑う)

気にしておく点としては以下の辺り

  • メールアドレスが他アカウントで使用されていると作成不可
  • パスワードオプション必須
  • デフォルトだとadmin権限は無効
$ gitlab user create --email testuser@example.com --username testuser --name testuser --password PASSWORD
id: 327
username: testuser

作成したgitlabアカウントをgroupに登録してみる

  • user-idは,user create時に出力されたidを指定
  • group-idは先程取得した gitlab group list で確認しておいたものから選択)
  • アクセス権のパラメータ一覧はこちらの通り
$ gitlab group-member create --group-id 5 --user-id 327 --access-level 20
id: 327
username: testuser

GitLabから Confirmation instructions という件名でメールが来ているので確認する. Confirm your accountのリンクをクリックして, ログインページへ遷移する.

ログインが成功することを確認したらアカウント作成は完了〜

f:id:namio6243:20181014143233p:plain

とりあえずAPIで作成することは出来るようになったので, これを利用してスクリプト化すればもっと楽になりそうですね.

以上.