1. satoshi-baba-0823

    Posted

    satoshi-baba-0823
Changes in title
+Bitrise APIを使ってみよう!
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,98 @@
+## やりたいこと
+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から作成できる。
+![スクリーンショット 2019-10-11 11.39.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144029/adf5aeee-6d1d-186a-52f1-7a92d6687a50.png)
+
+適当にアクセストークンの名前と期限を設定する。(画像では無期限にしている)
+![スクリーンショット 2019-10-11 11.40.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144029/60e0597c-4424-a6c1-f008-8ed959543464.png)
+
+こんな感じでアクセストークンが生成される。
+アクセストークンは再表示ができないため、メモし忘れると作り直しになるので注意が必要!
+![スクリーンショット 2019-10-11 11.43.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144029/1df45ece-8766-b4bc-4647-da4a6fac02b3.png)
+
+## 実際に使ってみる
+使用する準備ができたので、実際に使ってみる。
+一番オーソドックスなアプリケーションの一覧を取得するAPIを使用してみる。
+
+インターフェースはこんな感じ。
+<img width="1409" alt="スクリーンショット 2019-10-11 11.54.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144029/a03eae15-71be-1607-fa45-1e8c42e3bf55.png">
+
+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最高!
+