やりたいこと
iOS/Androidのアプリを全てBitriseでCI/CDしているが、アプリケーションの数が30を超え管理するのが面倒になってきた。
この手のサービスはだいたいAPIがあるので、それを使って解決しちゃおうぜ!
Bitrise API
APIの概要については以下のページで確認できる。
https://devcenter.bitrise.io/jp/api/api-index/
で、APIの一覧はここにある。
https://api-docs.bitrise.io/
パッとみた感じだと、一通りの機能が揃っていて使い勝手良さそう。
ドキュメントがSwaggerで作られていることも、個人的にポイント高め!
認証
当然だけど認証しないとAPIは使用できない。
リクエストヘッダーのAuthorization
に、アクセストークンを設定すれば良い。
アクセストークンはアカウント設定画面のSecurityから作成できる。
適当にアクセストークンの名前と期限を設定する。(画像では無期限にしている)
こんな感じでアクセストークンが生成される。
アクセストークンは再表示ができないため、メモし忘れると作り直しになるので注意が必要!
実際に使ってみる
使用する準備ができたので、実際に使ってみる。
一番オーソドックスなアプリケーションの一覧を取得するAPIを使用してみる。
Base URLはhttps://api.bitrise.io/v0.1/
と記載が上の方にあったので、https://api.bitrise.io/v0.1/apps
にクエリパラメーターつけてGET送信すれば良さそう。
作成日順に取ってみたかったので、curlだとこんな感じ。
$ curl -X GET "https://api.bitrise.io/v0.1/apps?sort_by=created_at" -H "accept: application/json" -H "Authorization: {アクセストークン}"
Json形式でアプリの一覧を取得することができた!
{
"data": [
{
"slug": "xxxx",
"title": "バイトル iOS (開発)",
"project_type": "ios",
"provider": "custom",
"repo_owner": "dip",
"repo_url": "git@xxx",
"repo_slug": "baitoru_app_ios",
"is_disabled": false,
"status": 1,
"is_public": false,
"owner": {
"account_type": "organization",
"name": "DIP",
"slug": "xxxx"
},
"avatar_url": "https://concrete-userfiles-production.s3.us-west-2.amazonaws.com/repositories/xxxx/avatar/avatar.png"
},
{
"slug": "xxxx",
"title": "バイトル Android (開発)",
"project_type": "android",
"provider": "custom",
"repo_owner": "dip",
"repo_url": "git@xxx",
"repo_slug": "baitoru_app_androidstudio",
"is_disabled": false,
"status": 1,
"is_public": false,
"owner": {
"account_type": "organization",
"name": "DIP",
"slug": "xxxx"
},
"avatar_url": "https://concrete-userfiles-production.s3.us-west-2.amazonaws.com/repositories/xxxx/avatar/avatar.png"
},
{省略}
],
"paging": {
"total_item_count": 33,
"page_item_limit": 50
}
}
ここまでやればあとはBitrise APIでやりたい放題できる!
Bitrise最高!