#circleci_meetup 2016-06-10

2016-06-10 渋谷ヒカリエの DeNA さんのセミナールームで開催された #circleci_meetup で LT をしてきました。

CircleCI Meetup on Connpass

発表内容: CircleCI Client for iOS CI2Go について

開発にいたるモチベーションと、簡単な機能紹介をしました。

発表内容: CircleCI API についての要望

CI2Go を開発している上で、かなり細かく理解したつもりですが、どうしても実装上解決できなかった問題について、CircleCI への要望として発表しました。

Pusher Auth エンドポイントの CORS 対応

1.2.0 のリリースノートで リアルタイムログの舞台裏 として紹介している /auth/pusher エンドポイントが CORS 用の HTTP Header Access-Control-Allow-Origin: * をレスポンスしていないので、外部ドメインから Pusher の認証を得ることができないです。

$ curl -i "https://circleci.com/auth/pusher?circle-token=${CIRCLE_TOKEN}" \
   --data 'socket_id=123456.87654321&channel_name=private-ngs'
 
HTTP/1.1 200 OK
Date: Fri, 10 Jun 2016 07:26:49 GMT
Server: nginx
Set-Cookie: ring-session=...
Set-Cookie: ab_test_user_seed=...
Strict-Transport-Security: max-age=15724800
X-Circleci-Identity: i-45fbc4c2
X-Circleci-Request-Id: ...
X-Frame-Options: DENY
X-Route: /auth/pusher
Content-Length: 96
Connection: keep-alive
 
{"auth":"1cf6e0e755e419d2ac9a:..."}

JavaScript で実装された 3rd Party のウェブアプリケーションから直接リアルタイムにデータを更新できるようになり、可能性が広がるので、追加を希望しています。

認証フロー

CircleCI のドキュメンテーションの Getting Started には Add an API token from your account dashboard. とだけ書いてあり、ユーザーはアカウント管理画面に遷移して API Token を取得する以外、3rd Party のアプリケーションで認証を得る方法がありません。

その為、CI2Go の設定画面では、以下の様な表記を行い、ユーザーは画面遷移を行い、API Token をコピーしてくる必要があり、とてもユーザービリティーが悪いです。

以下の様なご意見も頂いています:

ci2go、いきなりトークン入力しろって言われて萎えた

— Akinori Yamada (@stormcat24) November 26, 2014

是非、ログイン画面からコールバックで Token を取得できるなど、何かしら認証 API を提供していただきたいと思っています。

発表資料

所感

東京初の CircleCI の Meetup で、他の CircleCI ファンのエンジニアの方々と交流でき、とても有意義な会でした。

CircleCI のスタッフにもお会いでき、CI2Go について、とても喜んで頂けているみたいで嬉しかったです。

// CI2Go のバグ報告が CircleCI 側に飛んでくるらしく、申し訳ないです。

また次回開催されることを楽しみにしています。